All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ric Mason <ric.masonn@gmail.com>
To: Seth Jennings <sjenning@linux.vnet.ibm.com>
Cc: Dan Magenheimer <dan.magenheimer@oracle.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Nitin Gupta <ngupta@vflare.org>, Minchan Kim <minchan@kernel.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>,
	Joonsoo Kim <iamjoonsoo.kim@lge.com>,
	Cody P Schafer <cody@linux.vnet.ibm.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	devel@driverdev.osuosl.org
Subject: Re: [PATCHv6 0/8] zswap: compressed swap caching
Date: Wed, 01 May 2013 16:06:52 +0800	[thread overview]
Message-ID: <5180CD1C.7050206@gmail.com> (raw)
In-Reply-To: <512666B2.1020609@linux.vnet.ibm.com>

Hi Seth,
On 02/22/2013 02:25 AM, Seth Jennings wrote:
> On 02/21/2013 09:50 AM, Dan Magenheimer wrote:
>>> From: Seth Jennings [mailto:sjenning@linux.vnet.ibm.com]
>>> Subject: [PATCHv6 0/8] zswap: compressed swap caching
>>>
>>> Changelog:
>>>
>>> v6:
>>> * fix improper freeing of rbtree (Cody)
>> Cody's bug fix reminded me of a rather fundamental question:
>>
>> Why does zswap use a rbtree instead of a radix tree?
>>
>> Intuitively, I'd expect that pgoff_t values would
>> have a relatively high level of locality AND at any one time
>> the set of stored pgoff_t values would be relatively non-sparse.
>> This would argue that a radix tree would result in fewer nodes
>> touched on average for lookup/insert/remove.
> I considered using a radix tree, but I don't think there is a compelling
> reason to choose a radix tree over a red-black tree in this case
> (explanation below).
>
>  From a runtime standpoint, a radix tree might be faster.  The swap
> offsets will be largely in linearly bunched groups over the indexed
> range.  However, there are also memory constraints to consider in this
> particular situation.
>
> Using a radix tree could result in intermediate radix_tree_node
> allocations in the store (insert) path in addition to the zswap_entry
> allocation.  Since we are under memory pressure, using the red-black

Then in which case radix tree is prefer and in which case redblack tree 
is better?

> tree, whose metadata is included in the struct zswap_entry, reduces the
> number of opportunities to fail.
>
> On my system, the radix_tree_node structure is 568 bytes.  The
> radix_tree_node cache requires 4 pages per slab, an order-2 page
> allocation.  Growing that cache will be difficult under the pressure.
>
> In my mind, cost of even a single node allocation failure resulting in
> an additional page swapped to disk will more that wipe out any possible
> performance advantage using a radix tree might have.
>
> Thanks,
> Seth
>
> --
> 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>

--
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: Ric Mason <ric.masonn@gmail.com>
To: Seth Jennings <sjenning@linux.vnet.ibm.com>
Cc: Dan Magenheimer <dan.magenheimer@oracle.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Nitin Gupta <ngupta@vflare.org>, Minchan Kim <minchan@kernel.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>,
	Joonsoo Kim <iamjoonsoo.kim@lge.com>,
	Cody P Schafer <cody@linux.vnet.ibm.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	devel@driverdev.osuosl.org
Subject: Re: [PATCHv6 0/8] zswap: compressed swap caching
Date: Wed, 01 May 2013 16:06:52 +0800	[thread overview]
Message-ID: <5180CD1C.7050206@gmail.com> (raw)
In-Reply-To: <512666B2.1020609@linux.vnet.ibm.com>

Hi Seth,
On 02/22/2013 02:25 AM, Seth Jennings wrote:
> On 02/21/2013 09:50 AM, Dan Magenheimer wrote:
>>> From: Seth Jennings [mailto:sjenning@linux.vnet.ibm.com]
>>> Subject: [PATCHv6 0/8] zswap: compressed swap caching
>>>
>>> Changelog:
>>>
>>> v6:
>>> * fix improper freeing of rbtree (Cody)
>> Cody's bug fix reminded me of a rather fundamental question:
>>
>> Why does zswap use a rbtree instead of a radix tree?
>>
>> Intuitively, I'd expect that pgoff_t values would
>> have a relatively high level of locality AND at any one time
>> the set of stored pgoff_t values would be relatively non-sparse.
>> This would argue that a radix tree would result in fewer nodes
>> touched on average for lookup/insert/remove.
> I considered using a radix tree, but I don't think there is a compelling
> reason to choose a radix tree over a red-black tree in this case
> (explanation below).
>
>  From a runtime standpoint, a radix tree might be faster.  The swap
> offsets will be largely in linearly bunched groups over the indexed
> range.  However, there are also memory constraints to consider in this
> particular situation.
>
> Using a radix tree could result in intermediate radix_tree_node
> allocations in the store (insert) path in addition to the zswap_entry
> allocation.  Since we are under memory pressure, using the red-black

