Chinaunix首页 | 论坛 | 博客
  • 博客访问: 165454
  • 博文数量: 22
  • 博客积分: 126
  • 博客等级: 入伍新兵
  • 技术积分: 459
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-26 21:14
文章分类
文章存档

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()

阅读(2895) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~