[lkml]   [2007]   [Sep]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 24/25] r/o bind mounts: track number of mount writers
    On Mon, 24 Sep 2007 12:28:11 -0700
    Dave Hansen <> wrote:

    > On Mon, 2007-09-24 at 18:54 +0100, Christoph Hellwig wrote:
    > > As we already say in various messages the percpu counters in here
    > > look rather fishy. I'd recomment to take a look at the per-cpu
    > > superblock counters in XFS as they've been debugged quite well
    > > now and could probably be lifted into a generic library for this
    > > kind of think. The code is mostly in fs/xfs/xfs_mount.c can
    > > can be spotted by beeing under #ifdef HAVE_PERCPU_SB.
    > >
    > > It also handles cases like hotplug cpu nicely that this code
    > > seems to work around by always iterating over all possible cpus
    > > which might not be nice on a dual core laptop with a distro kernel
    > > that also has to support big iron.
    > I'll take a look at xfs to see what I can get out of it.

    And at include/linux/percpu_counter.h, please.

    > There are basically two times when you have to do this
    > for_each_possible_cpu() stuff:
    > 1. when doing a r/w->r/o transition, which is rare, and
    > certainly not a fast path
    > 2. Where the per-cpu writer count underflows. This requires
    > a _minimum_ of 1<<16 file opens (configurable) each of which
    > is closed on a different cpu than it was opened on. Even
    > if you were trying, I'm not sure you'd notice the overhead.

    Sounds like what you're doing is more akin to the local_t-based module
    refcounting. `grep local_ kernel/module.c'.

    That code should be converted from NR_CPUS to for_each_possible_cpu()..
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2007-09-24 21:51    [W:0.021 / U:6.608 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site