# 13-蝴蝶队 **Repository Path**: openeuler2020/team-1243952768 ## Basic Information - **Project Name**: 13-蝴蝶队 - **Description**: TOPIC_ID:13, TEAM_ID:1243952768, TEAM_NAME:蝴蝶队. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-12-24 - **Last Updated**: 2021-07-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目功能说明书 @(team-1243952768)[openEuler全架构集成CRIU工具] ### 一、开发思路 本赛题的目标是添加CRIU对riscv架构的支持以及补全对aarch64架构的支持,我们通过阅读较为熟悉的x86架构相关部分,提炼出CRIU在冻结进程时保存的内容,即通用寄存器组、控制寄存器、浮点寄存器组、线程的TLS以及CPU信息,CPU信息包括开发商、产品系列编号等内容。之后根据aarch64架构与riscv架构的寄存器和CPU编写相关的代码,包括寄存器的结构体、CPU信息结构体、线程信息结构体以及实现系统调用、设置进程断点、读取寄存器组信息、读取CPU信息和读取TLS部分的汇编代码。通用寄存器组结构体以及浮点寄存器组结构体采用Linux内核中的对应源码,方便调用内核接口获取。 ------------------ ### 二、代码架构 aarch64相关: /compel/arch/aarch64/src/lib/include/uapi/asm/cpu.h /compel/arch/aarch64/src/lib/cpu.c /criu/include/cpu.h /criu/arch/aarch64/cpu.c /images/cpuinfo.proto中添加cpuinfo_aarch64_entry riscv相关: /compel/arch/riscv/ /criu/arch/riscv/ /include/common/arch/riscv/ /images/core-riscv.proto /images/cpuinfo.proto中添加cpuinfo_riscv_entry /images/core.proto中的core_entry中添加thread_info_riscv,以及core_entry中的march中添加RISCV 根目录的Makefile ### 三、测试方法 在riscv虚拟机中编译criu,启动simple-loop进程,并成功执行criu checkpoint/restore;restore后进程可延续之前状态继续执行。