高端内存:永久映射方式
pkmap_count保留了一个数组:当对应的表项为0是,说明相应的页表项还没有用于映射,当为1时,说明相应的页表项也没有用于映射,但是不能使用,因为其对应的TLB表项还没有刷新。当大于1时,则说明已经用于某个内核成分的映射,这里我觉得有个问题,因为数组每个项的初值为0.,当第一次使用该项对应的页表项被用于映射时,kmap使得数组该项值加1,变为1,此时分明是有内核成分在使用该页表项,但是根据开
作者: diandianlianyi 发布时间: 11-21
2.6下的抢占,软中断也可以吗?
本帖最后由donotgiveup于2010-11-2022:53编辑同一个cpu上,软中断可以抢占吗?同级的不能抢占,高级的可以吧?看了下,__do_softirqasmlinkagevoid__do_softirq(void){ structsoftirq_action*h; &n
作者: donotgiveup 发布时间: 11-20
一个简单字符驱动例子的问题
我写了一个简单的字符驱动,代码如下:/*一、功能:*测试自旋锁*这里,在open中使用了最简单的自旋锁。*添加自旋锁之后,对临界资源xxx_count的访问就只限一个进程*如果没有spinlock/spin_unlock那么,可能多个进程同时访问xxx_c
作者: vaqeteart 发布时间: 11-20
线性地址与逻辑地址
系统RAM所有页框描述符都存在mem_map数组中,指针mem_map指针是该数组的线性地址还是物理地址?virt_to_page(addr)宏返回的是页框描述符的线性地址还是物理地址?ULK说,如果页框不在高端内存区,可以通过计算页框下标,然后将其转换为物理地址,在根据物理地址得到相应页框的线性地址,代码如下:__va((unsignedlong)(page-mem_map)<
作者: diandianlianyi 发布时间: 11-20
菜鸟请教一个关于内核模块(Hello World)的问题
有这样一个(HelloWorld)模块:#include<linux/init.h>#include<linux/kernel.h>#include<linux/module.h>static
作者: 转瞬繁华 发布时间: 11-20
关于硬盘驱动的问题
大家通常是把硬盘驱动编译进内核,还是以模块形式编译。当然,如果单台机子的话也都好办。比如你有一批设备,硬盘可能都不大一样,如果想制作一个统一的内核安装包,硬盘驱动怎么编译。欢迎有经验的朋友介绍。。
作者: Godbach 发布时间: 11-20
内核获取内存的flag问题
内核在获取内存的时候,如果使用GFP_KERNEL,不能获取到内存。那么内核就会开始寻找最可以使用的内存,比如说杀死进程释放内存。那我就有个问题不太明白了。为什么内核在不能通过GFP_KERNEL获取到内存的情况下,去尝试一下GFP_HIGHMEM来获取内存呢?而是直接就去杀死进程啊?
作者: 瀚海书香 发布时间: 11-19
如何统计某逻辑设备的访问频率
要统计devicemapper下逻辑设备(将该设备挂载到某目录下)的访问频率,在dm_request中增加计数功能,对目录进行一次ls操作,计数多次,和预想的不一致。
作者: zishang-hhg 发布时间: 11-18