On Wed, Sep 29, 2010 at 02:13:51AM -0400, Christoph Hellwig wrote:
> On Wed, Sep 29, 2010 at 03:57:48PM +1000, Dave Chinner wrote:
> > FWIW, I've got a prototype that converts the per-cpu counters to the
> > generic per-cpu counter infrastructure. It chops out almost all the
> > xfs_icsb_* stuff (including xfs_icsb_modify_counters()) and has a
> > diffstat of:
> Sounds good - I always throught of the balanced per-cpu counters as
> infrastructure that really shouldn't sit inside XFS.
The only reason I implemented them like that in the first place was
that there was no generic per-cpu counter infrastructure in
> > It needs a significant cleanup of xfs_mod_incore_sb() before/after
> > the conversion which I haven't done yet because I haven't quite got
> > my new percpu_counter_test_and_add_delta() function working
> > correctly yet. I spotted this locking problem when testing the
> > patch...
> > That said, there's no reason why my percpu counter code needs to run
> > through xfs_mod_incore_sb() at all. If we have a separate path for
> > per-cpu counters then I can rework my code on top of that....
> We'll always need a low-level function to to the actual superblock
> updates and a high-level one modifying the per-cpu counters. I don't
> think the exact naming matters too much.
Agreed. I think it's probably best to wait for your cleanup patches
before reworking the counter implementation completely, though.