On Sat, Apr 25, 2020 at 02:10:24AM +0000, Christoph Lameter wrote: > On Wed, 22 Apr 2020, Roman Gushchin wrote: > > > On Wed, Apr 22, 2020 at 11:52:13PM +0000, Christoph Lameter wrote: > > > On Wed, 22 Apr 2020, Roman Gushchin wrote: > > > > > > > enum stat_item { > > > > ALLOC_FASTPATH, /* Allocation from cpu slab */ > > > > @@ -86,6 +87,7 @@ struct kmem_cache { > > > > unsigned long min_partial; > > > > unsigned int size; /* The size of an object including metadata */ > > > > unsigned int object_size;/* The size of an object without metadata */ > > > > + struct reciprocal_value reciprocal_size; > > > > > > > > > This needs to be moved further back since it is not an item that needs to > > > be cache hot for the hotpaths. > > > > It could be relatively hot, because it's accessed for reading on every > > accounted allocation. > > The patch seems to only use it for setup and debugging? It is used for > every "accounted" allocation???? Where? And what is an "accounted" > allocation? > > Please, take a look at the whole series: https://lore.kernel.org/linux-mm/20200422204708.2176080-1-guro@xxxxxx/T/#t I'm sorry, I had to cc you directly for the whole thing. Your feedback will be highly appreciated. It's used to calculate the offset of the memcg pointer for every slab object which is charged to a memory cgroup. So it must be quite hot. Thanks! Roman