linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Seth Jennings <sjenning@linux.vnet.ibm.com>
To: Dan Magenheimer <dan.magenheimer@oracle.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>,
	Minchan Kim <minchan@kernel.org>, Nitin Gupta <ngupta@vflare.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Konrad Wilk <konrad.wilk@oracle.com>,
	Robert Jennings <rcj@linux.vnet.ibm.com>,
	Jenifer Hopper <jhopper@us.ibm.com>, Mel Gorman <mgorman@suse.de>,
	Johannes Weiner <jweiner@redhat.com>,
	Rik van Riel <riel@redhat.com>,
	Larry Woodman <lwoodman@redhat.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Dave Hansen <dave@linux.vnet.ibm.com>,
	Joe Perches <joe@perches.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	devel@driverdev.osuosl.org
Subject: Re: [PATCHv5 1/8] zsmalloc: add to mm/
Date: Mon, 25 Feb 2013 13:14:45 -0600	[thread overview]
Message-ID: <512BB825.7070304@linux.vnet.ibm.com> (raw)
In-Reply-To: <69936094-e2fc-44bd-b179-f567e8681bec@default>

On 02/25/2013 11:05 AM, Dan Magenheimer wrote:
>> From: Seth Jennings [mailto:sjenning@linux.vnet.ibm.com]
>> Sent: Friday, February 22, 2013 1:04 PM
>> To: Joonsoo Kim
>> Subject: Re: [PATCHv5 1/8] zsmalloc: add to mm/
>>
>> On 02/22/2013 03:24 AM, Joonsoo Kim wrote:
>>>
>>> It's my quick thought. So there is no concrete idea.
>>> As Seth said, with a FULL list, zsmalloc always access all zspage.
>>> So, if we want to know what pages are for zsmalloc, we can know it.
>>> The EMPTY list can be used for pool of zsmalloc itself. With it, we don't
>>> need to free zspage directly, we can keep zspages, so can reduce
>>> alloc/free overhead. But, I'm not sure whether it is useful.
>>
>> I think it's a good idea.  zswap actually does this "keeping some free
>> pages around for later allocations" outside zsmalloc in a mempool that
>> zswap manages.  Minchan once mentioned bringing that inside zsmalloc
>> and this would be a way we could do it.
> 
> I think it's a very bad idea.  If I understand, the suggestion will
> hide away some quantity (possibly a very large quantity) of pages
> for the sole purpose of zswap, in case zswap gets around to using them
> sometime in the future.  In the meantime, those pages are not available
> for use by any other kernel subsystems or by userland processes.
> An idle page is a wasted page.
> 
> While you might defend the mempool use for a handful of pages,
> frontswap writes/reads thousands of pages in a bursty way,
> and then can go idle for a very long time.  This may not be
> readily apparent with artificially-created memory pressure
> from kernbench with -jN (high N).  Leaving thousands
> of pages in zswap's personal free list may cause memory pressure
> that would otherwise never have existed.

I experimentally determined that this pool increased allocation
success rate and, therefore, reduced the number of pages going to the
swap device.

The zswap mempool has a target size of 256 pages.  This places an
upper bound on the number of pages held in reserve for zswap.  So we
aren't talking about "thousands of pages".

And yes, the pool does remove up to 1MB of memory (on a 4k PAGE_SIZE)
from general use, which causes the reclaim to start very slightly earlier.

> 
>> Just want to be clear that I'd be in favor of looking at this after
>> the merge.
> 
> I disagree... I think this is exactly the kind of fundamental
> MM interaction that should be well understood and resolved
> BEFORE anything gets merged.

While there is discussion to be had here, I don't agree that it's
"fundamental" and should not block merging.

The mempool does serve a purpose and adds measurable benefit. However,
if it is determined at some future time that having a reserved pool of
any size in zswap is bad practice, it can be removed trivially.

Thanks,
Seth


  reply	other threads:[~2013-02-25 19:24 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1360780731-11708-1-git-send-email-sjenning@linux.vnet.ibm.com>
2013-02-16  3:20 ` [PATCHv5 0/8] zswap: compressed swap caching Ric Mason
2013-02-18 19:37   ` Seth Jennings
     [not found] ` <1360780731-11708-5-git-send-email-sjenning@linux.vnet.ibm.com>
2013-02-16  4:04   ` [PATCHv5 4/8] zswap: add to mm/ Ric Mason
2013-02-18 19:24     ` Seth Jennings
2013-02-18 19:49       ` Cody P Schafer
2013-02-18 20:07         ` Seth Jennings
2013-02-18 19:55       ` Dan Magenheimer
2013-02-18 20:39         ` Seth Jennings
2013-02-18 21:59           ` Dan Magenheimer
2013-02-18 22:52             ` Seth Jennings
2013-02-18 23:17               ` Dan Magenheimer
2013-02-20 20:37         ` Seth Jennings
     [not found] ` <1360780731-11708-3-git-send-email-sjenning@linux.vnet.ibm.com>
2013-02-16  6:21   ` [PATCHv5 2/8] zsmalloc: add documentation Ric Mason
2013-02-18 19:16     ` Seth Jennings
2013-02-21  8:49       ` Ric Mason
2013-02-21 15:50         ` Seth Jennings
2013-02-21 16:20           ` Dan Magenheimer
2013-02-22  2:56           ` Ric Mason
2013-02-22 21:02             ` Seth Jennings
2013-02-24  0:37               ` Ric Mason
2013-02-25 15:18                 ` Seth Jennings
2013-03-01  6:47                   ` Ric Mason
2013-02-22  2:59           ` Ric Mason
     [not found] ` <1360780731-11708-2-git-send-email-sjenning@linux.vnet.ibm.com>
2013-02-16  3:26   ` [PATCHv5 1/8] zsmalloc: add to mm/ Ric Mason
2013-02-18 19:04     ` Seth Jennings
2013-02-19  9:18   ` Joonsoo Kim
2013-02-19 17:54     ` Seth Jennings
2013-02-19 23:37       ` Minchan Kim
2013-02-22  9:24         ` Joonsoo Kim
2013-02-22 20:04           ` Seth Jennings
2013-02-25 17:05             ` Dan Magenheimer
2013-02-25 19:14               ` Seth Jennings [this message]
2013-02-26  0:20                 ` Dan Magenheimer
2013-02-20  2:42       ` Nitin Gupta
     [not found] ` <1360780731-11708-8-git-send-email-sjenning@linux.vnet.ibm.com>
2013-02-16  6:11   ` [PATCHv5 7/8] zswap: add swap page writeback support Ric Mason
2013-02-18 19:32     ` Seth Jennings
2013-02-25  2:54   ` Minchan Kim
2013-02-25 17:37     ` Seth Jennings

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=512BB825.7070304@linux.vnet.ibm.com \
    --to=sjenning@linux.vnet.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=benh@kernel.crashing.org \
    --cc=dan.magenheimer@oracle.com \
    --cc=dave@linux.vnet.ibm.com \
    --cc=devel@driverdev.osuosl.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=iamjoonsoo.kim@lge.com \
    --cc=jhopper@us.ibm.com \
    --cc=joe@perches.com \
    --cc=jweiner@redhat.com \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lwoodman@redhat.com \
    --cc=mgorman@suse.de \
    --cc=minchan@kernel.org \
    --cc=ngupta@vflare.org \
    --cc=rcj@linux.vnet.ibm.com \
    --cc=riel@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).