![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
虚拟化
lonely_geek
即使再曲折还是要去坚持,纵使现在还是菜鸟,终有成就老鸟的一天。
展开
-
qemu-arm64 添加acpi platform设备
arm64 qemu 添加acpi platform设备原创 2023-02-01 21:32:00 · 355 阅读 · 0 评论 -
perf kvm查看虚机热点调用
#### 背景:当需要分析虚机内部函数调用情况,有时候无法连接到虚机(例如ssh和vnc都连不进去),这时候常规手段就无法进行分析。此时可用perf kvm在宿主机上去分析虚机内部得调用情况。#### 步骤:1. 导出虚机内部的kallsyms和modules文件到宿主机上。如果虚机已经无法连接进去,可找一台相同的虚机(内核和硬件配置都一致)并导出这两个文件。下面示例,guest对应待导出文件的虚机。 ssh guest "cat /proc/kallsyms" > /tmp/g...原创 2021-11-12 23:33:17 · 1566 阅读 · 0 评论 -
QEMU网络虚拟化(三):面向对象的模型QOM
qemu面向对象的模型:QOMqemu用结构体实现了一套面向对象的机制,用于实现类和对象的概念,也实现了面向对象的封装、继承、多态。大部分设备模拟代码都会基于这个qom模型。相关数据结构:类定义:struct ObjectClass{ /*< private >*/ Type type; /* typedef struct TypeImpl *Type */ GSList *interfaces; const char *object_cast_ca原创 2020-06-06 21:43:00 · 614 阅读 · 0 评论 -
QEMU网络虚拟化(二):主事件循环
主事件循环qemu是基于glib事件循环机制main -> | -> qemu_init_main_loop : 初始化创建了两个事件源,分别是qemu_aio_context和iohandler_ctx main_loop : 是一个while循环 -> main_loop_wait -> os_host_main_loop_wait | -> glib_pollfds_fil -> g_main_context_prepare -&g原创 2020-06-06 21:35:26 · 918 阅读 · 0 评论 -
QEMU网络虚拟化(一):qemu-net 初始化
qemu-net 初始化初始化流程main() – vl.c 主函数 | -> net_client_parse : 解析网络部分命令行参数 QemuOptsList -> QemuOpts -> QemuOpt对应具体键值对 net_init_clients – net.c : 初始化网络部分,可能存在多个netdev,依次初始化 -> net_init_client/net_init_netdev -> net_client_init -&g原创 2020-06-06 21:11:16 · 1626 阅读 · 0 评论 -
gdb结合qemu-kvm调试linux内核
调试系统:系统:Fedora 29内核:5.0.6-200.fc29.x86_64调试目标系统:系统:CentOS 7.6内核:3.10.0-957.10.1.el7.x86_64在操作以下步骤之前,先用命令行方式启动虚拟机,参见我的另一篇文章:https://blog.csdn.net/lonely_geek/article/details/891606271、下载并编译内核源码...原创 2019-04-11 17:14:03 · 1143 阅读 · 0 评论 -
qemu-kvm 命令行方式启动虚拟机
对于KVM虚拟机,一般启动我们会用 virsh create ×××.xml 方式启动,其实底层还是调用了qemu-kvm命令行去执行,只不过virsh在启动前做了一些准备工作。有时候,我们需要用qemu-kvm方式去启动虚拟机,比如本人想做基于KVM的linux内核调试。1、生成命令行如果正在跑一个虚拟机,可以根据域ID或者虚拟机名城生成命令行:virsh domxml-to-nativ...原创 2019-04-10 09:56:39 · 26531 阅读 · 3 评论 -
libvirt-1.2.5的绑核bug分析以及修复
BUG触发方式 [注:本分析假设物理机有32个核]复现前提:虚拟机创建时所有vcpu处于已绑定状态(即非绑定到所有CPU上) 复现场景1: 对所有vcpu执行解绑(绑定到0-31) 对虚拟机执行shutdown操作 复现场景2: 对所有vcpu执行解绑(绑定到0-31) 对虚拟机任意一个vcpu执行重新绑定操做 BUG分析全解绑会执行virDomainVc...原创 2019-10-09 21:12:34 · 512 阅读 · 0 评论