From: Nitin Gupta <ngupta@vflare.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Greg KH <greg@kroah.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Pekka Enberg <penberg@cs.helsinki.fi>,
Hugh Dickins <hugh.dickins@tiscali.co.uk>, Cyp <cyp561@gmail.com>,
Minchan Kim <minchan.kim@gmail.com>,
Al Viro <viro@ZenIV.linux.org.uk>,
Christoph Hellwig <hch@infradead.org>,
Jens Axboe <jens.axboe@oracle.com>,
Andi Kleen <andi@firstfloor.org>,
driverdev <devel@driverdev.osuosl.org>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 0/3] ramzswap: Eliminate stale data from compressed memory (v2)
Date: Sat, 08 May 2010 09:35:09 +0530 [thread overview]
Message-ID: <4BE4E2F5.4090001@vflare.org> (raw)
In-Reply-To: <20100507155504.10532b3e.akpm@linux-foundation.org>
On Sat, May 8, 2010 at 1:25 AM, Andrew Morton <akpm@linux-foundation.org> wrote:
> On Fri, 7 May 2010 12:55:04 +0530
> Nitin Gupta <ngupta@vflare.org> wrote:
<snip>
>
> <hasty review>
>
> Looking at the changelogs I'm seeing no information about the
> effectiveness of ramzswap - how much memory it saves. As that's the
> entire point of the driver, that would be a rather important thing to
> have included in the commit comments. We cannot make the decision to
> merge ramzswap without this info.
>
Documentation (drivers/staging/ramzswap/ramzswap.txt) points to the project
home page which has lots of performance numbers -- both positive and
negative cases.
Lot of your points are regarding lack of documentation and code comments.
Instead of replying to all such points individually, let me first send
patches with all the code commentary.
> The driver appears to be controlled by some nasty-looking ioctl against
> some fd. None of it is documented anywhere. It should be. You're
> proposing here a permanent extension to the kernel ABI which we will
> need to maintain for ever. That's a big deal and it is the very first
> thing reviewers will look at, before even considering the code.
>
ramzswap.txt points to 'rzscontrol' manpage where the effect of each of
these ioctls is documented:
http://compcache.googlecode.com/hg/sub-projects/rzscontrol/man/rzscontrol.html
I will add appropriate comments in code too.
> The compat implications of the ioctl args will need to be examined.
>
Ok, I will look into this.
> RZSIO_GET_STATS looks to be hopeless from a long-term maintainability
> POV. It's debug code and it would be better to move it into a debugfs
> file, where we can then add and remove things at will.
>
RZSIO_GET_STATS is how we send stats to userspace. Its not some debug code.
> The driver appears to create a /dev node called "ramzswap". If so, I
> should be able to run mke2fs on it and cheerily use it as a regular
> filesystem, should I not? If so then the entire driver is not
> swap-specific at all and there should be no mention of "swap" anywhere!
> ramzblock would be more appropriate.
>
You cannot use /dev/ramzswap{0,1,2...} devices for anything other than
swap devices since they can only handle page-aligned I/O requests.
This restriction highly simplifies the code as handling compression/
decompression for sub-page requests is hard and wasteful.
If someone needs a generic in-memory compressed block device, they
are welcome to extend ramzswap (or create a new driver).
>
> I've completely forgotten why we need this xvmalloc thing and I don't
> recall whether we decided it would be a good thing to have as a generic
> facility and of course it's all unexplained and undocumented. I won't
> be looking at it today, for this reason.
>
Justification for xvmalloc is present in initial commit message (644bf7)
>
> I'll give up there.
>
> The overall idea and utility appear to be good and desirable, IMO. But
> the code isn't productively reviewable in this state.
>
I will soon send patches for adding all these code comments. I hope that
will make code more reviewable.
In the meantime, would it be possible to commit these swap free notify
patches?
Thanks for your detailed comments.
Nitin
next prev parent reply other threads:[~2010-05-08 4:08 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-07 7:25 [PATCH 0/3] ramzswap: Eliminate stale data from compressed memory (v2) Nitin Gupta
2010-05-07 7:25 ` [PATCH 1/3] Add flag to identify block swap devices Nitin Gupta
2010-05-07 8:03 ` jassi brar
2010-05-07 8:16 ` Nitin Gupta
2010-05-07 8:56 ` jassi brar
2010-05-07 9:24 ` Pekka Enberg
2010-05-07 9:32 ` Nigel Cunningham
2010-05-07 7:25 ` [PATCH 2/3] Add swap slot free callback to block_device_operations Nitin Gupta
2010-05-07 9:22 ` Nigel Cunningham
2010-05-07 9:48 ` Nitin Gupta
2010-05-07 10:40 ` Nigel Cunningham
2010-05-07 7:25 ` [PATCH 3/3] ramzswap: Handler for swap slot free callback Nitin Gupta
2010-05-07 7:44 ` [PATCH 0/3] ramzswap: Eliminate stale data from compressed memory (v2) Pekka Enberg
2010-05-07 14:51 ` Linus Torvalds
2010-05-07 19:55 ` Andrew Morton
2010-05-08 4:05 ` Nitin Gupta [this message]
2010-05-08 6:29 ` Pekka Enberg
2010-05-08 6:54 ` Nitin Gupta
2010-05-08 7:05 ` Pekka Enberg
2010-05-08 6:57 ` Nitin Gupta
2010-05-08 7:26 ` Pekka Enberg
2010-05-08 7:32 ` Nitin Gupta
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=4BE4E2F5.4090001@vflare.org \
--to=ngupta@vflare.org \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=cyp561@gmail.com \
--cc=devel@driverdev.osuosl.org \
--cc=greg@kroah.com \
--cc=hch@infradead.org \
--cc=hugh.dickins@tiscali.co.uk \
--cc=jens.axboe@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=minchan.kim@gmail.com \
--cc=penberg@cs.helsinki.fi \
--cc=torvalds@linux-foundation.org \
--cc=viro@ZenIV.linux.org.uk \
/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