Re: [PATCH 2/2] block: Convert BDI proportion calculations to flexible proportions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2012-05-07 at 22:47 +0800, Fengguang Wu wrote:
> On Fri, May 04, 2012 at 12:39:20AM +0200, Jan Kara wrote:
> > Convert calculations of proportion of writeback each bdi does to new flexible
> > proportion code. That allows us to use aging period of fixed wallclock time
> > which gives better proportion estimates given the hugely varying throughput of
> > different devices.
> > 
> > Signed-off-by: Jan Kara <jack@xxxxxxx>
> > ---
> >  include/linux/backing-dev.h |    6 ++--
> >  mm/backing-dev.c            |    5 +--
> >  mm/page-writeback.c         |   80 ++++++++++++++++++++----------------------
> >  3 files changed, 43 insertions(+), 48 deletions(-)
> 
> > +static void vm_completions_period(struct work_struct *work);
> > +/* Work for aging of vm_completions */
> > +static DECLARE_DEFERRED_WORK(vm_completions_period_work, vm_completions_period);
> 
> > +
> > +static void vm_completions_period(struct work_struct *work)
> > +{
> > +	fprop_new_period(&vm_completions);
> > +	schedule_delayed_work(&vm_completions_period_work,
> > +			      VM_COMPLETIONS_PERIOD_LEN);
> > +}
> > +
> 
> Is it possible to optimize away the periodic work when there are no
> disk writes?

That should really be a timer, nothing in there requires scheduling so
the entire addition of the workqueue muck is pure overhead.

You could keep a second period counter that tracks the last observed
period and whenever the period and last_observed_period are further
apart than BITS_PER_LONG you can stop the timer.

You'll have to restart it when updating last_observed_period.



--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]