-
VMALLOC_RESERVE 和 896MVMALLOC_RESERVE和896MLINUX内核虚拟地址空间到物理地址空间一般是固定连续影射的。假定机器内存为512M,从3G开始,到3G+512M为连续固定影射区。zone_dma,zone_normal为这个区域的。固定影射的VADDR可以直接使用(getafreepage,thenusepfn_to_virt()等宏定义转换得到vaddr)或用kmall思一克 时间:01-16 + 阅读全文
-
get_user_pages()真是个好东东发现get_user_pages()接口真是个好东东,它能获取用户区进程使用内存的某个页(structpage),然后可以在内核区通过kmap_atomic(),kmap()等函数映射到内核区线性地址,从而可以在内核区向其写入数据。据我所知,用户区使用共享内存获取的内存是页对齐的,可以比较方便传给内核使用,请问还有其他方式获取整页内存不?get_user_pages()的函数声明如下:spren 时间:08-25 + 阅读全文
-
内核定时器的一点疑问本帖最后由donotgiveup于2010-08-2610:48编辑按《linux内核设计与实现》所说,del_timer是不安全的。在smp环境下,只要在定时器函数中操作了timer,就可能引发问题,因为这个时候timer已经删除了。那就只能用del_timer_sync了。因为一般会在timer回调函数里面mod_timer,准备下一次定时。我这样理解对吗?书上又说deldonotgiveup 时间:08-25 + 阅读全文
-
请教块设备驱动的问题大家好,我的sd卡驱动(未用linux自带的)是用的blk_init_queue,采用__make_request处理bio,然后发送request,建立线程处理request的做法。以前设置的一次性最大传输长度是PAGE_SIZE,也就是4K,现在希望改成64k提高速度。linuxkernel是2.6.34我在读写前加入card_queue_map_sg将biomap到内部申请的bfei1700 时间:08-24 + 阅读全文
-
【求助】终端设备tty初始化代码本帖最后由nathan10于2010-08-2517:43编辑tty设备初始化用到如下函数voidtty_init(void){ rs_init(); con_init();}其中rs_init()实现如下voidrs_init(void){nathan10 时间:08-25 + 阅读全文
-
内核代码中的 _be32是什么数据类型?最近在学习romfs,看它的源代码时不知道_be32是什么数据类型.知道_u32的意思是32位整数类型_u32=unsignedlongint但是不知道_be32列如在函数romfs_checksum(void*data,intsize)中有:const_be32*ptr=data;(新手拜求)wykitty 时间:08-25 + 阅读全文
-
请问为何需要local_t类型?ProfessionalLinuxKernelArchitecture一书讲到:内核为SMP系统也提供了local_t类型,该类型允许在单个CPU上的原子操作。但我看源代码,看不出来local_t与atomic_t有什么区别啊!rc_hz 时间:08-25 + 阅读全文