发布时间:2013-08-04 18:55:37
Q:块设备层保序的不足?A:块设备层提供保序后带来的最大问题是对IO性能的影响.因为保序开始后,在函数__elv_next_request()->blk_do_ordered()中,会等待当前阶段的步骤完毕后再派发新的request,此时不属于保序过程的其他request无法被执行,整个队列的IO基本处于停滞状态.鉴于此,社区达成共识:由文件系统自己来处理IO的次序.........【阅读全文】
发布时间:2013-08-04 18:53:41
Q:块设备层保序功能的作用?A:通用块层可以提交一个带保序标签(BIO_RW_BARRIER)的BIO到IO请求队列,块设备层可以保证在保序BIO之前提交的BIO都先于BIO执行且抵达存储介质;保序BIO执行完毕后,它需要写入的数据必定已经抵达存储介质;在保序IO之后提交的BIO都晚于保序BIO执行,确保BIO不饥饿.Q:块设备层保序功能的应用?A:.........【阅读全文】
发布时间:2013-08-04 18:52:57
1.上层调用submit_bio()向块设备层提交IO请求,q->make_request_fn()=>__make_request()被调用,将BIO合并到已有的request或为BIO新分配一个request.2.调用elv_merge(),首先尝试是否可以和上一次合并的request进行合并,如果不能合并,调用IO调度器提供的合并函数,尝试与IO调度器中缓存的request进行合并,如果都合并失败,.........【阅读全文】
发布时间:2013-08-04 18:51:32
在执行伙伴系统算法分配页框以前,需要调用zone_watermark_ok()判断当前内存区中的页框数目是否在水位线以上,其实主要有两点要求:1.是否满足预留的要求内存区中的预留页框数目又有两方面的要求:a.为紧急分配做的预留是否足够.zone->pages_min为内存区预留页框数目,常规分配时,内存区中的空闲页框数减去需要分配的数目后,.........【阅读全文】
发布时间:2013-08-04 18:49:55
Q:PG_slub_frozen的作用?A:在SLUB中,没有专门的slab管理对象,而是由page充当,PG_slub_frozen标识slab被CPU关联,主要作用:在__slab_free()中,如果当前返回的对象是slab中最后一个在使用的对象,那么slab就可以销毁,但是如果PG_slub_frozen标志置位,表示slab仍被其他CPU关联,暂时还不能销毁slab,从这一点来说,PG_slub_froze.........【阅读全文】