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

2013年(22)

我的朋友

发布时间:2013-08-04 18:40:40

Q:SLAB为什么需要定时调用cache_reap()回收page?A:SLAB的每CPU array_cache中的对象可能关联到多个slab,在长时间的分配和释放后,可能出现比较极端的情况:array_cache借用了多个slab的对象,而slab除了被array_cache借用的对象外,其他对象都是空闲的,导致slab不能销毁,大量page被占用.定时的cache_reap()后,array_cache借.........【阅读全文】

阅读(1902) | 评论(0) | 转发(0)

发布时间:2013-08-04 18:37:24

Q:对文件mmap()后,执行ftruncate()将文件的长度置为0,再向映射后的地址写数据会怎么样?A:收到SIGBUS信号如果mmap()的page对应的磁盘数据块都是连续的,那么page无需转化为buffer page,可以整页读出page.缺页异常读入page过程:do_page_fault()handle_mm_fault()handle_pte_fault() do_linear_fault() .........【阅读全文】

阅读(3059) | 评论(0) | 转发(0)

发布时间:2013-08-04 18:35:55

1.如果buffer被置为脏buffer,那么page的脏页标志需要被置位,此时,page中其他buffer的DIRTY标志不受影响mark_buffer_dirty() if (!test_set_buffer_dirty(bh))  __set_page_dirty()   TestSetPageDirty(page)   radix_tree_tag_set(PAGECACHE_TAG_DIRTY)  .........【阅读全文】

阅读(4447) | 评论(0) | 转发(2)

发布时间:2013-08-04 18:32:42

1.page读do_mpage_readpage() bio_add_page()    //将page加入到bio时,page必须先被锁住,bio读操作执行的过程中page都是被锁住的 mpage_bio_submit()   bio->bi_end_io = mpage_end_io_read;mpage_end_io_read() if (uptodate) {  SetPageUptodate(p.........【阅读全文】

阅读(4799) | 评论(0) | 转发(0)

发布时间:2013-08-04 18:32:10

1.成功按页读取page,page的UPTODATE标志置位mpage_end_io_read() int uptodate = test_bit(BIO_UPTODATE, &bio->bi_flags); if (uptodate) {  SetPageUptodate(page); } 2.异步读取buffer_head成功后,buffer_head的标志置位,如果buffer_head对应的page中所有的buffer_head都为UPT.........【阅读全文】

阅读(5253) | 评论(0) | 转发(2)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册