各位老师和同学好:
hypervisor组例会时间定为本周三2:00-5:00。

会议地点:北京市海淀区草桥7号院北京开源芯片研究院,后院芯议厅
线上参会方式:#腾讯会议:970-644-6531 密码:202209

会议议程:
名词订正:每一个区域叫zone, 每一个在区域中的活动的实体叫tenant
可以做的东西:
- 需要做调度器,做成插件的形式,可以打开,可以关闭(全功能的调度器现在似乎还不是必须,这部分张羽老师说需要)
- 板子上跑hvisor,现在还没有在一个实体的板子上面跑过
- 操作系统的snapshot, reboot
- 操作系统重启,操作系统(热)升级,镜像升级
- hvisor升级
- 热迁移
- 仔细研究一下设备树是怎么探测,怎么使用的
- hypervisor对内存碎片的管理
- snapshot (是否需要?)

韩喻泷:答辩时间是6月上旬
现在可以启动一个简单的裸机系统应用。下一步启动跑Linux。
现在板子上面有四个核,先解决四个核的启动的问题。

还有一个要做的事情是在硬件启动的时候通过acpi把信息搜集上来,形成一个device tree的文件。之后如何使用这个acpi文件,是通过device tree给guest kernel呢还是通过虚拟acpi(pci root complex)发给guest kernel这个是后话。

陈林锟,李国玮
集中精力完成0.02版本,支持guest zone的start, shutdown。
目标:
(1)启动root tenant
(2)命令行启动2个none-root tenant
(3)支持命令行shutdown
在图灵大会前跑通 NXP板子
后面由李柯樾合并RISCV那边的代码
由韩喻泷合并龙芯部分的代码
(x86部分是不是以后也搞一下?)


合并代码的工作。
四周以内合并代码。现在合并代码有些问题,主要是riscv部分的代码的问题。这个需要等到李柯樾写完论文(两周)之后调一下。
合并完成的代码需要完成下面的功能:(1)动态启动tenant,杀死tenant,再启动起来;(2)riscv, arm都可以支持,最好韩喻泷的龙芯也能支持,代码库由于NDA的关系不能合并在一出去开源;(3)一个在root tenant里面的操作命令行界面。
下一步:现在都是在qemu里面做的,下一步需要上到NXP板子上。
文档结构。


李柯樾:
现在在自己的代码库上,除了AIA剩下的都通了。
下一步需要先写论文。由于没有硬件平台,在性能测试上主要需要做的事情是在qemu内部做的。需要对比bao, 裸机,以及hvisor。
两周之后调试统一代码库的riscvd的不分。
写文档,写论文

李国玮:
(a)IO编程分为4个模式:(1)blocking,(2)non-blocking,(3)aio(专门针对文件系统),(4)io_uring。需要结合任务队列实现一个adaptive的版本。
通过任务队列+线程池的方式。关于这一部分可以现在通过多线程的方式来实现。
(b) 还要实现一个adaptive版本的virtio-device和virtio-driver的交互。在平时没事的时候让root tenant处于休眠的状态,不要轮训。如果IO负载高了,那就切换到轮训的模式,提高性能。结合(1)通知模式;(2)轮训模式;(3)timeout机制来保证所有的请求都可以得到处理,保证正确性。

陈星宇:(负责smmu)
研究pci的虚拟化怎么做,重点关注中断如何通过gic来处理
驱动smmu,先在qemu上面跑过,然后在硬件上跑过
在qemu里面有没有dma的虚拟设备

杨竣轶:(负责riscv的硬件板子)
预计本周拿到fpga,思考要做哪些代码改动,目标是研究怎么在上面启动hvisor。

李韶航:(负责rust的AIA)
下一步启动两个核心
使用IPI进行核间通信
把现有的aia的代码移植到rust上面。

刘景宇:(负责IOMMU)
看一下qemu是否支持iommu,把现有的iommu的代码移植到rust上面

徐仲锴:(后期参与硬件板子的开发工作)
撰写开发文档,一边看代码,一边写文档。
请大家关注。