All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Magenheimer <dan.magenheimer@oracle.com>
To: Dave Hansen <dave@linux.vnet.ibm.com>
Cc: John Stoffel <john@stoffel.org>,
	Johannes Weiner <jweiner@redhat.com>,
	Pekka Enberg <penberg@kernel.org>,
	Cyclonus J <cyclonusj@gmail.com>,
	Sasha Levin <levinsasha928@gmail.com>,
	Christoph Hellwig <hch@infradead.org>,
	David Rientjes <rientjes@google.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Konrad Wilk <konrad.wilk@oracle.com>,
	Jeremy Fitzhardinge <jeremy@goop.org>,
	Seth Jennings <sjenning@linux.vnet.ibm.com>,
	ngupta@vflare.org, Chris Mason <chris.mason@oracle.com>,
	JBeulich@novell.com, Jonathan Corbet <corbet@lwn.net>
Subject: RE: [GIT PULL] mm: frontswap (for 3.2 window)
Date: Sun, 30 Oct 2011 14:50:01 -0700 (PDT)	[thread overview]
Message-ID: <f64fa61a-6a93-430a-bc51-53acb5e2e1ea@default> (raw)
In-Reply-To: <1320005162.15403.14.camel@nimitz>

> From: Dave Hansen [mailto:dave@linux.vnet.ibm.com]
> Subject: RE: [GIT PULL] mm: frontswap (for 3.2 window)

Thanks Dave (I think ;-) for chiming in.

> On Sun, 2011-10-30 at 12:18 -0700, Dan Magenheimer wrote:
> > > since they're the ones who will have to understand this stuff and know
> > > how to maintain it.  And keeping this maintainable is a key goal.
> >
> > Absolutely agree.  Count the number of frontswap lines that affect
> > the current VM core code and note also how they are very clearly
> > identified.  It really is a very VERY small impact to the core VM
> > code (e.g. in the files swapfile.c and page_io.c).
> 
> Granted, the impact on the core VM in lines of code is small.  But, I
> think the behavioral impact is potentially huge since tmem's hooks add
> non-trivial amounts of framework underneath the VM in core paths.  In
> zcache's case, this means a bunch of allocations and an entirely new
> allocator memory allocator being used in the swap paths.

True BUT (and this is a big BUT) it ONLY affects the core VM
path if both CONFIG_FRONTSWAP=y AND if a "tmem backend" such as
zcache registers it.  So not only is the code maintenance
impact very VERY small (which you granted), but there is
no impact on users or distros or products that don't turn it
on.  I also should repeat that the core VM changes introduced
by frontswap have remained essentially identical since first
proposed circa 2.6.18... the impacted swap code is NOT frequently-
changing code.  My point in my "Absolutely agree" above, is
that the maintenance burden to core VM developers is low.

> We're certainly still shaking bugs out of the interactions there like
> with zcache_direct_reclaim_lock.  Granted, that's not a
> tmem/frontswap/cleancache bug, but it does speak to the difficulty and
> subtlety of writing one of those frameworks underneath the tmem API.

IMHO, that's coming perilously close to saying "we don't accept
code that has bugs in it".  How many significant pieces of functionality
have been added to the kernel EVER where there were NO bugs found in
the next few months?  How much MERGED functionality (such as new
filesystems) has gone into the kernel years before it was broadly deployed?

