Page Cache之writeback

       由于page cache的存在,用户write时只是将数据缓存到了page cache,并标记为dirty,而没有真正写到块设备(如硬盘)上 。内核在某个时刻会将page cache里的dirty数据wirteback到块设备上,这就是内核的writeback机制。

       writeback是通过delayed_work来实现的,在wb_init()函数里初始化了这个delayed_work;

        INIT_DELAYED_WORK(&wb->dwork, wb_workfn);

在wb_workfn()会wakeup这个delayed_work,来实现周期性的writeback:

周期为dirty_writeback_interval,可以通过 /proc/sys/vm/dirty_writeback_centisecs来设置,默认是 5秒。

writeback的主体是在wb_do_writeback():

writeback分以下两种方式:

1. periodic writeback

    对应wb_check_old_data_flush():

   

     对expired dirty inode进行w

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值