VM_LOCKED is of no use since the remap_pfn_range does not place pages on the LRU.
-
vm_locked-before-remap_pfn_range-and-drop-vm_shm.patch
Remove VM_LOCKED before remap_pfn range from device drivers and get rid of
VM_SHM.
remap_pfn_range() already sets VM_IO. There is no need to set VM_SHM since
it does nothing. VM_LOCKED is of no use since the remap_pfn_range does not
place pages on the LRU. The pages are therefore never subject to swap
anyways. Remove all the vm_flags settings before calling remap_pfn_range.
2.6内核下,对于为具体设备写驱动的开发人员而言,基本无需使用try_module_get与module_put
从设备使用的角度出发,当需要打开、开始使用某个设备时,使用try_module_get(dev→owner)去增加管理此设备的
owner模块的使用计数;当关闭、不再使用此设备时,使用module_put(dev→owner)减少对管理此设备的owner模块的使用计
数。这样,当设备在使用时,管理此设备的模块就不能被卸载;只有设备不再使用时模块才能被卸载。
2.6内核下,对于为具体设备写驱动的开发人员而言,基本无需使用try_module_get与module_put,因为此时开发人员所写
的驱动通常为支持某具体设备的owner模块,对此设备owner模块的计数管理由内核里更底层的代码如总线驱动或是此类设备
共用的核心模块来实现,从而简化了设备驱动开发。
一些待解的问题:
win下驱动结束了才出来,还是也参与时间片轮换?linux下呢?
两用户线程同时ioctl会造成混乱吗?
ioctl没执行完,另一用户线程有机会被调用吗?
阅读(736) | 评论(0) | 转发(0) |