Re: RCU scaling on large systems

From: Andrew Morton
Date: Mon May 17 2004 - 16:42:49 EST


Andrea Arcangeli <andrea@xxxxxxx> wrote:
>
> On Fri, May 07, 2004 at 04:32:35PM -0700, Andrew Morton wrote:
> > Jack Steiner <steiner@xxxxxxx> wrote:
> > >
> > > The calls to RCU are coming from here:
> > >
> > > [11]kdb> bt
> > > Stack traceback for pid 3553
> > > 0xe00002b007230000 3553 3139 1 11 R 0xe00002b0072304f0 *ls
> > > 0xa0000001000feee0 call_rcu
> > > 0xa0000001001a3b20 d_free+0x80
> > > 0xa0000001001a3ec0 dput+0x340
> > > 0xa00000010016bcd0 __fput+0x210
> > > 0xa00000010016baa0 fput+0x40
> > > 0xa000000100168760 filp_close+0xc0
> > > 0xa000000100168960 sys_close+0x180
> > > 0xa000000100011be0 ia64_ret_from_syscall
> > >
> > > I see this same backtrace from numerous processes.
> >
> > eh? Why is dput freeing the dentry? It should just be leaving it in cache.
> >
> > What filesystem is being used? procfs?
>
> deleting entries from dcache can be a frequent operation, even rename()
> triggers d_free.

This issue has gone all quiet. Is anyone doing aything?

> note that I changed my tree to free all negative entries that are
> currently generated by unlink. I find useless to leave negative dentries
> after "unlink". I leave them of course after a failed lookup (that's the
> fundamental usage of the negative dentries for the PATHs userspace
> lookups), but not after unlink.

Sounds sensible. Could you please send out the patch?

> RCU basically trades mugh higher performance for reader, with much lower
> performance for the writer.

If the writer wants synchronous-removal semantics, yes.

The problem here and, I believe, in the route cache is in finding a balance
between the amount of storage and the frequency of RCU callback runs.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/