Then in which case radix tree is prefer and in which case redblack tree 
is better?

> tree, whose metadata is included in the struct zswap_entry, reduces the
> number of opportunities to fail.
>
> On my system, the radix_tree_node structure is 568 bytes.  The
> radix_tree_node cache requires 4 pages per slab, an order-2 page
> allocation.  Growing that cache will be difficult under the pressure.
>
> In my mind, cost of even a single node allocation failure resulting in
> an additional page swapped to disk will more that wipe out any possible
> performance advantage using a radix tree might have.
>
> Thanks,
> Seth
>
> --
> 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>


  parent reply	other threads:[~2013-05-01  8:07 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-20 22:04 [PATCHv6 0/8] zswap: compressed swap caching Seth Jennings
2013-02-20 22:04 ` Seth Jennings
2013-02-20 22:04 ` [PATCHv6 1/8] zsmalloc: add to mm/ Seth Jennings
2013-02-20 22:04   ` Seth Jennings
2013-02-21 20:36   ` Cody P Schafer
2013-02-21 20:36     ` Cody P Schafer
2013-02-21 22:21     ` Seth Jennings
2013-02-21 22:21       ` Seth Jennings
2013-02-21 22:44       ` Andrew Morton
2013-02-21 22:44         ` Andrew Morton
2013-02-22  9:40   ` Joonsoo Kim
2013-02-22  9:40     ` Joonsoo Kim
2013-02-22 17:58     ` Seth Jennings
2013-02-22 17:58       ` Seth Jennings
2013-02-20 22:04 ` [PATCHv6 2/8] zsmalloc: add documentation Seth Jennings
2013-02-20 22:04   ` Seth Jennings
2013-02-20 22:04 ` [PATCHv6 3/8] debugfs: add get/set for atomic types Seth Jennings
2013-02-20 22:04   ` Seth Jennings
2013-02-20 22:04 ` [PATCHv6 4/8] zswap: add to mm/ Seth Jennings
2013-02-20 22:04   ` Seth Jennings
2013-02-25  4:35   ` Joonsoo Kim
2013-02-25  4:35     ` Joonsoo Kim
2013-02-25 17:21     ` Seth Jennings
2013-02-25 17:21       ` Seth Jennings
2013-02-20 22:04 ` [PATCHv6 5/8] mm: break up swap_writepage() for frontswap backends Seth Jennings
2013-02-20 22:04   ` Seth Jennings
2013-02-20 22:04 ` [PATCHv6 6/8] mm: allow for outstanding swap writeback accounting Seth Jennings
2013-02-20 22:04   ` Seth Jennings
2013-02-20 22:04 ` [PATCHv6 7/8] zswap: add swap page writeback support Seth Jennings
2013-02-20 22:04   ` Seth Jennings
2013-02-20 22:04 ` [PATCHv6 8/8] zswap: add documentation Seth Jennings
2013-02-20 22:04   ` Seth Jennings
2013-02-21 15:50 ` [PATCHv6 0/8] zswap: compressed swap caching Dan Magenheimer
2013-02-21 15:50   ` Dan Magenheimer
2013-02-21 18:25   ` Seth Jennings
2013-02-21 18:25     ` Seth Jennings
2013-02-21 22:03     ` Dan Magenheimer
2013-02-21 22:03       ` Dan Magenheimer
2013-05-01  8:06     ` Ric Mason [this message]
2013-05-01  8:06       ` Ric Mason

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=5180CD1C.7050206@gmail.com \
    --to=ric.masonn@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=benh@kernel.crashing.org \
    --cc=cody@linux.vnet.ibm.com \
    --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 \
    --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.