riscv: Add support for kernel mode vector#88
riscv: Add support for kernel mode vector#88sterling-teng merged 14 commits intoRVCK-Project:rvck-6.6from
Conversation
|
您好,这些内容的backport我在半个月前做过了。 |
嗯,你是在旧仓库合入的,我没有看到,另外你多合入了些补丁,又少合了bugfix,补丁commit log也不大对,修改一下,跟我说一下我关闭这个PR |
|
/check |
|
开始测试 |
|
check patch done. log: https://jenkins.oerv.ac.cn/job/rvck-pipeline/job/check-patch/119/consoleFull |
|
Kernel build success! |
|
Lava check fail! log: https://jenkins.oerv.ac.cn/job/rvck-pipeline/job/rvck-lava-trigger/149/consoleFull, result url: https://lava.oerv.ac.cn/results/443/0_rvck_common-test_qemu |
|
kunit test done. log:https://jenkins.oerv.ac.cn/job/rvck-pipeline/job/kunit-test/125/consoleFull |
|
/check |
|
Kernel build success! |
|
kunit test done. log:https://jenkins.oerv.ac.cn/job/rvck-pipeline/job/kunit-test/157/consoleFull |
|
Lava check done! result url: https://lava.oerv.ac.cn/results/621/0_rvck_common-test_qemu |
|
check patch done. log: https://jenkins.oerv.ac.cn/job/rvck-pipeline/job/check-patch/165/consoleFull |
这个pr已经进入物理机测试阶段了,你这边如果没有异议,通过测试后将会尝试合并。 |
无异议,测试通过麻烦merge一下 |
“Add support for kernel mode vector”补丁系列为RISC-V架构的Linux内核提供了内核模式下的向量支持,优化了性能,支持了抢占机制,并且与用户模式的向量操作协同工作。这些改进使得RISC-V在处理大规模数据和复杂计算时能够更好地利用向量指令的并行性,从而提升整体性能。该补丁增加了如下功能
1、允许内核代码使用向量指令:该补丁系列使内核模式下的代码能够直接使用向量指令进行计算。这在之前是不支持的,因为向量指令主要用于用户模式。
2、上下文管理:提供了内核模式向量的上下文管理机制,确保在内核模式下使用向量时,能够正确地保存和恢复用户模式的向量上下文。
3、向量化子例程:补丁系列计划在内核中引入向量化版本的子例程,如copy_to/from_user等。这些向量化实现可以在处理大规模数据时显著提升性能。
4、性能阈值:引入了性能阈值机制,仅在操作规模较大时启用向量操作,以避免在小规模操作中因向量初始化和拆除成本导致的性能下降。
5、可抢占向量:支持内核模式下的可抢占向量操作。这意味着在内核模式下使用向量时,可以允许其他内核线程抢占当前线程,从而提高系统的响应性和并发性能。
测试方法
qemu使用-cpu rv64,v=on参数打开vector特性,以copy_to/from_use为例,编译下面驱动模块,插入系统可正常运行
copy_to_user_test.c.zip