Re: [GIT PULL] scheduler fixes

Nick Piggin
2009-05-28T12:12:33Z

On Thu, May 28, 2009 at 03:06:40PM +0300, Pekka Enberg wrote:
> 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.

Oh right, I didn't actually look. An initcall should be fine, but
I wonder why it is crashing if you move it before vfs_caches_init_early?
Those just allocate inode and dentry hash tables...