gpt4 book ai didi

linux - numa_police_内存

转载 作者:太空宇宙 更新时间:2023-11-04 04:23:23 25 4
gpt4 key购买 nike

我正在 MIPS 机器上调试 NUMACTL。在 numa_police_memory() API 中,我们有:

void numa_police_memory(void *mem, size_t size)
{
int pagesize = numa_pagesize_int();
unsigned long i;
for (i = 0; i < size; i += pagesize)
asm volatile("" :: "r" (((volatile unsigned char *)mem)[i]));
}

看起来“asm volatile (“”::“r”((( volatile 无符号字符*)mem)[i]));”用于读取VM,以便之前mmap申请的所有内存都将分配到某个特定的物理内存上。但是这段 asm 代码是如何工作的呢?我看不懂汇编语言!为什么第一个双引号是空的???

谢谢

最佳答案

有趣的是,尽管使用了 asm 语句,但此代码片段中根本没有汇编代码。它包含一个空白的程序集“程序”、一个空的输出列表和一个输入列表。输入规范强制 ((volatile unsigned char *)mem)[i] 位于寄存器中。因此,所有这些魔法所做的就是生成每个页面的第一个字节的负载(页面故障前)。

关于linux - numa_police_内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11265191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com