Re: [GIT PULL] scheduler fixes

Pekka Enberg
2009-05-28T12:06:48Z

On Tue, 2009-05-26 at 09:38 +0200, Nick Piggin wrote:
> On Mon, May 25, 2009 at 09:39:08PM +0300, Pekka Enberg wrote:
> > Linus Torvalds wrote:
> > >And vfs_caches_init_early() is actually doing some rather strange things,
> > >like doing a "alloc_large_system_hash()" but not unconditionally: it does
> > >it in the "late" initialization too, if not done early. inode_init_early
> > >does soemthing very similar (ie a _conditional_ early init).
> > >
> > >So none of this seems to really get a huge advantage from the early init.
> > >There seems to be some subtle NUMA issues, but do we really want that? I
> > >get the feeling that nobody ever wanted to do it early, and then the NUMA
> > >people said "I don't wnt to do this early, but I don't want to touch the
> > >non-NUMA case, so I'll do it early for non-numa, and late for numa".
> >
> > SLUB does sysfs setup in kmem_cache_init() and if I saw some oopses if I
> > don't call vfs_caches_init_early() first. I didn't look too closely, though.
>
> Did you also test the NUMA/hashdist case? vfs_caches_init_early doesn't
> do much in that case.

No, I tested UMA only.

On Tue, 2009-05-26 at 09:38 +0200, Nick Piggin wrote:
> I would say it is much more robust to do sysfs setup later if we move
> the slab setup so early. Probably it is just quite lucky not to explode
> in the !numa case because the vfs needs quite a bit of setting up...

That should not be an issue. SLUB already defers sysfs registration
until slab_sysfs_init() initcall has been run. So my patches have zero
change in how SLUB interracts with sysfs, actually.

Pekka