问题标签 [page-fault]
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 - kprobe机制拦截do_page_fault
我试图拦截__do_page_fault()
linux内核中的方法。正常的注册方式kprobes
,即定义kp.addr
为
不管用。这样做的正确方法是什么?
编辑:任何其他拦截 do_page_fault 的方法也适用于我。
operating-system - 带有页面错误的循环作业调度
我有一份作业列表,其中包含作业编号、CPU 时间、到达时间、页面错误。我最终需要在 java 中编写该过程,但现在我只是想了解它如何以 10 毫秒的时间量处理作业并解释页面错误。我已经尝试过前三个工作都没有成功,所以当一个工作恰好开始备份但立即出现页面错误时,我会挂断电话。它是开始并继续运行还是立即返回等待队列。如果有人知道这些工作应该如何安排在时间线上,我将不胜感激。
这是前3个工作:
c# - 为什么在 C# 中访问非托管内存的成本偶尔会达到 120 毫秒?
我用来Marshal.AllocHGlobal
在我的 C# 应用程序(在 Windows 中)中分配几个巨大的非托管内存块(每个 100MB)。我使用这些来分配较小的非托管内存。在对这些较小的分配进行基准测试后,我认识到虽然其中超过 99% 的成本为 0-10 个 C#StopWatch
滴答,但有些成本为 30 毫秒到 120 毫秒,我可以将成本降低到单个memset
调用(150 字节)。我用memset
对内存区域中地址的两次内存写入替换了调用memset
会触及并观察到相同的成本。这意味着我的内存访问成本是主内存访问成本的 1000 倍。由于页面错误似乎有类似的成本,我想知道页面错误是否会导致这种行为,但是查看 windows 任务管理器,当问题发生时,我的主内存容量还很远。
我试图在微基准测试中重现这一点,但没有成功。有没有人知道什么可能导致这种行为或者我可以做些什么来追捕它?
linux - 如何知道特定内存映射区域发生的页面错误
/proc//statm 可以获取进程上的总页面错误,但是我如何知道在特定的 mmaped 区域发生了多少?谢谢
c++ - 大量页面错误与内存碎片有什么关系?
我想知道一个程序是否显示大量(或系统中最高的)页面错误,让我们说进入任务管理器或进程资源管理器,这表明内存碎片。有没有其他方法可以揭示这种问题?(内存碎片)。因此,运行时出现大量页面错误的程序可能来自不在 RAM 中但操作系统经常中断从磁盘加载的数据。一个可能的原因可能是内存碎片?我想知道这2件事是否相关
linux-kernel - CoreOS VM crash: swap trace printed
I'm using CoreOS 773.1.0 with kubernetes. Recently it crashes and printed this trace log:
The VM is still running but I cannot ssh to it, kubernetes master node declare it as NotReady
. I had to turn it off (not shutdown) and start it.
I'm using Hyper-V as hypervisor, the VM is assiged 12GB RAM, 4GB swap, 4 cores CPU. Especially, I got this error after I moved the disk (.vhd
file) to new partition.
caching - 脏缓存行和页面驱逐
当操作系统选择它所在的页面进行驱逐时,尚未写回的脏缓存行(假设写回缓存)会发生什么情况。In other words what happens to the cache lines of the page, when a page is chosen for eviction from main memory.
一般的假设是,当页面从内存中被逐出时,它已经足够冷而不会被缓存。但是,这会在更大的缓存中造成问题吗?如果说我们有足够的缓存行来容纳每页的 1 行?
assembly - 在 x86 32 位中禁用分页
我试图直接写入物理内存位置,所以我使用汇编函数首先禁用分页,写入值,然后重新启用分页,但由于某种原因,尝试写入时仍会触发页面错误价值。
据我了解,在 x86-32bit 中,通过翻转 cr0 中的第 32 位来打开和关闭分页,所以这是我的汇编函数:
这是实现我想做的正确方法吗?如果是这样,为什么在 cr0 中的位翻转时仍然会触发页面错误?
operating-system - 页面大小扩展如何处理页面错误?
我试图理解在 x86 处理器中使用的页面大小扩展的概念,但无法将其与页面错误机制联系起来。据我了解,当页面错误发生时,虚拟地址被写入寄存器,错误代码被压入堆栈。但是如果我们使用页面大小扩展,那么页面错误处理程序如何知道需要分配什么页面大小。谁能帮我解决这个问题?