Zcache is currently a staging driver for a reason... I admit it...
I wrote zcache in a couple of months (and mostly over the holidays)
and it was really the first major Linux kernel driver I'd done.
I was surprised as hell when GregKH took it into staging.  But
it works pretty darn well.  Why?  Because it is built on the
foundation of cleancache and frontswap, which _just work_!!
And Seth Jennings (also of IBM for those that don't know) has been
doing a great job of finding and fixing bottlenecks, as well as
looking at some interesting enhancements.  I think he found ONE bug
so far... because I hadn't tested on 32-bit highmem machines.
Clearly, Seth and IBM see some value in zcache (perhaps, as Ed
Tomlinson pointed out, because AIX has similar capability?)

But let's not forget that there would be no zcache for Seth or
IBM to work on if you hadn't already taken the frontswap patchset
into your tree.  Frontswap is an ENABLER for zcache, as well as
for Xen tmem, for RAMster and (soon according to two kernel developers)
possibly also for KVM.  Given the tiny maintenance cost, why
not merge it?

So if you are saying that frontswap is not quite ready to be
merged, fine, I can accept that.  But there are now a number
of features, developers, distros, and products depending on it,
so there's a few of us who would like to hear CONCRETE STEPS
we need to achieve to make it ready.  (John Stoffel is the only
one to suggest any... not counting documentation he didn't
read, the big one is getting some measurements to show zcache
is valuable.  Hoping Seth can help with that?)

Got any suggestions?

Thanks,
Dan

WARNING: multiple messages have this Message-ID (diff)
From: Dan Magenheimer <dan.magenheimer@oracle.com>
To: Dave Hansen <dave@linux.vnet.ibm.com>
Cc: John Stoffel <john@stoffel.org>,
	Johannes Weiner <jweiner@redhat.com>,
	Pekka Enberg <penberg@kernel.org>,
	Cyclonus J <cyclonusj@gmail.com>,
	Sasha Levin <levinsasha928@gmail.com>,
	Christoph Hellwig <hch@infradead.org>,
	David Rientjes <rientjes@google.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Konrad Wilk <konrad.wilk@oracle.com>,
	Jeremy Fitzhardinge <jeremy@goop.org>,
	Seth Jennings <sjenning@linux.vnet.ibm.com>,
	ngupta@vflare.org, Chris Mason <chris.mason@oracle.com>,
	JBeulich@novell.com, Jonathan Corbet <corbet@lwn.net>
Subject: RE: [GIT PULL] mm: frontswap (for 3.2 window)
Date: Sun, 30 Oct 2011 14:50:01 -0700 (PDT)	[thread overview]
Message-ID: <f64fa61a-6a93-430a-bc51-53acb5e2e1ea@default> (raw)
In-Reply-To: <1320005162.15403.14.camel@nimitz>

> From: Dave Hansen [mailto:dave@linux.vnet.ibm.com]
> Subject: RE: [GIT PULL] mm: frontswap (for 3.2 window)

Thanks Dave (I think ;-) for chiming in.

> On Sun, 2011-10-30 at 12:18 -0700, Dan Magenheimer wrote:
> > > since they're the ones who will have to understand this stuff and know
> > > how to maintain it.  And keeping this maintainable is a key goal.
> >
> > Absolutely agree.  Count the number of frontswap lines that affect
> > the current VM core code and note also how they are very clearly
> > identified.  It really is a very VERY small impact to the core VM
> > code (e.g. in the files swapfile.c and page_io.c).
> 
> Granted, the impact on the core VM in lines of code is small.  But, I
> think the behavioral impact is potentially huge since tmem's hooks add
> non-trivial amounts of framework underneath the VM in core paths.  In
> zcache's case, this means a bunch of allocations and an entirely new
> allocator memory allocator being used in the swap paths.

True BUT (and this is a big BUT) it ONLY affects the core VM
path if both CONFIG_FRONTSWAP=y AND if a "tmem backend" such as
zcache registers it.  So not only is the code maintenance
impact very VERY small (which you granted), but there is
no impact on users or distros or products that don't turn it
on.  I also should repeat that the core VM changes introduced
by frontswap have remained essentially identical since first
proposed circa 2.6.18... the impacted swap code is NOT frequently-
changing code.  My point in my "Absolutely agree" above, is
that the maintenance burden to core VM developers is low.

> We're certainly still shaking bugs out of the interactions there like
> with zcache_direct_reclaim_lock.  Granted, that's not a
> tmem/frontswap/cleancache bug, but it does speak to the difficulty and
> subtlety of writing one of those frameworks underneath the tmem API.

IMHO, that's coming perilously close to saying "we don't accept
code that has bugs in it".  How many significant pieces of functionality
have been added to the kernel EVER where there were NO bugs found in
the next few months?  How much MERGED functionality (such as new
filesystems) has gone into the kernel years before it was broadly deployed?

Zcache is currently a staging driver for a reason... I admit it...
I wrote zcache in a couple of months (and mostly over the holidays)
and it was really the first major Linux kernel driver I'd done.
I was surprised as hell when GregKH took it into staging.  But
it works pretty darn well.  Why?  Because it is built on the
foundation of cleancache and frontswap, which _just work_!!
And Seth Jennings (also of IBM for those that don't know) has been
doing a great job of finding and fixing bottlenecks, as well as
looking at some interesting enhancements.  I think he found ONE bug
so far... because I hadn't tested on 32-bit highmem machines.
Clearly, Seth and IBM see some value in zcache (perhaps, as Ed
Tomlinson pointed out, because AIX has similar capability?)

But let's not forget that there would be no zcache for Seth or
IBM to work on if you hadn't already taken the frontswap patchset
into your tree.  Frontswap is an ENABLER for zcache, as well as
for Xen tmem, for RAMster and (soon according to two kernel developers)
possibly also for KVM.  Given the tiny maintenance cost, why
not merge it?

So if you are saying that frontswap is not quite ready to be
merged, fine, I can accept that.  But there are now a number
of features, developers, distros, and products depending on it,
so there's a few of us who would like to hear CONCRETE STEPS
we need to achieve to make it ready.  (John Stoffel is the only
one to suggest any... not counting documentation he didn't
read, the big one is getting some measurements to show zcache
is valuable.  Hoping Seth can help with that?)

Got any suggestions?

Thanks,
Dan

--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2011-10-30 21:50 UTC|newest]

Thread overview: 175+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-27 18:52 [GIT PULL] mm: frontswap (for 3.2 window) Dan Magenheimer
2011-10-27 18:52 ` Dan Magenheimer
     [not found] ` <alpine.DEB.2.00.1110271318220.7639@chino.kir.corp.google.com20111027211157.GA1199@infradead.org>
2011-10-27 19:30 ` Kurt Hackel
2011-10-27 19:30   ` Kurt Hackel
2011-10-27 20:18 ` David Rientjes
2011-10-27 20:18   ` David Rientjes
2011-10-27 21:11   ` Christoph Hellwig
2011-10-27 21:11     ` Christoph Hellwig
2011-10-27 21:49     ` Dan Magenheimer
2011-10-27 21:49       ` Dan Magenheimer
2011-10-27 21:52       ` Christoph Hellwig
2011-10-27 21:52         ` Christoph Hellwig
2011-10-27 22:21         ` Dan Magenheimer
2011-10-27 22:21           ` Dan Magenheimer
2011-10-28  7:12         ` Sasha Levin
2011-10-28  7:12           ` Sasha Levin
     [not found]           ` <CAOzbF4fnD=CGR-nizZoBxmFSuAjFC3uAHf3wDj5RLneJvJhrOQ@mail.gmail.comCAOJsxLGOTw7rtFnqeHvzFxifA0QgPVDHZzrEo=-uB2Gkrvp=JQ@mail.gmail.com>
     [not found]             ` <552d2067-474d-4aef-a9a4-89e5fd8ef84f@default20111031181651.GF3466@redhat.com>
     [not found]               ` <60592afd-97aa-4eaf-b86b-f6695d31c7f1@default20111031223717.GI3466@redhat.com>
     [not found]                 ` <1b2e4f74-7058-4712-85a7-84198723e3ee@default20111101012017.GJ3466@redhat.com>
     [not found]                   ` <6a9db6d9-6f13-4855-b026-ba668c29ddfa@default20111101180702.GL3466@redhat.com>
     [not found]                     ` <b8a0ca71-a31b-488a-9a92-2502d4a6e9bf@default20111102013122.GA18879@redhat.com>
2011-10-28  7:30           ` Cyclonus J
2011-10-28  7:30             ` Cyclonus J
2011-10-28 14:26             ` Pekka Enberg
2011-10-28 14:26               ` Pekka Enberg
2011-10-28 15:21               ` Dan Magenheimer
2011-10-28 15:21                 ` Dan Magenheimer
     [not found]                 ` <CAOJsxLEE-qf9me1SAZLFiEVhHVnDh7BDrSx1+abe9R4mfkhD=g@mail.gmail.com20111028163053.GC1319@redhat.com>
2011-10-28 15:36                 ` Pekka Enberg
2011-10-28 15:36                   ` Pekka Enberg
2011-10-28 16:30                   ` Johannes Weiner
2011-10-28 16:30                     ` Johannes Weiner
2011-10-28 17:01                     ` Pekka Enberg
2011-10-28 17:01                       ` Pekka Enberg
2011-10-28 17:07                     ` Dan Magenheimer
2011-10-28 17:07                       ` Dan Magenheimer
2011-10-28 18:28                       ` John Stoffel
2011-10-28 18:28                         ` John Stoffel
2011-10-28 20:19                         ` Dan Magenheimer
2011-10-28 20:19                           ` Dan Magenheimer
2011-10-28 20:52                           ` John Stoffel
2011-10-28 20:52                             ` John Stoffel
2011-10-30 19:18                             ` Dan Magenheimer
2011-10-30 19:18                               ` Dan Magenheimer
2011-10-30 20:06                               ` Dave Hansen
2011-10-30 20:06                                 ` Dave Hansen
2011-10-30 21:50                                 ` Dan Magenheimer [this message]
2011-10-30 21:50                                   ` Dan Magenheimer
2011-11-02 19:45                                 ` Rik van Riel
2011-11-02 19:45                                   ` Rik van Riel
2011-11-02 20:45                                   ` Dan Magenheimer
2011-11-02 20:45                                     ` Dan Magenheimer
2011-11-06 22:32                             ` Valdis.Kletnieks
2011-11-08 12:15                               ` Ed Tomlinson
2011-11-08 12:15                                 ` Ed Tomlinson
2011-10-31  8:12                           ` James Bottomley
2011-10-31  8:12                             ` James Bottomley
2011-10-31 15:39                             ` Dan Magenheimer
2011-10-31 15:39                               ` Dan Magenheimer
2011-11-01 10:13                               ` James Bottomley
2011-11-01 10:13                                 ` James Bottomley
2011-11-01 18:10                                 ` Dan Magenheimer
2011-11-01 18:10                                   ` Dan Magenheimer
2011-11-01 18:48                                   ` Dave Hansen
2011-11-01 18:48                                     ` Dave Hansen
2011-11-01 21:32                                     ` Dan Magenheimer
2011-11-01 21:32                                       ` Dan Magenheimer
2011-11-02  7:44                                   ` James Bottomley
2011-11-02  7:44                                     ` James Bottomley
2011-11-02 19:39                                     ` Dan Magenheimer
2011-11-02 19:39                                       ` Dan Magenheimer
2011-10-31 18:44                         ` Andrea Arcangeli
2011-10-31 18:44                           ` Andrea Arcangeli
2011-10-30 21:47                       ` Johannes Weiner
2011-10-30 21:47                         ` Johannes Weiner
2011-10-30 23:19                         ` Dan Magenheimer
2011-10-30 23:19                           ` Dan Magenheimer
2011-10-31 18:34                       ` Andrea Arcangeli
2011-10-31 18:34                         ` Andrea Arcangeli
2011-10-31 21:45                         ` Dan Magenheimer
2011-10-31 21:45                           ` Dan Magenheimer
2011-10-28 16:37                   ` Dan Magenheimer
2011-10-28 16:37                     ` Dan Magenheimer
2011-10-28 16:59                     ` Pekka Enberg
2011-10-28 16:59                       ` Pekka Enberg
2011-10-28 17:20                       ` Dan Magenheimer
2011-10-28 17:20                         ` Dan Magenheimer
2011-10-31 18:16                 ` Andrea Arcangeli
2011-10-31 18:16                   ` Andrea Arcangeli
2011-10-31 20:58                   ` Dan Magenheimer
2011-10-31 20:58                     ` Dan Magenheimer
2011-10-31 22:37                     ` Andrea Arcangeli
2011-10-31 22:37                       ` Andrea Arcangeli
2011-10-31 23:36                       ` Dan Magenheimer
2011-10-31 23:36                         ` Dan Magenheimer
2011-11-01  1:20                         ` Andrea Arcangeli
2011-11-01  1:20                           ` Andrea Arcangeli
2011-11-01 16:41                           ` Dan Magenheimer
2011-11-01 16:41                             ` Dan Magenheimer
2011-11-01 18:07                             ` Andrea Arcangeli
2011-11-01 18:07                               ` Andrea Arcangeli
2011-11-01 21:00                               ` Dan Magenheimer
2011-11-01 21:00                                 ` Dan Magenheimer
2011-11-02  1:31                                 ` Andrea Arcangeli
2011-11-02  1:31                                   ` Andrea Arcangeli
2011-11-02 19:06                                   ` Dan Magenheimer
2011-11-02 19:06                                     ` Dan Magenheimer
2011-11-03  0:32                                     ` Andrea Arcangeli
2011-11-03  0:32                                       ` Andrea Arcangeli
2011-11-03 22:29                                       ` Dan Magenheimer
2011-11-03 22:29                                         ` Dan Magenheimer
2011-11-02 20:51                         ` Rik van Riel
2011-11-02 20:51                           ` Rik van Riel
2011-11-02 21:14                           ` Dan Magenheimer
2011-11-02 21:14                             ` Dan Magenheimer
2011-11-15 16:29                             ` Rik van Riel
2011-11-15 16:29                               ` Rik van Riel
2011-11-15 17:33                               ` Jeremy Fitzhardinge
2011-11-15 17:33                                 ` Jeremy Fitzhardinge
2011-11-16 14:49                                 ` Konrad Rzeszutek Wilk
2011-11-16 14:49                                   ` Konrad Rzeszutek Wilk
2011-11-01 10:16                   ` James Bottomley
2011-11-01 10:16                     ` James Bottomley
2011-11-01 18:21                     ` Dan Magenheimer
2011-11-01 18:21                       ` Dan Magenheimer
2011-11-02  8:14                       ` James Bottomley
2011-11-02  8:14                         ` James Bottomley
2011-11-02 20:08                         ` Dan Magenheimer
2011-11-02 20:08                           ` Dan Magenheimer
2011-11-03 10:30                           ` Theodore Tso
2011-11-03 10:30                             ` Theodore Tso
2011-11-03 14:59                             ` Dan Magenheimer
2011-11-03 14:59                               ` Dan Magenheimer
2011-11-02 15:44                     ` Avi Kivity
2011-11-02 15:44                       ` Avi Kivity
2011-11-02 16:02                       ` Andrea Arcangeli
2011-11-02 16:02                         ` Andrea Arcangeli
2011-11-02 16:13                         ` Avi Kivity
2011-11-02 16:13                           ` Avi Kivity
2011-11-02 20:27                           ` Dan Magenheimer
2011-11-02 20:27                             ` Dan Magenheimer
2011-11-02 20:19                       ` Dan Magenheimer
2011-11-02 20:19                         ` Dan Magenheimer
2011-10-27 21:44 ` Avi Miller
2011-10-27 21:44   ` Avi Miller
2011-10-27 22:33 ` Brian King
2011-10-27 22:33   ` Brian King
2011-10-28  5:17 ` Nitin Gupta
2011-10-28  5:17   ` Nitin Gupta
2011-10-29 13:43 ` Ed Tomlinson
2011-10-29 13:43   ` Ed Tomlinson
2011-10-31  8:13 ` KAMEZAWA Hiroyuki
2011-10-31  8:13   ` KAMEZAWA Hiroyuki
2011-10-31 16:38   ` Dan Magenheimer
2011-10-31 16:38     ` Dan Magenheimer
2011-11-01  0:50     ` KAMEZAWA Hiroyuki
2011-11-01  0:50       ` KAMEZAWA Hiroyuki
2011-11-01 15:25       ` Dan Magenheimer
2011-11-01 15:25         ` Dan Magenheimer
2011-11-01 21:43         ` Andrew Morton
2011-11-01 21:43           ` Andrew Morton
2011-11-01 22:25           ` Dan Magenheimer
2011-11-01 22:25             ` Dan Magenheimer
2011-11-02 21:03           ` Rik van Riel
2011-11-02 21:03             ` Rik van Riel
2011-11-02 21:42             ` Dan Magenheimer
2011-11-02 21:42               ` Dan Magenheimer
2011-11-02  1:14         ` KAMEZAWA Hiroyuki
2011-11-02  1:14           ` KAMEZAWA Hiroyuki
2011-11-02 15:12           ` Dan Magenheimer
2011-11-02 15:12             ` Dan Magenheimer
2011-11-04  4:19             ` KAMEZAWA Hiroyuki
2011-11-04  4:19               ` KAMEZAWA Hiroyuki
2011-11-03 16:49 ` Jan Beulich
2011-11-03 16:49   ` Jan Beulich
2011-11-04  0:54   ` Andrew Morton
2011-11-04  0:54     ` Andrew Morton
2011-11-04  8:49     ` Jan Beulich
2011-11-04  8:49       ` Jan Beulich
2011-11-04 12:37 Clayton Weaver
2011-11-05 17:08 Clayton Weaver

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=f64fa61a-6a93-430a-bc51-53acb5e2e1ea@default \
    --to=dan.magenheimer@oracle.com \
    --cc=JBeulich@novell.com \
    --cc=akpm@linux-foundation.org \
    --cc=chris.mason@oracle.com \
    --cc=corbet@lwn.net \
    --cc=cyclonusj@gmail.com \
    --cc=dave@linux.vnet.ibm.com \
    --cc=hch@infradead.org \
    --cc=jeremy@goop.org \
    --cc=john@stoffel.org \
    --cc=jweiner@redhat.com \
    --cc=konrad.wilk@oracle.com \
    --cc=levinsasha928@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=ngupta@vflare.org \
    --cc=penberg@kernel.org \
    --cc=rientjes@google.com \
    --cc=sjenning@linux.vnet.ibm.com \
    --cc=torvalds@linux-foundation.org \
    /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.