Thread (29 messages) 29 messages, 6 authors, 2016-04-01

Re: [PATCH 06/11] mm/slab: don't keep free slabs if free_objects exceeds free_limit

From: Joonsoo Kim <hidden>
Date: 2016-03-30 08:23:41
Also in: lkml

On Mon, Mar 28, 2016 at 08:03:16PM -0500, Christoph Lameter wrote:
On Mon, 28 Mar 2016, js1304@gmail.com wrote:
quoted
From: Joonsoo Kim <redacted>

Currently, determination to free a slab is done whenever free object is
put into the slab. This has a problem that free slabs are not freed
even if we have free slabs and have more free_objects than free_limit
There needs to be a better explanation here since I do not get why there
is an issue with checking after free if a slab is actually free.
Okay. Consider following 3 objects free situation.

free_limt = 10
nr_free = 9

free(free slab) free(free slab) free(not free slab)

If we check it one by one, when nr_free > free_limit (at last free),
we cannot free the slab because current slab isn't a free slab.

But, if we check it lastly, we can free 1 free slab.

I will add more explanation on the next version.
quoted
when processed slab isn't a free slab. This would cause to keep
too much memory in the slab subsystem. This patch try to fix it
by checking number of free object after all free work is done. If there
is free slab at that time, we can free it so we keep free slab as minimal
as possible.
Ok if we check after free work is done then the number of free slabs may
be higher than the limit set and then we free the additional slabs to get
down to the limit that was set?
Yes.

Thanks.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help