Re: [PATCH 03/19] fs: Convert nr_inodes and nr_unused to per-cpu counters

Dave Chinner
2010-10-17T02:16:18Z

On Sat, Oct 16, 2010 at 09:12:04PM -0400, Christoph Hellwig wrote:
> On Sun, Oct 17, 2010 at 12:09:44PM +1100, Dave Chinner wrote:
> > > fwiw, for_each_*_cpu() takes longer than a single jiffy tick on those
> > > machines.
> >
> > Yes, agreed. I'm not sure we need exact summation for these counters,
> > but I haven't wanted to bring inaccuracies into the code at this
> > point in time. I need to investigate the effect of using the
> > approximate summation values in all the cases they are used.
>
> Use of the dirty inodes numbers in the writeback code is something
> that does not make much sense. It was added as an undocumented
> workaround somewhere in the old writeback code, and spread to even
> more sites over time. I'm pretty sure we don't actually need it,
> but I'm not quite sure what we actually need.

IIRC, it was needed so that we trigger writeback on purely dirty
inodes. i.e. inodes that have no dirty pages and so wbc->nr_to_write
could be changed and not have background writeback abort because
either nr_to_write was zero or wbc->nr_to_write did not change...

A hack, yes, and one that definitely needs to be revisited outside
the scope of this patch set.

Cheers,

Dave.
--
Dave Chinner
david@fromorbit.com