Messages in this thread | | | Date | Thu, 18 Aug 2011 12:41:01 +0800 | From | Wu Fengguang <> | Subject | Re: [PATCH 2/5] writeback: dirty position control |
| |
Hi Jan,
> > > > What if x_intercept > bdi_thresh? Since 8*bdi->avg_write_bandwidth is > > > > easily 500 MB, that happens quite often I imagine? > > > > > > That's fine because I no longer target "bdi_thresh" as some limiting > > > factor as the global "thresh". Due to it being unstable in small > > > memory JBOD systems, which is the big and unique problem in JBOD. > > I see. Given the control mechanism below, I think we can try this idea > > and see whether it makes problems in practice or not. But the fact that > > bdi_thresh is no longer treated as limit should be noted in a changelog - > > probably of the last patch (although that is already too long for my taste > > so I'll look into how we could make it shorter so that average developer > > has enough patience to read it ;). > > Good point. I'll make it a comment in the last patch.
Just added this comment:
+ /* + * bdi_thresh is not treated as some limiting factor as + * dirty_thresh, due to reasons + * - in JBOD setup, bdi_thresh can fluctuate a lot + * - in a system with HDD and USB key, the USB key may somehow + * go into state (bdi_dirty >> bdi_thresh) either because + * bdi_dirty starts high, or because bdi_thresh drops low. + * In this case we don't want to hard throttle the USB key + * dirtiers for 100 seconds until bdi_dirty drops under + * bdi_thresh. Instead the auxiliary bdi control line in + * bdi_position_ratio() will let the dirtier task progress + * at some rate <= (write_bw / 2) for bringing down bdi_dirty. + */ bdi_thresh = bdi_dirty_limit(bdi, dirty_thresh);
Thanks, Fengguang
| |