首页 > TAG信息列表 > page-fault
动态扩展Linux堆栈
我注意到Linux堆栈从小处开始,并由于递归/推送/ vlas导致的页面错误而扩展,直至达到getrlimit(RLIMIT_STACK,…),give或take的大小(系统上的默认值为8MiB). 但是奇怪的是,如果我通过在限制范围内直接寻址字节而导致页面错误,Linux只会在不扩展页面映射的情况下定期进行段错误(但是linux-从大型malloced数组读取而不是仅存储时,两次页面错误的发生次数是多少?
我正在使用下面的代码对监视页面错误进行简单的测试,我不知道的是,下面的简单一行代码如何使页面错误计数加倍. 如果我用 ptr[i+4096] = 'A' 我使用perf工具获得了25,722个页面错误,这是我所期望的, 但是如果我使用 tmp = ptr[i+4096] 相反,页面错误翻了一番,达到51,32read()系统调用页面错误不依赖于文件大小
我正在使用C语言中的read()读取不同大小的文件(1KB – 1GB).但每次我使用perf-stat检查页面错误时,它总是给我相同(几乎)的值. 我的机器:(虚拟机上的fedora 18,RAM – 1GB,磁盘空间 – 20 GB) uname -a Linux localhost.localdomain 3.10.13-101.fc18.x86_64 #1 SMP Fri Sep为什么linux内核中的这段代码不会导致死循环?
我正在阅读关于启动时页表初始化的linux源代码(4.4.45,但在其他版本中应该是相同的),下面的代码让我很困惑. 具体来说,我正在阅读有关early_level4_pgt如何初始化的内容.这是x86_64中代码的一部分,即link is here. leaq level2_kernel_pgt(%rip), %rdi leaqc – 识别主要页面错误原因
我被要求查看用C编写并在Linux上运行的内部应用程序,这些应用程序存在一些困难. 它会定期出现大量主要页面错误(约200k),这会导致挂钟运行时间增加x10,然后在某些运行时它将没有. 我已经尝试隔离代码的不同部分,但在测试时我很难重复页面错误错误. 有没有人有任何关于在主要页面错