Re: [PATCH] zswap: update docs for runtime-changeable attributes

From: Sergey Senozhatsky
Date: Tue Aug 25 2015 - 00:21:50 EST

On (08/19/15 11:56), Dan Streetman wrote:
> > Ugh that's madness. Still, a documented madness is better than an undocumented one.
> heh, i'm not sure why it's madness, the alternative of
> uncompressing/recompressing all pages into the new zpool and/or with
> the new compressor seems much worse ;-)

Well, I sort of still think that 'change compressor and reboot' is OK. 5cents.

> >
> >>>
> >>>> The zsmalloc type zpool has a more
> >>>> +complex compressed page storage method, and it can achieve greater storage
> >>>> +densities. However, zsmalloc does not implement compressed page eviction, so
> >>>> +once zswap fills it cannot evict the oldest page, it can only reject new pages.
> >>>
> >>> I still wonder why anyone would use zsmalloc with zswap given this limitation.
> >>> It seems only fine for zram which has no real swap as fallback. And even zbud
> >>> doesn't have any shrinker interface that would react to memory pressure, so
> >>> there's a possibility of premature OOM... sigh.
> >>
> >> for situations where zswap isn't expected to ever fill up, zsmalloc
> >> will outperform zbud, since it has higher density.
> >
> > But then you could just use zram? :)
> well not *expected* to fill up doesn't mean it *won't* fill up :)
> >
> >> i'd argue that neither zbud nor zsmalloc are responsible for reacting
> >> to memory pressure, they just store the pages. It's zswap that has to
> >> limit its size, which it does with max_percent_pool.
> >
> > Yeah but it's zbud that tracks the aging via LRU and reacts to reclaim requests
> > from zswap when zswap hits the limit. Zswap could easily add a shrinker that
> > would relay this requests in response to memory pressure as well. However,
> > zsmalloc doesn't implement the reclaim, or LRU tracking.
> I wrote a patch for zsmalloc reclaim a while ago:
> however it didn't make it in, due to the lack of zsmalloc LRU, or any
> proven benefit to zsmalloc reclaim.
> It's not really possible to add LRU to zsmalloc, by the nature of its
> design, using the struct page fields directly; there's no extra field
> to use as a lru entry.

Just for information, zsmalloc now registers shrinker callbacks

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at