基于virtio的虚拟机CPU stall检测方法
摘要文本
本发明基于virtio的虚拟机CPU stall检测方法,加载virtio驱动;virtio驱动为vCPU创建线程;virtio驱动为vCPU创建一共享的virtqueue;每个vCPU均启动一定时器;vCPU的线程均获取virtqueue的锁权限,并将状态信息封装在消息中发送到virtqueue;watchdog设备会从virtqueue中获取消息;watchdog设备为每个vCPU注册定时器;定时器会递减计数值;watchdog设备检测到计数值递减为0,判定vCPU运行出现stall异常,启动恢复虚拟机操作。。来自:马 克 团 队
申请人信息
- 申请人:麒麟软件有限公司
- 申请人地址:300450 天津市滨海新区塘沽海洋科技园信安创业广场3号楼6-8层
- 发明人: 麒麟软件有限公司
专利详细信息
| 项目 | 内容 |
|---|---|
| 专利名称 | 基于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异常,启动恢复虚拟机操作。