Qemu IO事件处理框架 qemu是基于事件驱动的,在基于KVM的qemu模型中,每一个VCPU对应一个qemu线程,且qemu主线程负责各种事件的监听,这里有一个小的IO监听框架,本节对此进行介绍。 1.1 涉及结构 struct GArray { gchar *data; guint len; Read More
posted @ 2018-04-10 19:45 jack.chen Views (1443) Comments (3) Edit
2018-01-24 占个坑,准备下写vhost-user的东西 vhost-user是vhost-kernel又回到用户空间的实现,其基本思想和vhost-kernel很类似,不过之前在内核的部分现在有另外一个用户进程代替,可能是snapp或者dpdk等。在网上看相关资料较少,就简单介绍下。虽然和 Read More
posted @ 2018-02-02 14:08 jack.chen Views (2622) Comments (8) Edit
上一篇文章对工作队列原理以及核心数据结构做了简单介绍,本文重点介绍下workqueue的创建以及worker的管理。 一、工作队列的创建(__alloc_workqueue_key) 该函数主要任务就是通过kzalloc分配一个workqueue_struct结构,然后格式化一个名称,对workqu Read More
posted @ 2018-01-24 11:49 jack.chen Views (601) Comments (0) Edit
2018-01-18 工作队列是Linux内核中把工作延迟执行的一种手段,其目的不同于软中断,软中断是提高CPU的响应,尽可能的缩短关中断的时间;而工作队列主要目的是节省资源,其比较适合很微小的任务,比如执行某个唤醒工作等。通过创建线程同样可以达到目的,但是线程毕竟有其自身的资源开销如CPU、内存等 Read More
posted @ 2018-01-23 10:05 jack.chen Views (3587) Comments (0) Edit
2018-01-18 其实在之前的文章中已经简要介绍了VHOST中通过irqfd通知guest,但是并没有对irqfd的具体工作机制做深入分析,本节简要对irqfd的工作机制分析下。这里暂且不讨论具体中断虚拟化的问题,因为那是另一个内容,这里仅仅讨论vhost如何使用中断的方式对guest进行通知, Read More
posted @ 2018-01-18 14:57 jack.chen Views (1455) Comments (0) Edit
最近开始写论文,无奈无法翻墙,国内外研究现状只能查到国内的,很是悲剧,搜索全网发现蓝灯专业版很是好用,特此推荐! 附传送门:http://www.getlantern.link/ 使用我的邀请码,我们双方都可以获赠一个月或者三个月的赠送时间,哈哈,欢迎朋友们一起合作! 邀请码:YM425U3 专业版 Read More
posted @ 2017-12-26 20:03 jack.chen Views (13) Comments (0) Edit
CentOS 的网桥虽然配置了很多次,不过总是记不住那几条,还是简单记录下,增加网桥可以通过brctl命令,但是为了简便快捷,直接生成配置文件即可 1、在/etc/sysconfig/network-scripts目录下创建ifcfg-br0文件 其中的IP,网关,DNS根据自己情况填写 2、打开网 Read More
posted @ 2017-12-03 19:00 jack.chen Views (7010) Comments (1) Edit
2017-11-15 今天闲着没有突然想了想VCPU线程调度的问题,具体描述如下: 当代表VCPU的线程获得控制权后,首先会通过KVM接口进入到内核,从内核进入到非根模式,那么此时站在全局调度器的点上,这并不算做线程的时间,这种情况下调度器还能正常调度VCPU线程吗? 通过查看intel手册,分析相 Read More
posted @ 2017-11-15 19:00 jack.chen Views (1284) Comments (0) Edit
CentOS 7 KDE桌面安装后有时会出现nouveau 驱动问题,导致系统不定时死机或者重启,那么这时只能禁用nouveau 1. 在配置文件中禁用nouveauvi /etc/modprobe.d/blacklist.conf 添加:blacklist nouveau CentOS 7: vi Read More
posted @ 2017-11-10 11:13 jack.chen Views (2463) Comments (0) Edit
今天介绍下如何利用gdb调试qemu 1、首先获取qemu源码 获取地址:https://www.qemu.org/ 2、编译安装qemu 进入qemu目录 ./configure --enable-debug make make install 安装之后一般会在/usr/local/bin目录下生 Read More
posted @ 2017-11-06 21:21 jack.chen Views (1736) Comments (0) Edit

以马内利