Throughput Tool Comparision 摘抄自:https://fasterdata.es.net/performance-testing/network-troubleshooting-tools/throughput-tool-comparision/ There are a n Read More
Qemu IO事件处理框架 qemu是基于事件驱动的,在基于KVM的qemu模型中,每一个VCPU对应一个qemu线程,且qemu主线程负责各种事件的监听,这里有一个小的IO监听框架,本节对此进行介绍。 1.1 涉及结构 struct GArray { gchar *data; guint len; Read More
2018-01-24 占个坑,准备下写vhost-user的东西 vhost-user是vhost-kernel又回到用户空间的实现,其基本思想和vhost-kernel很类似,不过之前在内核的部分现在有另外一个用户进程代替,可能是snapp或者dpdk等。在网上看相关资料较少,就简单介绍下。虽然和 Read More
上一篇文章对工作队列原理以及核心数据结构做了简单介绍,本文重点介绍下workqueue的创建以及worker的管理。 一、工作队列的创建(__alloc_workqueue_key) 该函数主要任务就是通过kzalloc分配一个workqueue_struct结构,然后格式化一个名称,对workqu Read More
2018-01-18 工作队列是Linux内核中把工作延迟执行的一种手段,其目的不同于软中断,软中断是提高CPU的响应,尽可能的缩短关中断的时间;而工作队列主要目的是节省资源,其比较适合很微小的任务,比如执行某个唤醒工作等。通过创建线程同样可以达到目的,但是线程毕竟有其自身的资源开销如CPU、内存等 Read More
2018-01-18 其实在之前的文章中已经简要介绍了VHOST中通过irqfd通知guest,但是并没有对irqfd的具体工作机制做深入分析,本节简要对irqfd的工作机制分析下。这里暂且不讨论具体中断虚拟化的问题,因为那是另一个内容,这里仅仅讨论vhost如何使用中断的方式对guest进行通知, Read More
CentOS 的网桥虽然配置了很多次,不过总是记不住那几条,还是简单记录下,增加网桥可以通过brctl命令,但是为了简便快捷,直接生成配置文件即可 1、在/etc/sysconfig/network-scripts目录下创建ifcfg-br0文件 其中的IP,网关,DNS根据自己情况填写 2、打开网 Read More
2017-11-15 今天闲着没有突然想了想VCPU线程调度的问题,具体描述如下: 当代表VCPU的线程获得控制权后,首先会通过KVM接口进入到内核,从内核进入到非根模式,那么此时站在全局调度器的点上,这并不算做线程的时间,这种情况下调度器还能正常调度VCPU线程吗? 通过查看intel手册,分析相 Read More
CentOS 7 KDE桌面安装后有时会出现nouveau 驱动问题,导致系统不定时死机或者重启,那么这时只能禁用nouveau 1. 在配置文件中禁用nouveauvi /etc/modprobe.d/blacklist.conf 添加:blacklist nouveau CentOS 7: vi Read More
今天介绍下如何利用gdb调试qemu 1、首先获取qemu源码 获取地址:https://www.qemu.org/ 2、编译安装qemu 进入qemu目录 ./configure --enable-debug make make install 安装之后一般会在/usr/local/bin目录下生 Read More