Re: [PATCH 1/2] mm: page allocator: Adjust the per-cpu counterthreshold when memory is low

From: Christoph Lameter
Date: Fri Oct 29 2010 - 15:33:14 EST


On Fri, 29 Oct 2010, Andrew Morton wrote:

> > Doing that caused cache misses in the past and reduced the performance of
> > the ZVCs. This way the threshold is in the same cacheline as the
> > differentials.
>
> This sounds wrong. As long as that threshold isn't stored in a
> cacheline which other CPUs are modifying, all CPUs should be able to
> happily cache it. Maybe it needed a bit of padding inside the zone
> struct.

High speed cpu caches are a very scarce resource. The differentials are
not in the zone struct. Tried to put it onto a single cacheline. Even that
did not do the trick for the large configurations.

The same optimizations are done in the slab allocators by the way.

Use of the percpu_counter() would at least quadruple the cache footprint
in use for the counters. percpu_counters() is using s32 and not s8.

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