linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Seth Jennings <sjenning@linux.vnet.ibm.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Nitin Gupta <ngupta@vflare.org>, Minchan Kim <minchan@kernel.org>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Dan Magenheimer <dan.magenheimer@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>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	devel@driverdev.osuosl.org
Subject: Re: [PATCHv4 2/7] zsmalloc: promote to lib/
Date: Wed, 30 Jan 2013 10:28:41 -0600	[thread overview]
Message-ID: <51094A39.8050206@linux.vnet.ibm.com> (raw)
In-Reply-To: <20130129145134.813672cf.akpm@linux-foundation.org>

On 01/29/2013 04:51 PM, Andrew Morton wrote:
> On Tue, 29 Jan 2013 15:40:22 -0600
> Seth Jennings <sjenning@linux.vnet.ibm.com> wrote:
> 
>> This patch promotes the slab-based zsmalloc memory allocator
>> from the staging tree to lib/
> 
> Hate to rain on the parade, but...  we haven't reviewed zsmalloc
> yet.  At least, I haven't, and I haven't seen others do so.
> 
> So how's about we forget that zsmalloc was previously in staging and
> send the zsmalloc code out for review?  With a very good changelog
> explaining why it exists, what problems it solves, etc.
> 
> 
> I peeked.
> 
> Don't answer any of the below questions - they are examples of
> concepts which should be accessible to readers of the
> hopefully-forthcoming very-good-changelog.
> 
> - kmap_atomic() returns a void* - there's no need to cast its return value.
> 
> - Remove private MAX(), use the (much better implemented) max().
> 
> - It says "This was one of the major issues with its predecessor
>   (xvmalloc)", but drivers/staging/ramster/xvmalloc.c is still in the tree.
> 
> - USE_PGTABLE_MAPPING should be done via Kconfig.
> 
> - USE_PGTABLE_MAPPING is interesting and the changelog should go into
>   some details.  What are the pros and cons here?  Why do the two
>   options exist?  Can we eliminate one mode or the other?
> 
> - Various functions are obscure and would benefit from explanatory
>   comments.  Good comments explain "why it exists", more than "what it
>   does".
> 
>   These include get_size_class_index, get_fullness_group,
>   insert_zspage, remove_zspage, fix_fullness_group.
> 
>   Also a description of this handle encoding thing - what do these
>   "handles" refer to?  Why is stuff being encoded into them and how?
> 
> - I don't understand how the whole thing works :( If I allocate a
>   16 kbyte object with zs_malloc(), what do I get?  16k of
>   contiguous memory?  How can it do that if
>   USE_PGTABLE_MAPPING=false?  Obviously it can't so it's doing
>   something else.  But what?
> 
> - What does zs_create_pool() do and how do I use it?  It appears
>   to create a pool of all possible object sizes.  But why do we need
>   more than one such pool kernel-wide?
> 
> - I tried to work out the actual value of ZS_SIZE_CLASSES but it
>   made my head spin.
> 
> - We really really don't want to merge zsmalloc!  It would be far
>   better to use an existing allocator (perhaps after modifying it)
>   than to add yet another new one.  The really-good-changelog should
>   be compelling on this point, please.
> 
> See, I (and I assume others) are totally on first base here and we need
> to get through this before we can get onto zswap.  Sorry. 
> drivers/staging is where code goes to be ignored :(

I've noticed :-/

Thank you very much for your review!  I'll work with Nitin and Minchan
to beef up the documentation so that the answers to your questions are
more readily apparent in the code/comments.

I'll also convert the zsmalloc promotion patch back into a full-diff
patch rather than a rename patch so that people can review and comment
inline.

Question, are you saying that you'd like to see the zsmalloc promotion
in a separate patch?

My reason for including the zsmalloc promotion inside the zswap
patches was that it promoted and introduced a user all together.
However, I don't have an issue with breaking it out.

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>

  reply	other threads:[~2013-01-30 16:28 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-29 21:40 [PATCHv4 0/7] zswap: compressed swap caching Seth Jennings
2013-01-29 21:40 ` [PATCHv4 1/7] debugfs: add get/set for atomic types Seth Jennings
2013-01-29 21:40 ` [PATCHv4 2/7] zsmalloc: promote to lib/ Seth Jennings
2013-01-29 22:51   ` Andrew Morton
2013-01-30 16:28     ` Seth Jennings [this message]
2013-01-30 23:34       ` Andrew Morton
2013-01-31  5:35       ` Minchan Kim
2013-02-13 16:00     ` Seth Jennings
2013-01-29 21:40 ` [PATCHv4 3/7] zswap: add to mm/ Seth Jennings
2013-01-31  7:07   ` Minchan Kim
2013-01-31 19:06     ` Seth Jennings
2013-01-31 20:07       ` Robert Jennings
2013-02-01  2:38       ` Minchan Kim
2013-02-01 15:31         ` Seth Jennings
2013-02-01 17:46           ` Seth Jennings
2013-01-29 21:40 ` [PATCHv4 4/7] mm: break up swap_writepage() for frontswap backends Seth Jennings
2013-01-29 21:40 ` [PATCHv4 5/7] mm: allow for outstanding swap writeback accounting Seth Jennings
2013-01-29 21:40 ` [PATCHv4 6/7] zswap: add flushing support Seth Jennings
2013-01-29 23:03   ` Andrew Morton
2013-02-01  7:27   ` Minchan Kim
2013-02-13  6:24     ` Seth Jennings
2013-01-29 21:40 ` [PATCHv4 7/7] zswap: add documentation Seth Jennings
2013-01-29 23:07   ` Andrew Morton
2013-01-29 22:14 ` [PATCHv4 0/7] zswap: compressed swap caching Joe Perches
2013-01-29 22:49   ` Seth Jennings
2013-01-30  4:32     ` Minchan Kim
2013-01-30 16:01       ` Seth Jennings
2013-02-01  1:39 ` Simon Jeons
2013-02-01 15:13   ` Seth Jennings
2013-02-03  0:17     ` Simon Jeons
2013-02-04 14:56       ` Seth Jennings
2013-02-04  1:03     ` Simon Jeons
2013-02-04 15:07       ` Seth Jennings
     [not found] ` <5110287A.5050200@linux.vnet.ibm.com>
2013-02-04 21:45   ` 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=51094A39.8050206@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=jhopper@us.ibm.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).