Re: [RFC][PATCH 03/10] zsmalloc: introduce zs_can_compact() function

From: Sergey Senozhatsky
Date: Wed Jun 03 2015 - 23:42:23 EST


On (06/04/15 12:30), Minchan Kim wrote:
> > -- free objects in class: 5 (free-objs class capacity)
> > -- page1: inuse 2
> > -- page2: inuse 2
> > -- page3: inuse 3
> > -- page4: inuse 2
>
> What scenario do you have a cocern?
> Could you describe this example more clear?

you mean "how is this even possible"?

well, for example,

make -jX
make clean

can introduce a significant fragmentation. no new objects, just random
objs removal. assuming that we keep some of the objects, allocated during
compilation.

e.g.

...

page1
allocate baz.so
allocate foo.o
page2
allocate bar.o
allocate foo.so
...
pageN



now `make clean`

page1:
allocated baz.so
empty

page2
empty
allocated foo.so

...

pageN

in the worst case, every page can turn out to be ALMOST_EMPTY.

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