diff --git a/README.md b/README.md index cad10f694c95c39da8286cfd71ac7ecfcf87fc82..ddb6d3b85d0f629932e9e6fdaa5f3dfa7593e12c 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ ZVM目前支持兼容ARMv8架构的处理器芯片,包括: ZVM的性能测试在瑞芯微RK3568芯片上进行(开发板采用ROC-RK3568-PC),RK3568芯片是一款代表性的基于ARMv8.2架构(采用Cortex A55)的4核CPU国产SoC芯片。本次性能测试主要对比虚拟机操作系统(VM)在**裸板**(即RK3568裸板)和**ZVM**(即ZVM on RK3568)上的各种性能指标,包括系统线程的调度时延、中断处理时延、内核对象的操作时间、系统吞吐量等。本次测试采用的VM为Zephyr RTOS(3.7 LTS)和Debian(Linux 5.10内核),使用的测试集包括:1)Zephyr Latency Measure测试集;2)Debian Cyclictest测试集;3)Zephyr Sys kernel测试集;4)Debian Unixbench测试集。前两个测试集关注VM的系统延迟,后两个测试集关注VM的整体性能,具体说明见下面测试链接中描述。 -- [Test ZVM on RK3568:https://gitee.com/openeuler/zvm/blob/master/zvm_doc/6_Test_on_RK3568.rst](https://gitee.com/openeuler/zvm/blob/master/zvm_doc/6_Test_on_RK3568.rst) +- [Test ZVM on RK3568:https://gitee.com/openeuler/zvm/blob/master/zvm_doc/6_Test_on_RK3568.rst](https://gitee.com/openeuler/zvm/blob/master/zvm_doc/6_Test_on_RK3568.md) ## 交流与反馈 diff --git a/zvm_doc/5_Run_on_ARM64_FVP.rst b/zvm_doc/5_Run_on_ARM64_FVP.rst index bdaab5ae258d9fe186204484a239a3f856c07adc..b90d6a3a9bd9e5fbff6f0ce79338ababfa1040d3 100644 --- a/zvm_doc/5_Run_on_ARM64_FVP.rst +++ b/zvm_doc/5_Run_on_ARM64_FVP.rst @@ -83,4 +83,4 @@ `Prev>> 在RK3568上运行ZVM `__ -`Next>> 在RK3568上测试ZVM性能 `__ +`Next>> 在RK3568上测试ZVM性能 `__ diff --git a/zvm_doc/6_Test_on_RK3568.rst b/zvm_doc/6_Test_on_RK3568.md similarity index 49% rename from zvm_doc/6_Test_on_RK3568.rst rename to zvm_doc/6_Test_on_RK3568.md index cd51e1c7a78749d14c92b6d2104503545829ca73..292b582b805dd2a6202fa5273e3bdfa00c9caa75 100644 --- a/zvm_doc/6_Test_on_RK3568.rst +++ b/zvm_doc/6_Test_on_RK3568.md @@ -3,21 +3,21 @@ #### 测试1:**Zephyr RTOS的延迟测试** -我们分别在裸板和ZVM上运行Zephry RTOS,并在ZephyrRTOS中运行Zephyr Latency measure测试集,该基准测试测量选定内核功能的平均延迟,如线程上下文切换、中断处理、信号量收发的延迟,测试项的细节见:[Zephyr Latency measure](https://github.com/zephyrproject-rtos/zephyr/tree/main/tests/benchmarks/latency\_measure)中列出的基准项。 +我们分别在裸板、ZVM、Xvisor和Linux-KVM上运行Zephry RTOS,并在Zephyr RTOS中运行Zephyr Latency measure测试集,该基准测试测量选定内核功能的平均延迟,如线程上下文切换、中断处理、信号量收发的延迟,测试项的细节见:[Zephyr Latency measure](https://github.com/zephyrproject-rtos/zephyr/tree/main/tests/benchmarks/latency\_measure)中列出的基准项。

   Zephyr中运行Latency Measure测试结果 -测试结果如上图所示,横坐标代表各个基准项目的时延(单位为ns),纵坐标为各个基准测试项。结果显示,相比于裸机,Zephyr RTOS运行在ZVM上时,“Context switch between preemptive thread”测试项的延迟增加了7.1%, “Abort thread”测试项增加了2.4%,所有其他测试项延迟增幅均低于1%,且大部分是0增长。整体结果表明,ZVM对Zephyr RTOS的各项基准测试延迟的影响很小。 +测试结果如上图所示,横坐标代表各个基准项目的时延(单位为ns),纵坐标为各个基准测试项。结果显示,相比于裸机,Zephyr RTOS运行在ZVM上时虚拟化开销极小,而Xvisor的平均延迟开销高出3.78倍。 尽管Linux-KVM在某些情况下与 ZVM 相当,但在中断密集型场景中,它的延迟更高,这凸显了 ZVM 优化的中断处理及其在延迟敏感操作中的卓越性能。 #### 测试2:**Debian的延迟测试** -我们分别在裸板和ZVM上运行Debian,并在Debian中运行Cyclictest测试集,Cyclictest 是一个用于测量 Debian系统实时性能的工具,尤其是测量系统的**中断延迟**和**调度延迟**。它通常用于测试系统在实时场景下的响应能力,以确保系统在关键任务中具备足够的实时性。见[Cyclictest](https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest/test-design)详细描述。在测试过程中,我们还通过stress工具逐步增加Debian的负载,依次将CPU密集型线程数量从1个增加到8个,每次Cyclictest测试的运行时间为30分钟,累计运行时间4小时。我们同时使用stress生成固定数量的IO和内存密集型任务,以模拟真实部署场景。 +我们分别在裸板、ZVM、Xvisor和Linux-KVM上运行Debian,并在Debian中运行Cyclictest测试集,Cyclictest 是一个用于测量 Debian系统实时性能的工具,尤其是测量系统的**中断延迟**和**调度延迟**。它通常用于测试系统在实时场景下的响应能力,以确保系统在关键任务中具备足够的实时性。见[Cyclictest](https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest/test-design)详细描述。在测试过程中,我们还通过stress工具逐步增加Debian的负载,依次将CPU密集型线程数量从1个增加到8个,每次Cyclictest测试的运行时间为30分钟,累计运行时间4小时。我们同时使用stress生成固定数量的IO和内存密集型任务,以模拟真实部署场景。

   Debian中运行Cyclictest测试结果 -测试结果如上图所示,横坐标为CPU密集型线程数量,纵坐标为具体的延迟数据指标(单位为us)。我们选择1,2,4,8等四个CPU密集型任务数量作为采样点。结果显示,相比于裸机,Debian运行在ZVM上时,最大延迟增加了6.2%,最小延迟增加了2.4%。随着系统负载的增加,Debian在ZVM运行的Cyclictest测试结果逐渐逼近裸机。具体原因是负载较轻情况下ZVM本身内核的线程存在资源竞争会会对Debian线程有一定影响,而当负载到达一定临界值时,裸机与ZVM的资源竞争都满量。 +测试结果如上图所示,横坐标为CPU密集型线程数量,纵坐标为具体的延迟数据指标(单位为us)。我们选择1,2,4,8等四个CPU密集型任务数量作为采样点。结果显示,与裸机执行相比,ZVM 的最大抖动增加了 6.5%,平均延迟增加了 4.6%。相比之下,Xvisor 的最大抖动增加了 11%,平均抖动增加了 9.3%,而 Linux-KVM 的最大抖动增加了 157.2%,平均抖动增加了 152.6%。与 Xvisor 和 Linux-KVM 相比,ZVM 对最大延迟和抖动的控制更为出色,突出了其对最坏情况执行时间的优化处理以及对延迟关键环境的适用性。 #### 测试3:**Zephyr RTOS开销测试** @@ -26,7 +26,7 @@

   Zephyr中运行Sys kernel测试结果 -测试结果如上图所示,横坐标为各项基准测试项目,纵坐标为相关执行项的时间(单位为ns)。测试结果显示,相比于裸机平台,ZVM上运行Zephy RTOS的Semaphore 3测试项的损耗最大(8.7%),LIFO 3项的性能损耗为5.4%,其余损耗均在3%以内,且FIFO/Stack/Memslab等多个测试项的损耗为0。相比于裸机,ZVM引入的平均开销损耗仅为1.4%,说明ZVM上运行Zephyr RTOS的性能达到了裸机平台的98.6%。 +测试结果如上图所示,横坐标为各项基准测试项目,纵坐标为相关执行项的时间(单位为ns)。测试结果显示,相比于裸机平台,ZVM平均开销仅增加 1.8%。相比之下,Xvisor 和 KVM 的平均开销明显更高,分别为 178.4% 和 352.4%。这些结果说明了 ZVM 高效的虚拟化处理能力以及与 Xvisor 和 KVM 相比来看更好的性能。 #### 测试4:**Debian开销测试** @@ -35,6 +35,6 @@

   Debian中运行Unixbench测试结果 -测试结果如上图所示,横坐标为各项基准测试项,纵坐标各个基准项的评分(Score数值)。测试结果显示,相比于裸机平台,ZVM上运行Debian的Process Creation测试项所引入的性能损耗最大(5.7%),其余项的性能损耗都在2%以内。ZVM和裸机对比,基准指数分数上的开销损耗仅为0.7%。说明ZVM上运行Debian的性能达到了裸机平台的99.3%,基本可以忽略不计。 +测试结果如上图所示,横坐标为各项基准测试项,纵坐标各个基准项的评分(Score数值)。测试结果显示,在”System Benchmarks Index Score“这个整体分数上,裸机平台得分最高,为 395.8,ZVM 紧随其后,得分为 393.1,开销仅为 0.68%。相比之下,Xvisor 得分明显较低,为 364.9,开销为 7.8%,而 KVM 得分为 383.3,开销适中,为 3.2%。 `Prev>> 在ARM FVP上运行ZVM `__ \ No newline at end of file diff --git a/zvm_doc/figure/Debian_cyclictest.png b/zvm_doc/figure/Debian_cyclictest.png index 655a74a4f26ad94f21cb7df9d0981df17bb430dd..a037e93fed0052a63f113008512b6e5649145592 100644 Binary files a/zvm_doc/figure/Debian_cyclictest.png and b/zvm_doc/figure/Debian_cyclictest.png differ diff --git a/zvm_doc/figure/Debian_unixbench.png b/zvm_doc/figure/Debian_unixbench.png index f93966e350c63a29689657e25a100a294642adc5..076bdc28b9735133b3155f6f10d0bf22e14eb0fd 100644 Binary files a/zvm_doc/figure/Debian_unixbench.png and b/zvm_doc/figure/Debian_unixbench.png differ diff --git a/zvm_doc/figure/Zephyr_latency_measure.png b/zvm_doc/figure/Zephyr_latency_measure.png index de838e02cccbbdd05c30435ccf216db8df72179c..ee30f4bdb8c711e860961c03cd56378fe0484d27 100644 Binary files a/zvm_doc/figure/Zephyr_latency_measure.png and b/zvm_doc/figure/Zephyr_latency_measure.png differ diff --git a/zvm_doc/figure/Zephyr_sys_kernel.png b/zvm_doc/figure/Zephyr_sys_kernel.png index 1f5e469a4bc70bbc562b5bb3343db7a3c5d59848..58a3926874b6840f7bdc37d0087728c166d2e805 100644 Binary files a/zvm_doc/figure/Zephyr_sys_kernel.png and b/zvm_doc/figure/Zephyr_sys_kernel.png differ diff --git a/zvm_doc/figure/mem_compress.png b/zvm_doc/figure/mem_compress.png deleted file mode 100644 index 59ee14374def02e81c9ed269e4426add5fe9224b..0000000000000000000000000000000000000000 Binary files a/zvm_doc/figure/mem_compress.png and /dev/null differ diff --git a/zvm_doc/figure/mem_opt_arch.png b/zvm_doc/figure/mem_opt_arch.png deleted file mode 100644 index eb17c1d38734edc9b6d0c939a7fad85b087ce1e1..0000000000000000000000000000000000000000 Binary files a/zvm_doc/figure/mem_opt_arch.png and /dev/null differ diff --git a/zvm_doc/figure/mem_opt_list.png b/zvm_doc/figure/mem_opt_list.png deleted file mode 100644 index 195a5bfb4e2e9c27b9455bc2cafb0c11b8b48aa1..0000000000000000000000000000000000000000 Binary files a/zvm_doc/figure/mem_opt_list.png and /dev/null differ diff --git a/zvm_doc/figure/time_stamp.png b/zvm_doc/figure/time_stamp.png deleted file mode 100644 index a88d23d4a942eb4f25a8a0eae060993f8c3b21e4..0000000000000000000000000000000000000000 Binary files a/zvm_doc/figure/time_stamp.png and /dev/null differ diff --git a/zvm_doc/figure/vcpu_allocate.png b/zvm_doc/figure/vcpu_allocate.png deleted file mode 100644 index dc0d937c51a056a4fca6db08f427abcede10d892..0000000000000000000000000000000000000000 Binary files a/zvm_doc/figure/vcpu_allocate.png and /dev/null differ diff --git a/zvm_doc/figure/vcpu_logic.png b/zvm_doc/figure/vcpu_logic.png deleted file mode 100644 index fae1470057bdebd29021072d6fe7ade11bf9cacc..0000000000000000000000000000000000000000 Binary files a/zvm_doc/figure/vcpu_logic.png and /dev/null differ diff --git a/zvm_doc/figure/vdev_logic.png b/zvm_doc/figure/vdev_logic.png deleted file mode 100644 index b098019051d11260af4074bd68d749fcd5855319..0000000000000000000000000000000000000000 Binary files a/zvm_doc/figure/vdev_logic.png and /dev/null differ diff --git a/zvm_doc/figure/vdev_mode.png b/zvm_doc/figure/vdev_mode.png deleted file mode 100644 index 899770528c08e22bcd1a8206afbf55f0daaffd00..0000000000000000000000000000000000000000 Binary files a/zvm_doc/figure/vdev_mode.png and /dev/null differ diff --git a/zvm_doc/figure/virq_logic.png b/zvm_doc/figure/virq_logic.png deleted file mode 100644 index 9af8e2767602434ae61f82c1dac628aaff79df92..0000000000000000000000000000000000000000 Binary files a/zvm_doc/figure/virq_logic.png and /dev/null differ diff --git a/zvm_doc/figure/virq_routing.png b/zvm_doc/figure/virq_routing.png deleted file mode 100644 index 2327806d788e46e3ca9fe276b49d278788b94560..0000000000000000000000000000000000000000 Binary files a/zvm_doc/figure/virq_routing.png and /dev/null differ diff --git a/zvm_doc/figure/virtIO_arch.png b/zvm_doc/figure/virtIO_arch.png deleted file mode 100644 index 893dbfc5483b355ca5bc1f0bb4f27f8b79986f77..0000000000000000000000000000000000000000 Binary files a/zvm_doc/figure/virtIO_arch.png and /dev/null differ diff --git a/zvm_doc/figure/virtIO_driver.png b/zvm_doc/figure/virtIO_driver.png deleted file mode 100644 index cd03d918ff6c6d46113605ccee2bf8a03f7a8caa..0000000000000000000000000000000000000000 Binary files a/zvm_doc/figure/virtIO_driver.png and /dev/null differ diff --git a/zvm_doc/figure/virtIO_queue.png b/zvm_doc/figure/virtIO_queue.png deleted file mode 100644 index e05f7a17fb043e210164d81720b4764b848b57df..0000000000000000000000000000000000000000 Binary files a/zvm_doc/figure/virtIO_queue.png and /dev/null differ diff --git a/zvm_doc/figure/vmem_logic.png b/zvm_doc/figure/vmem_logic.png deleted file mode 100644 index fadba956c5846bb6f42f85fdfc338fa95d88357b..0000000000000000000000000000000000000000 Binary files a/zvm_doc/figure/vmem_logic.png and /dev/null differ diff --git a/zvm_doc/figure/vmem_mapping.png b/zvm_doc/figure/vmem_mapping.png deleted file mode 100644 index 544bf800152bcda5ea93df9cd781a570c7c58848..0000000000000000000000000000000000000000 Binary files a/zvm_doc/figure/vmem_mapping.png and /dev/null differ diff --git a/zvm_doc/figure/vtimer_logic.png b/zvm_doc/figure/vtimer_logic.png deleted file mode 100644 index 00c9551651ca16bf62a6cc57f33a3712352ac70f..0000000000000000000000000000000000000000 Binary files a/zvm_doc/figure/vtimer_logic.png and /dev/null differ diff --git a/zvm_doc/figure/vuart_passthrough.png b/zvm_doc/figure/vuart_passthrough.png deleted file mode 100644 index 4d4a3fcf28fbb5b63be2af2633dc1ab6c355eee3..0000000000000000000000000000000000000000 Binary files a/zvm_doc/figure/vuart_passthrough.png and /dev/null differ diff --git a/zvm_doc/figure/zvm_demo.png b/zvm_doc/figure/zvm_demo.png deleted file mode 100644 index 8aa04fe12936b9175813bdb45f0c7383d32cdfa5..0000000000000000000000000000000000000000 Binary files a/zvm_doc/figure/zvm_demo.png and /dev/null differ