问题标签 [kernel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 如何以编程方式禁用硬件预取?
我想以编程方式禁用硬件预取。
从使用硬件实现的预取器优化英特尔® 酷睿™ 微架构上的应用程序性能以及 如何在 32 位英特尔® 架构上选择硬件和软件预取,我需要更新 MSR 以禁用硬件预取。
这是一个相关的片段:
“DPL Prefetch 和 L2 Streaming Prefetch 设置也可以通过编写用于更改
IA32_MISC_ENABLE
寄存器中的位的设备驱动程序实用程序以编程方式更改 -MSR 0x1A0
此类实用程序提供启用或禁用预取机制的能力,而无需任何服务器停机时间。
下表显示了为了控制和 L2 流预取IA32_MISC_ENABLE MSR
而必须更改的位:DPL
我尝试使用http://etallen.com/msr.html但这不起作用。我也尝试过直接使用wrmsr
inasm/msr.h
但那是段错误。我尝试在内核模块中执行此操作......并杀死了机器。
顺便说一句 - 我使用的是内核 2.6.18-92.el5,它已MSR
链接到内核中:
linux - 使用用户空间进程来辅助内核模块
我正在开发一个在 Linux 下工作的非常高性能的硬件。我们想缓存一些数据,但我们担心内存消耗——所以我们的想法是创建一个用户进程来管理缓存。这样,缓存可以在虚拟内存中,而不是在内核空间中,等等。
问题是:最好的方法是什么?我的第一直觉是让内核模块创建一个字符设备文件,并让一个用户程序打开该文件,然后坐在一个选择语句上等待命令到达它。但我担心这可能不是最佳的。一位朋友提到他知道基于套接字的接口,但是当他按下时他无法提供任何细节......
有什么建议么?
windows-xp - 分页池内存或非分页池内存??(windows驱动开发)
我是 Windows 驱动程序开发的新手。我只想知道,驱动程序中的全局变量将使用分页池内存还是非分页池内存?
谢谢并恭祝安康
纳瓦尼思
debugging - 如何将 OSDictionary 转储(打印)到控制台/日志?
我想从我的 kext 检查 OSDictionary 的内容。有没有方便的方法将内容打印到 system.log 或类似文件?(阿拉CFShow())?
thx->adv,
|K<
windows - 为 microsoft windows 编写内核的基本要求是什么
作为程序员我应该学习什么来编写像微软windows这样的内核
我知道c和c++,但是我应该怎么写内核是有必要了解linux内核编程的基础知识吗?
如何成为 linux 和 windows 内核编程专家
linux - 从零开始强化 BSD
我知道Hardened Linux from Scratch项目,该项目为您提供了完全从源代码构建您自己的定制和强化 Linux 系统的分步说明。我想知道BSD中的等价物是什么?
linux - 什么是抢占/什么是可抢占内核?到底有什么好处呢?
用你自己的话解释一下,什么是抢占,它对(linux)内核意味着什么?
拥有可抢占内核的优点和缺点是什么?
linux - 为什么我需要在 linux 内核升级后重新编译 vmware 内核模块?
linux 内核升级后,我的 VMWare 服务器无法启动,直到使用 vmware-config.pl 进行一些重新配置工作(包括构建一些内核模块)。
如果我用最新的 Windows Service Pack 更新我的 Windows VMWare 主机,我通常不需要做任何事情来运行 VMWare。
为什么 VMWare 在 Linux 和 Windows 之间的工作方式不同?此重新编译操作是否在 Linux 平台上比 Windows 带来任何好处?
c - 如何使用 C 获取 Linux 中打开的套接字列表?
有没有办法在用户空间或内核中使用 C 来获取 Linux 中所有打开的套接字(套接字地址或套接字描述符)的列表?
谢谢
linux - 在内核和用户模式之间切换时的时间戳计数器 (TSC)
我想知道当上下文切换发生时,是否有人知道有关 Linux 中时间戳计数器的更多详细信息?到目前为止,我的观点是,TSC 值在每个时钟周期内仅增加 1,无论是在内核模式下还是在用户模式下都是独立的。我现在使用 TSC 测量了一个应用程序的性能,它产生了 5 个 Mio 时钟周期的性能结果。然后,我对调度程序进行了一些更改,这意味着上下文切换需要更长的时间,例如 2 个 Mio 周期而不是 500.000 个周期。有趣的是,当再次测量原始应用程序的性能时,它仍然需要 5 个 Mio 周期......所以我想知道为什么它没有花费更长的时间,因为上下文切换现在需要将近 2 个 Mio 时钟周期?(并且在应用程序执行期间至少出现 3 个上下文)。
时间戳计数器是否在内核模式期间以某种方式停用?还是在比赛切换时保存了 TSC 的内容?谢谢,如果有人能指出我可能是什么问题!