Re: [RT LATENCY] 249 microsecond latency caused by slub'sunfreeze_partials() code.

From: Christoph Lameter
Date: Mon Jun 03 2013 - 15:39:32 EST


On Tue, 4 Jun 2013, JoonSoo Kim wrote:

> And I re-read Steven initial problem report in RT kernel and find that
> unfreeze_partial() do lock and unlock several times. This means that
> each page in cpu partial list doesn't come from same node. Why do we
> add other node's slab to this cpu partial list? This is also not good
> for general case. How about considering node affinity in __slab_free()?
> IMHO, if we implement this, Steven's problem can be solved.

We may need the other nodes pages if we consistently allocate from there.
__slab_alloc() ensures that only pages from the correct node are used. It
will drop pages that do not come from the proper nodes.

Filtering in __slab_free would mean that we cannot improve performance on
remote frees.

--
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/