名词订正:每一个区域叫zone, 每一个在区域中的活动的实体叫tenant 可以做的东西: - 需要做调度器,做成插件的形式,可以打开,可以关闭(全功能的调度器现在似乎还不是必须,这部分张羽老师说需要) - 板子上跑hvisor,现在还没有在一个实体的板子上面跑过 - 操作系统的snapshot, reboot - 操作系统重启,操作系统(热)升级,镜像升级 - hvisor升级 - 热迁移 - 仔细研究一下设备树是怎么探测,怎么使用的 - hypervisor对内存碎片的管理 - snapshot (是否需要?)
韩喻泷: 现在正在qemu上面调试linux内核。下一步需要做的工作是通过hypervisor将linux启动出来两个。这一步需要把linux按照device tree的方法启动起来,而不是按照acpi的方式启动起来。 -> 我觉得还有一个要做的事情是在硬件启动的时候通过acpi把信息搜集上来,形成一个device tree的文件。之后如何使用这个acpi文件,是通过device tree给guest kernel呢还是通过虚拟acpi(pci root complex)发给guest kernel这个是后话。
陈林锟: 合并代码的工作。 四周以内合并代码。现在合并代码有些问题,主要是riscv部分的代码的问题。这个需要等到李柯樾写完论文(两周)之后调一下。 合并完成的代码需要完成下面的功能:(1)动态启动tenant,杀死tenant,再启动起来;(2)riscv, arm都可以支持,最好韩喻泷的龙芯也能支持,代码库由于NDA的关系不能合并在一出去开源;(3)一个在root tenant里面的操作命令行界面。 下一步:现在都是在qemu里面做的,下一步需要上到NXP板子上。 文档结构。
李柯樾: 现在在自己的代码库上,除了AIA剩下的都通了。 下一步需要先写论文。由于没有硬件平台,在性能测试上主要需要做的事情是在qemu内部做的。需要对比bao, 裸机,以及hvisor。 两周之后调试统一代码库的riscvd的不分。
写文档,写论文
李国玮: 网络已经走通了(写一个文档,说明为啥走不同,通过什么调整能走通。) 为了毕业设计,先在NXP上跑type II的hypervisor。 同时也实现管理工具。(就是那个hvisor.ko以及管理工具)
陈星宇: 继续上周的工作,调bug。 重新修改文档,交给李国玮复现 1. 文档要写一下,陈星宇,李国玮,韩喻泷复现 2. 文档里面把DTB怎么修改的,和源代码的关系写清楚 驱动smmu,先在qemu上面跑过,然后在硬件上跑过 在qemu里面有没有dma的虚拟设备
杨竣轶: 预计本周拿到fpga,思考要做哪些代码改动,目标是研究怎么在上面启动hvisor。
李韶航: 继续跑一下例子代码。一定要理解例子代码。现需要完成这样的功能: - 通过代理在vs态处理中断 - 通过硬件出发中断(在qemu里面如何出发vs态的中断?),实际上如果能发出s态中断,发出vs态中断也是一样的。这个就需要在qemu里面看看是怎么做的了。
继续看这部分代码Rust for APLIC, AIA 关键是搞清楚设备是怎么触发中断的 硬件过程,软件过程都是什么样的 功能描述和实验过程 改成64位,和李柯樾讨论做的具体内容
刘景宇: 跑起来带imsic的demo。qemu中vs中断文件的数目。bao的H扩展的支持。 1. 完善bao里面的AIA 2. 对比对象:bao-arm/bao-PLIC/bao-AIA 3. 测试spec/以及一个关于虚拟化的测试集 看一次MSI的东西 opensbi是如何处理的设备树的
徐仲锴: 代码需要运行一下,所有练习都要做一下 任务:上板子