← 返回列表

基于virtio的虚拟机CPU stall检测方法

申请号: CN202410059072.7
申请人: 麒麟软件有限公司
申请日期: 2024/1/16

摘要文本

本发明基于virtio的虚拟机CPU stall检测方法,加载virtio驱动;virtio驱动为vCPU创建线程;virtio驱动为vCPU创建一共享的virtqueue;每个vCPU均启动一定时器;vCPU的线程均获取virtqueue的锁权限,并将状态信息封装在消息中发送到virtqueue;watchdog设备会从virtqueue中获取消息;watchdog设备为每个vCPU注册定时器;定时器会递减计数值;watchdog设备检测到计数值递减为0,判定vCPU运行出现stall异常,启动恢复虚拟机操作。。来自:马 克 团 队

专利详细信息

项目 内容
专利名称 基于virtio的虚拟机CPU stall检测方法
专利类型 发明申请
申请号 CN202410059072.7
申请日 2024/1/16
公告号 CN117573294A
公开日 2024/2/20
IPC主分类号 G06F9/455
权利人 麒麟软件有限公司
发明人 张浩; 张铎
地址 天津市滨海新区天津滨海高新区塘沽海洋科技园信安创业广场3号楼6-8层

专利主权项内容

1.一种基于virtio的虚拟机CPU stall检测方法,其特征在于,包括如下步骤:步骤S1:为watchdog设备加载对应的virtio驱动;virtio驱动为每个vCPU均创建一线程;virtio驱动为所有的vCPU创建一个共享的virtqueue;virtqueue为virtio定义的数据传输队列,用于guest侧与host侧之间的通讯;步骤S2:每个vCPU均启动一guest侧的定时器,guest侧的定时器启动一定时任务;定时任务到期,触发对应的vCPU执行回调函数获取状态信息;步骤S3:所有的vCPU的线程均会获取virtqueue的锁权限,取得virtqueue的锁权限的线程会将其对应的vCPU的状态信息封装在消息中并将消息发送到virtqueue;发送完成后,取得virtqueue的锁权限的vCPU释放virtqueue的锁权限;步骤S4:watchdog设备为每个vCPU注册一host侧的定时器;host侧的定时器会以固定频率递减计数值;watchdog设备会定期从virtqueue中获取并解析消息;解析消息得到消息对应的vCPU的host侧的定时器,并更新计数值;步骤5:watchdog设备检测到任意一个vCPU的host侧的定时器的计数值递减为0,则判定vCPU运行出现stall异常,启动恢复虚拟机操作。