2013年(22)
分类: LINUX
2013-08-04 18:31:34
1.通过sys_write()
__block_commit_write()
mark_buffer_dirty()
__set_page_dirty() // fs/buffer.c
2.MAP_SHARED方式做mmap()后,写page导致缺页
do_page_fault()
handle_pte_fault()
do_linear_fault()
__do_fault
filemap_fault()
set_page_dirty_balance()
set_page_dirty()
__set_page_dirty_buffers()
3.mmap()的脏页回写时会将对应的页表项置为只读,再次写page时,由于权限不够触发缺页异常
do_page_fault()
handle_pte_fault()
do_wp_page()
set_page_dirty_balance()
set_page_dirty()
__set_page_dirty_buffers()
4.文件系统在分配,释放数据块时,会弄脏元数据块,元数据块所在的page也会变脏
ext2_alloc_branch()
mark_buffer_dirty_inode()
mark_buffer_dirty()
__set_page_dirty()