问题标签 [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.

0 投票
1 回答
689 浏览

linux - kprobe机制拦截do_page_fault

我试图拦截__do_page_fault()linux内核中的方法。正常的注册方式kprobes,即定义kp.addr

不管用。这样做的正确方法是什么?

编辑:任何其他拦截 do_page_fault 的方法也适用于我。

0 投票
1 回答
306 浏览

operating-system - 带有页面错误的循环作业调度

我有一份作业列表,其中包含作业编号、CPU 时间、到达时间、页面错误。我最终需要在 java 中编写该过程,但现在我只是想了解它如何以 10 毫秒的时间量处理作业并解释页面错误。我已经尝试过前三个工作都没有成功,所以当一个工作恰好开始备份但立即出现页面错误时,我会挂断电话。它是开始并继续运行还是立即返回等待队列。如果有人知道这些工作应该如何安排在时间线上,我将不胜感激。

这是前3个工作:

0 投票
0 回答
138 浏览

c# - 为什么在 C# 中访问非托管内存的成本偶尔会达到 120 毫秒?

我用来Marshal.AllocHGlobal在我的 C# 应用程序(在 Windows 中)中分配几个巨大的非托管内存块(每个 100MB)。我使用这些来分配较小的非托管内存。在对这些较小的分配进行基准测试后,我认识到虽然其中超过 99% 的成本为 0-10 个 C#StopWatch滴答,但有些成本为 30 毫秒到 120 毫秒,我可以将成本降低到单个memset调用(150 字节)。我用memset对内存区域中地址的两次内存写入替换了调用memset会触及并观察到相同的成本。这意味着我的内存访问成本是主内存访问成本的 1000 倍。由于页面错误似乎有类似的成本,我想知道页面错误是否会导致这种行为,但是查看 windows 任务管理器,当问题发生时,我的主内存容量还很远。

我试图在微基准测试中重现这一点,但没有成功。有没有人知道什么可能导致这种行为或者我可以做些什么来追捕它?

0 投票
0 回答
71 浏览

linux - 如何知道特定内存映射区域发生的页面错误

/proc//statm 可以获取进程上的总页面错误,但是我如何知道在特定的 mmaped 区域发生了多少?谢谢

0 投票
2 回答
2590 浏览

c++ - 大量页面错误与内存碎片有什么关系?

我想知道一个程序是否显示大量(或系统中最高的)页面错误,让我们说进入任务管理器或进程资源管理器,这表明内存碎片。有没有其他方法可以揭示这种问题?(内存碎片)。因此,运行时出现大量页面错误的程序可能来自不在 RAM 中但操作系统经常中断从磁盘加载的数据。一个可能的原因可能是内存碎片?我想知道这2件事是否相关

0 投票
3 回答
204 浏览

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:

enter image description here

enter image description here

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.

0 投票
0 回答
1564 浏览

c - C中的参数传递和堆栈设置

我目前正在尝试在我的操作系统课程中为项目的一部分实现参数传递。我们需要解析和标记文件名,并存储(使用 memcpy)参数的值、指向参数的指针以及其他一些其他的格式化功能。

它必须遵循此图示例的格式(示例命令为 /bin/ls -l foo bar):在此处输入图像描述

这是我的解决方案。目前,它正在导致页面错误,这表明参数传递没有按预期工作。

我写的辅助函数叫做 get_argc():

在此先感谢任何查看此内容的人。编辑:代码格式

0 投票
1 回答
1498 浏览

caching - 脏缓存行和页面驱逐

当操作系统选择它所在的页面进行驱逐时,尚未写回的脏缓存行(假设写回缓存)会发生什么情况。In other words what happens to the cache lines of the page, when a page is chosen for eviction from main memory.

一般的假设是,当页面从内存中被逐出时,它已经足够冷而不会被缓存。但是,这会在更大的缓存中造成问题吗?如果说我们有足够的缓存行来容纳每页的 1 行?

0 投票
2 回答
1823 浏览

assembly - 在 x86 32 位中禁用分页

我试图直接写入物理内存位置,所以我使用汇编函数首先禁用分页,写入值,然后重新启用分页,但由于某种原因,尝试写入时仍会触发页面错误价值。

据我了解,在 x86-32bit 中,通过翻转 cr0 中的第 32 位来打开和关闭分页,所以这是我的汇编函数:

这是实现我想做的正确方法吗?如果是这样,为什么在 cr0 中的位翻转时仍然会触发页面错误?

0 投票
1 回答
62 浏览

operating-system - 页面大小扩展如何处理页面错误?

我试图理解在 x86 处理器中使用的页面大小扩展的概念,但无法将其与页面错误机制联系起来。据我了解,当页面错误发生时,虚拟地址被写入寄存器,错误代码被压入堆栈。但是如果我们使用页面大小扩展,那么页面错误处理程序如何知道需要分配什么页面大小。谁能帮我解决这个问题?