linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Minchan Kim <minchan.kim@gmail.com>
To: Dan Magenheimer <dan.magenheimer@oracle.com>
Cc: chris.mason@oracle.com, viro@zeniv.linux.org.uk,
	akpm@linux-foundation.org, adilger@sun.com, tytso@mit.edu,
	mfasheh@suse.com, joel.becker@oracle.com, matthew@wil.cx,
	linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org,
	ocfs2-devel@oss.oracle.com, linux-mm@kvack.org,
	ngupta@vflare.org, jeremy@goop.org, JBeulich@novell.com,
	kurt.hackel@oracle.com, npiggin@suse.de,
	dave.mccracken@oracle.com, riel@redhat.com, avi@redhat.com,
	konrad.wilk@oracle.com
Subject: Re: [PATCH V2 0/7] Cleancache (was Transcendent Memory): overview
Date: Thu, 3 Jun 2010 01:38:52 +0900	[thread overview]
Message-ID: <20100602163827.GA5450@barrios-desktop> (raw)
In-Reply-To: <1d88619a-bb1e-493f-ad96-bf204b60938d@default>

Hi, Dan.=20

On Wed, Jun 02, 2010 at 08:27:48AM -0700, Dan Magenheimer wrote:
> Hi Minchan --
>=20
> > I think cleancache approach is cool. :)
> > I have some suggestions and questions.
>=20
> Thanks for your interest!
>=20
> > > If a get_page is successful on a non-shared pool, the page is flush=
ed
> > (thus
> > > making cleancache an "exclusive" cache). =A0On a shared pool, the p=
age
> >=20
> > Do you have any reason about force "exclusive" on a non-shared pool?
> > To free memory on pesudo-RAM?
> > I want to make it "inclusive" by some reason but unfortunately I can'=
t
> > say why I want it now.
>=20
> The main reason is to free up memory in pseudo-RAM and to
> avoid unnecessary cleancache_flush calls.  If you want
> inclusive, the page can be put immediately following
> the get.  If put-after-get for inclusive becomes common,
> the interface could easily be extended to add a "get_no_flush"
> call.

Sounds good to me.=20

> =20
> > While you mentioned it's "exclusive", cleancache_get_page doesn't
> > flush the page at below code.
> > Is it a role of user who implement cleancache_ops->get_page?
>=20
> Yes, the flush is done by the cleancache implementation.
>=20
> > If backed device is ram(ie), Could we _move_ the pages from page cach=
e
> > to cleancache?
> > I mean I don't want to copy page when get/put operation. we can just
> > move page in case of backed device "ram". Is it possible?
>=20
> By "move", do you mean changing the virtual mappings?  Yes,
> this could be done as long as the source and destination are
> both directly addressable (that is, true physical RAM), but
> requires TLB manipulation and has some complicated corner
> cases.  The copy semantics simplifies the implementation on
> both the "frontend" and the "backend" and also allows the
> backend to do fancy things on-the-fly like page compression
> and page deduplication.

Agree. But I don't mean it.=20
If I use brd as backend, i want to do it follwing as.=20

put_page :

remove_from_page_cache(page);
brd_insert_page(page);

get_page :

brd_lookup_page(page);
add_to_page_cache(page);

Of course, I know it's impossible without new metadata and modification o=
f=20
page cache handling and it makes front and backend's good layered design.=
=20

What I want is to remove copy overhead when backend is ram and it's also
part of main memory(ie, we have page descriptor).=20

Do you have an idea?

>=20
> > You send the patches which is core of cleancache but I don't see any
> > use case.
> > Could you send use case patches with this series?
> > It could help understand cleancache's benefit.
>=20
> Do you mean the Xen Transcendent Memory ("tmem") implementation?
> If so, this is four files in the Xen source tree (common/tmem.c,
> common/tmem_xen.c, include/xen/tmem.h, include/xen/tmem_xen.h).
> There is also an html document in the Xen source tree, which can
> be viewed here:
> http://oss.oracle.com/projects/tmem/dist/documentation/internals/xen4-i=
nternals-v01.html=20
>=20
> Or did you mean a cleancache_ops "backend"?  For tmem, there
> is one file linux/drivers/xen/tmem.c and it interfaces between
> the cleancache_ops calls and Xen hypercalls.  It should be in
> a Xenlinux pv_ops tree soon, or I can email it sooner.

I mean "backend". :)=20

>=20
> I am also eagerly awaiting Nitin Gupta's cleancache backend
> and implementation to do in-kernel page cache compression.

Do Nitin say he will make backend of cleancache for
page cache compression?=20

It would be good feature.=20
I have a interest, too. :)

Thanks, Dan.=20

>=20
> Thanks,
> Dan

--=20
Kind regards,
Minchan Kim

--
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=3Dmailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2010-06-02 16:38 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20100528173510.GA12166@ca-server1.us.oracle.com>
2010-06-02  6:03 ` [PATCH V2 0/7] Cleancache (was Transcendent Memory): overview Minchan Kim
2010-06-02 15:27   ` Dan Magenheimer
2010-06-02 16:38     ` Minchan Kim [this message]
2010-06-02 23:02       ` Dan Magenheimer
2010-06-03  2:46         ` Nitin Gupta
2010-06-03  4:53           ` Andreas Dilger
2010-06-03  6:25             ` Nitin Gupta
2010-06-03 15:43               ` Dan Magenheimer
2010-06-04  9:36                 ` Nitin Gupta
2010-06-04 13:45                   ` Minchan Kim
2010-06-02 13:00 ` Jamie Lokier
2010-06-02 15:35   ` Dan Magenheimer
2010-06-02 13:24 ` Christoph Hellwig
2010-06-02 16:07   ` Dan Magenheimer
2010-05-28 17:35 Dan Magenheimer
     [not found] <20100528173510.GA12166@ca-server1.us.oracle.comAANLkTilV-4_QaNq5O0WSplDx1Oq7JvkgVrEiR1rgf1up@mail.gmail.com>

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=20100602163827.GA5450@barrios-desktop \
    --to=minchan.kim@gmail.com \
    --cc=JBeulich@novell.com \
    --cc=adilger@sun.com \
    --cc=akpm@linux-foundation.org \
    --cc=avi@redhat.com \
    --cc=chris.mason@oracle.com \
    --cc=dan.magenheimer@oracle.com \
    --cc=dave.mccracken@oracle.com \
    --cc=jeremy@goop.org \
    --cc=joel.becker@oracle.com \
    --cc=konrad.wilk@oracle.com \
    --cc=kurt.hackel@oracle.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=matthew@wil.cx \
    --cc=mfasheh@suse.com \
    --cc=ngupta@vflare.org \
    --cc=npiggin@suse.de \
    --cc=ocfs2-devel@oss.oracle.com \
    --cc=riel@redhat.com \
    --cc=tytso@mit.edu \
    --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;
as well as URLs for NNTP newsgroup(s).