加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux-kernel – ARM Linux页表项格式 – 未使用的位?

发布时间:2020-12-14 01:52:54 所属栏目:Linux 来源:网络整理
导读:我需要使用两个PTE位来存储我的内核模块在拦截页面保护错误时将使用的自定义“状态”值. 我正在开发Galaxy Nexus,它有一个ARM Cortex A9(我相信ARM v7). Linux内核版本3.0.31. Linux PTE定义如下(来自arch / arm / include / asm / pgtable.h: /* * "Linux"
我需要使用两个PTE位来存储我的内核模块在拦截页面保护错误时将使用的自定义“状态”值.

我正在开发Galaxy Nexus,它有一个ARM Cortex A9(我相信ARM v7). Linux内核版本3.0.31. Linux PTE定义如下(来自arch / arm / include / asm / pgtable.h:

/*
 * "Linux" PTE definitions.
 *
 * We keep two sets of PTEs - the hardware and the linux version.
 * This allows greater flexibility in the way we map the Linux bits
 * onto the hardware tables,and allows us to have YOUNG and DIRTY
 * bits.
 *
 * The PTE table pointer refers to the hardware entries; the "Linux"
 * entries are stored 1024 bytes below.
 */
#define L_PTE_PRESENT       (_AT(pteval_t,1) << 0)
#define L_PTE_YOUNG         (_AT(pteval_t,1) << 1)
#define L_PTE_FILE          (_AT(pteval_t,1) << 2) /* only when !PRESENT */
#define L_PTE_DIRTY         (_AT(pteval_t,1) << 6)
#define L_PTE_RDONLY        (_AT(pteval_t,1) << 7)
#define L_PTE_USER          (_AT(pteval_t,1) << 8)
#define L_PTE_XN            (_AT(pteval_t,1) << 9)
#define L_PTE_SHARED        (_AT(pteval_t,1) << 10)    /* shared(v6),coherent(xsc3) */

只需查看这个定义列表,就会看到3,4,5位可用,以及11位和更高位.但是,我知道20个最重要的位[31:12]用于页码(PFN,我相信),所以我不能使用其中任何一个.

我可以自由地使用位[5:3]还是会产生问题?我花了几个小时寻找答案,但我只能找到有关Linux如何使用PTE位进行x86架构的文档.

更新:

我已经编制了一个我相信每个PTE位的列表.

bit  0     PRESENT
bit  1     YOUNG
bit  2     MEMORY TYPES 0  B          FILE (only when not PRESENT)
bit  3     MEMORY TYPES 1  C
bit  4     AP0 
bit  5     AP1
bit  6     DIRTY
bit  7     RD_ONLY
bit  8     USER
bit  9     XN
bit 10     SHARED
bit 11     EXT_NG (no idea what this is)

bit 12     |---|
...        |PFN|
bit 31     |---|

不幸的是我没有看到指定没有读取或写入权限的方法,但不知何故,带有PROT_NONE的mmap似乎仍然有效.我知道如何指定读取或R / W权限,但我仍然需要知道如何设置页面没有权限.

解决方法

您可以尝试清除pte中的当前位,是否会强制页面错误?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读