We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
目前只是通过汇编的方式完成了riscv版本的fastpath_restore的功能,但是aarch64虽然能跑,不确定他一定可以正确,riscv64则只能通过前述的汇编的方式完成。直接汇编写入rust会在riscv64版本出错
The text was updated successfully, but these errors were encountered:
关于这个fastpath_restore汇编的bug的详细信息: 这个bug只会在ipc的测试上出现,而且当这段汇编代码在C部分通过ffi调用,或者在rust代码中通过汇编调用的时候,都不会出错(据llh的调试信息,通过C的ffi,再调用一次rust的代码,也不会出错)。当我直接把这段内联汇编放到rust里面的时候,查看反汇编和C代码一致(肉眼看不出有什么语义上的不同),但是就会出错。 关于IPC测试的具体内容:这个测试开了两个进程,通过很多for循环,然后一个进程先set再get,另一个进程先get再set,互相传递一个名为seed的信息并进行更改。当收到对面的信息之后会进行检查,如果和预期的seed不一致,就会报错。推测产生的问题是乱序或者没有及时返回。 总体而言,我认为是由于Rust编译器本身在这段代码不放在Rust里面的时候,他意识不到需要优化,所以正常工作。但是当他放入Rust代码中,就做了一些优化,就导致了上层看起来乱序的问题。但是这个优化的地方一定不是在这段汇编中。
Sorry, something went wrong.
No branches or pull requests
目前只是通过汇编的方式完成了riscv版本的fastpath_restore的功能,但是aarch64虽然能跑,不确定他一定可以正确,riscv64则只能通过前述的汇编的方式完成。直接汇编写入rust会在riscv64版本出错
The text was updated successfully, but these errors were encountered: