gpt4 book ai didi

linux - 在内核模块中实现 CPU 扩展

转载 作者:太空狗 更新时间:2023-10-29 11:34:43 26 4
gpt4 key购买 nike

我正在寻找与在内核模块中实现某些 CPU 扩展有关的信息。我发现了一些相关的东西:http://www.mirrors.docunext.com/lxr/http/source/arch/mips/kernel/unaligned.c事实上,这是我能找到的唯一接近的源代码。

基本上,我有一个使用某些 CPU 扩展构建的仅二进制共享对象,我需要在一个稍旧的 CPU 上运行,该 CPU 具有大部分指令集,但没有花哨的新东西。是的,我知道它会很慢,但总比用 SIGILL 崩溃好。

最佳答案

我认为你可以在用户空间中做到这一点。使用 sigaction()SIGILL 安装处理程序并指定 SA_SIGINFOsiginfo_t 中的字段 si_code 允许区分 SIGILL 的几种原因。例如,当信号来自 kill() 时试图模拟一条指令是没有意义的。处理程序的第三个参数指向包含错误发生时 CPU 上下文的结构(请参阅文档)。您可能会修改它并从信号处理程序返回,更改生效;如果这不起作用,请尝试 setcontext()

显然,它会比在内核中执行效率低一些,但更干净、更安全。

关于linux - 在内核模块中实现 CPU 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3419932/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com