Thread (81 messages) 81 messages, 6 authors, 2014-07-23

Re: [PATCH] slub: Don't throw away partial remote slabs if there is no local memory

From: Nishanth Aravamudan <hidden>
Date: 2014-02-03 23:00:51
Also in: linux-mm

Possibly related (same subject, not in this thread)

On 28.01.2014 [10:29:47 -0800], Nishanth Aravamudan wrote:
On 27.01.2014 [14:58:05 +0900], Joonsoo Kim wrote:
quoted
On Fri, Jan 24, 2014 at 05:10:42PM -0800, Nishanth Aravamudan wrote:
quoted
On 24.01.2014 [16:25:58 -0800], David Rientjes wrote:
quoted
On Fri, 24 Jan 2014, Nishanth Aravamudan wrote:
quoted
Thank you for clarifying and providing  a test patch. I ran with this on
the system showing the original problem, configured to have 15GB of
memory.

With your patch after boot:

MemTotal:       15604736 kB
MemFree:         8768192 kB
Slab:            3882560 kB
SReclaimable:     105408 kB
SUnreclaim:      3777152 kB

With Anton's patch after boot:

MemTotal:       15604736 kB
MemFree:        11195008 kB
Slab:            1427968 kB
SReclaimable:     109184 kB
SUnreclaim:      1318784 kB


I know that's fairly unscientific, but the numbers are reproducible. 
Hello,

I think that there is one mistake on David's patch although I'm not sure
that it is the reason for this result.

With David's patch, get_partial() in new_slab_objects() doesn't work
properly, because we only change node id in !node_match() case. If we
meet just !freelist case, we pass node id directly to
new_slab_objects(), so we always try to allocate new slab page
regardless existence of partial pages. We should solve it.

Could you try this one?
This helps about the same as David's patch -- but I found the reason
why! ppc64 doesn't set CONFIG_HAVE_MEMORYLESS_NODES :) Expect a patch
shortly for that and one other case I found.

This patch on its own seems to help on our test system by saving around
1.5GB of slab.

Tested-by: Nishanth Aravamudan <redacted>
Acked-by: Nishanth Aravamudan <redacted>

with the caveat below.
So what's the status of this patch? Christoph, do you think this is fine
as it is?

Thanks,
Nish
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help