Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

是否通过ramdisk加载比赛测例问题 #23

Open
Azure-stars opened this issue Sep 2, 2023 · 1 comment
Open

是否通过ramdisk加载比赛测例问题 #23

Azure-stars opened this issue Sep 2, 2023 · 1 comment

Comments

@Azure-stars
Copy link
Owner

Azure-stars commented Sep 2, 2023

背景

通过makefile的IMG features来判断是否将比赛测例加载到内核内存中。

  • 若IMG=y,此时认为通过qemu运行测例,因此不必启动ramdisk,而是通过virt-io即可访问外部测例镜像。
  • 若IMG=n,此时认为通过开发板运行,需要启动ramdisk,因此要手动通过tftp等操作将测例镜像加载到指定内存地址(常为0x9000_0000),并将该地址设置为ramdisk读取的地址即可。

当前问题

在比赛时为了方便调试,会在IMG=y的时候,将测例镜像直接加载在内核镜像中某一个地址addr,然后手动设置页表映射,将0x9000_0000映射到该地址addr,从而检验内核读取ramdisk的功能是否正常。但是在完成比赛之后,该方法会显得十分冗余。因此需要做如下改进:

  1. 设置在IMG=y的时候不启动ramdisk,仅启动virt-io;在IMG=n的时候启动ramdisk,不启动virt-io。
  2. 设置在IMG=y的时候不使用页表映射,而是通过qemu挂载的形式去读取外部镜像
@Azure-stars
Copy link
Owner Author

经简单测算,若使用qemu加载外部测例,则会导致读取外部文件时速度较慢,测试性能时较慢。而如果使用ramdisk读取内存,则测试出来的性能分数会比较高。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant