From: Bob Liu <bob.liu@oracle.com>
To: Olav Haugan <ohaugan@codeaurora.org>
Cc: minchan@kernel.org, sjenning@linux.vnet.ibm.com,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: zram/zsmalloc issues in very low memory conditions
Date: Thu, 24 Oct 2013 08:55:16 +0800 [thread overview]
Message-ID: <52686FF4.5000303@oracle.com> (raw)
In-Reply-To: <526844E6.1080307@codeaurora.org>
On 10/24/2013 05:51 AM, Olav Haugan wrote:
> I am trying to use zram in very low memory conditions and I am having
> some issues. zram is in the reclaim path. So if the system is very low
> on memory the system is trying to reclaim pages by swapping out (in this
> case to zram). However, since we are very low on memory zram fails to
> get a page from zsmalloc and thus zram fails to store the page. We get
> into a cycle where the system is low on memory so it tries to swap out
> to get more memory but swap out fails because there is not enough memory
> in the system! The major problem I am seeing is that there does not seem
> to be a way for zram to tell the upper layers to stop swapping out
> because the swap device is essentially "full" (since there is no more
> memory available for zram pages). Has anyone thought about this issue
> already and have ideas how to solve this or am I missing something and I
> should not be seeing this issue?
>
The same question as Luigi "What do you want the system to do at this
point?"
If swap fails then OOM killer will be triggered, I don't think this will
be a issue.
By the way, could you take a try with zswap? Which can write pages to
real swap device if compressed pool is full.
> I am also seeing a couple other issues that I was wondering whether
> folks have already thought about:
>
> 1) The size of a swap device is statically computed when the swap device
> is turned on (nr_swap_pages). The size of zram swap device is dynamic
> since we are compressing the pages and thus the swap subsystem thinks
> that the zram swap device is full when it is not really full. Any
> plans/thoughts about the possibility of being able to update the size
> and/or the # of available pages in a swap device on the fly?
>
> 2) zsmalloc fails when the page allocated is at physical address 0 (pfn
AFAIK, this will never happen.
> = 0) since the handle returned from zsmalloc is encoded as (<PFN>,
> <obj_idx>) and thus the resulting handle will be 0 (since obj_idx starts
> at 0). zs_malloc returns the handle but does not distinguish between a
> valid handle of 0 and a failure to allocate. A possible solution to this
> would be to start the obj_idx at 1. Is this feasible?
>
> Thanks,
>
> Olav Haugan
>
--
Regards,
-Bob
--
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>
WARNING: multiple messages have this Message-ID (diff)
From: Bob Liu <bob.liu@oracle.com>
To: Olav Haugan <ohaugan@codeaurora.org>
Cc: minchan@kernel.org, sjenning@linux.vnet.ibm.com,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: zram/zsmalloc issues in very low memory conditions
Date: Thu, 24 Oct 2013 08:55:16 +0800 [thread overview]
Message-ID: <52686FF4.5000303@oracle.com> (raw)
In-Reply-To: <526844E6.1080307@codeaurora.org>
On 10/24/2013 05:51 AM, Olav Haugan wrote:
> I am trying to use zram in very low memory conditions and I am having
> some issues. zram is in the reclaim path. So if the system is very low
> on memory the system is trying to reclaim pages by swapping out (in this
> case to zram). However, since we are very low on memory zram fails to
> get a page from zsmalloc and thus zram fails to store the page. We get
> into a cycle where the system is low on memory so it tries to swap out
> to get more memory but swap out fails because there is not enough memory
> in the system! The major problem I am seeing is that there does not seem
> to be a way for zram to tell the upper layers to stop swapping out
> because the swap device is essentially "full" (since there is no more
> memory available for zram pages). Has anyone thought about this issue
> already and have ideas how to solve this or am I missing something and I
> should not be seeing this issue?
>
The same question as Luigi "What do you want the system to do at this
point?"
If swap fails then OOM killer will be triggered, I don't think this will
be a issue.
By the way, could you take a try with zswap? Which can write pages to
real swap device if compressed pool is full.
> I am also seeing a couple other issues that I was wondering whether
> folks have already thought about:
>
> 1) The size of a swap device is statically computed when the swap device
> is turned on (nr_swap_pages). The size of zram swap device is dynamic
> since we are compressing the pages and thus the swap subsystem thinks
> that the zram swap device is full when it is not really full. Any
> plans/thoughts about the possibility of being able to update the size
> and/or the # of available pages in a swap device on the fly?
>
> 2) zsmalloc fails when the page allocated is at physical address 0 (pfn
AFAIK, this will never happen.
> = 0) since the handle returned from zsmalloc is encoded as (<PFN>,
> <obj_idx>) and thus the resulting handle will be 0 (since obj_idx starts
> at 0). zs_malloc returns the handle but does not distinguish between a
> valid handle of 0 and a failure to allocate. A possible solution to this
> would be to start the obj_idx at 1. Is this feasible?
>
> Thanks,
>
> Olav Haugan
>
--
Regards,
-Bob
next prev parent reply other threads:[~2013-10-24 0:55 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-23 21:51 zram/zsmalloc issues in very low memory conditions Olav Haugan
2013-10-23 21:51 ` Olav Haugan
2013-10-23 22:14 ` Luigi Semenzato
2013-10-23 22:17 ` Luigi Semenzato
2013-10-23 22:17 ` Luigi Semenzato
2013-10-24 0:55 ` Bob Liu [this message]
2013-10-24 0:55 ` Bob Liu
2013-10-25 0:35 ` Olav Haugan
2013-10-25 0:35 ` Olav Haugan
2013-10-25 1:12 ` Luigi Semenzato
2013-10-25 1:12 ` Luigi Semenzato
2013-10-31 23:34 ` Olav Haugan
2013-10-31 23:34 ` Olav Haugan
2013-11-01 0:25 ` Luigi Semenzato
2013-11-01 0:27 ` Luigi Semenzato
2013-11-01 0:27 ` Luigi Semenzato
2013-11-02 7:40 ` Stephen Barber
2013-11-02 7:40 ` Stephen Barber
2013-11-01 0:35 ` Bob Liu
2013-11-01 0:35 ` Bob Liu
2013-10-25 2:59 ` Bob Liu
2013-10-25 2:59 ` Bob Liu
2013-10-24 10:42 ` Weijie Yang
2013-10-24 10:42 ` Weijie Yang
2013-10-25 9:19 ` Minchan Kim
2013-10-25 9:19 ` Minchan Kim
2013-11-02 0:59 ` Olav Haugan
2013-11-02 0:59 ` Olav Haugan
2013-11-02 2:50 ` Bob Liu
2013-11-02 2:50 ` Bob Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52686FF4.5000303@oracle.com \
--to=bob.liu@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=minchan@kernel.org \
--cc=ohaugan@codeaurora.org \
--cc=sjenning@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.