首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用内核Linux (6)源代码访问交换空间时插入延迟?

如何在使用内核Linux (6)源代码访问交换空间时插入延迟?
EN

Stack Overflow用户
提问于 2022-11-10 16:13:46
回答 1查看 16关注 0票数 1

我正在寻找一种在操作系统访问交换空间时插入一些人为延迟的方法。我正在开发最新版本的内核(Version6.0.6),我在内核开源代码中找到了一些位置,它处理页面错误(do_page_fault()),但我不确定它是否是插入延迟的合适位置?

我在arch/x86/fault.c中尝试了arch/x86/fault.c部件(我正在使用ubuntu22.04进行测试)。但没有成功。在创建和更新内核时,有时会插入如此多的延迟,有时则不会。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-10 16:28:44

有两种类型的页面错误:主要错误和次要错误。

你正在寻找的东西被认为是重大的错误。有一个名为memory.c的文件。在函数vm_fault_t do_swap_page(struct vm_fault *vmf)中,您可以找到它的实现,请参阅以下代码:(linux -> mm -> Memy.c)

代码语言:javascript
复制
        if (!folio) {
            /*
             * Back out if somebody else faulted in this pte
             * while we released the pte lock.
             */
            vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd,
                    vmf->address, &vmf->ptl);
            if (likely(pte_same(*vmf->pte, vmf->orig_pte)))
                ret = VM_FAULT_OOM;
            goto unlock;
        }

        /* Had to read the page from swap area: Major fault */
        ret = VM_FAULT_MAJOR;
        count_vm_event(PGMAJFAULT);
        count_memcg_event_mm(vma->vm_mm, PGMAJFAULT);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74392102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档