Re: tbench regression - Why process scheduler has impact on tbench and why small per-cpu slab (SLUB) cache creates the scenario?
From: Nick Piggin
Date: Tue Sep 11 2007 - 02:59:37 EST
On Tuesday 11 September 2007 05:07, Christoph Lameter wrote:
> On Mon, 10 Sep 2007, Nick Piggin wrote:
> > OK, so after isolating the scheduler, then SLUB should be as fast as SLAB
> > at the same allocation size. That's basically what we need to do before
> > we can replace SLAB with it, I think?
>
> The regression is due to the limited number of objects in the per cpu
> "queue" in SLUB for 4k objects. With the .23 code this is one or two
> (order 1 slab). So we have to call into the page allocator frequently and
> do it for order 1 pages which requires the zone locks. Urgh.
The impression I got at vm meeting was that SLUB was good to go :(
> I think the regression is best addressed by the page allocator pass
> through patch in mm which makes the page allocator handle these objects.
> They are single pages so the pcp lists are in use which provide much
> larger queues than SLUB/SLAB.
>
> IMHO >=4k objects should be handled by the page allocator. From the
> numbers I have seen there is then still a 1% regression left. If
> that is still the case after we have fixed the scheduler then maybe
> we need to slim down the page allocator fast path.
It is trivial to test SLUB vs SLAB independently of the scheduler change.
And actually, a scheduler regression here might just never be fixed,
because it is likely to be a higher level thing where the scheduling just
happens not to interact with tbench so well (and either it would be
impossible to find out why, or no point tuning the scheduler for such a
case).
But slab allocations don't really control the macro behaviour of a
benchmark like that so much. So don't wait until something happens
with the scheduler, fix it now.
Yay, looks like we'll get yet more logic in the VM to polish the proverbial
turd that is higher order allocations :P
-
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/