linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Dan Magenheimer <dan.magenheimer@oracle.com>
To: Rik van Riel <riel@redhat.com>
Cc: Andrea Arcangeli <aarcange@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, Dave Hansen <dave@linux.vnet.ibm.com>,
	Jonathan Corbet <corbet@lwn.net>
Subject: RE: [GIT PULL] mm: frontswap (for 3.2 window)
Date: Wed, 2 Nov 2011 14:14:16 -0700 (PDT)	[thread overview]
Message-ID: <cb397723-5297-493d-9bbd-522a6400a5a6@default> (raw)
In-Reply-To: <4EB1AD53.2000600@redhat.com>

> From: Rik van Riel [mailto:riel@redhat.com]
> Subject: Re: [GIT PULL] mm: frontswap (for 3.2 window)
> 
> On 10/31/2011 07:36 PM, Dan Magenheimer wrote:
> >> From: Andrea Arcangeli [mailto:aarcange@redhat.com]
> 
> >>> real work to do instead and (2) that vmexit/vmenter is horribly
> >>
> >> Sure the CPU has another 1000 VM to schedule. This is like saying
> >> virtio-blk isn't needed on desktop virt becauase the desktop isn't
> >> doing much I/O. Absurd argument, there are another 1000 desktops doing
> >> I/O at the same time of course.
> >
> > But this is truly different, I think at least for the most common
> > cases, because the guest is essentially out of physical memory if it
> > is swapping.  And the vmexit/vmenter (I assume, I don't really
> > know KVM) gives the KVM scheduler the opportunity to schedule
> > another of those 1000 VMs if it wishes.
> 
> I believe the problem Andrea is trying to point out here is
> that the proposed API cannot handle a batch of pages to be
> pushed into frontswap/cleancache at one time.

That wasn't the part of Andrea's discussion I meant, but I
am getting foggy now, so let's address your point rather
than mine.
 
> Even if the current back-end implementations are synchronous
> and can only do one page at a time, I believe it would still
> be a good idea to have the API able to handle a vector with
> a bunch of pages all at once.
> 
> That way we can optimize the back-ends as required, at some
> later point in time.
> 
> If enough people start using tmem, such bottlenecks will show
> up at some point :)

It occurs to me that batching could be done locally without
changing the in-kernel "API" (i.e. frontswap_ops)... the
guest-side KVM tmem-backend-driver could do the compression
into guest-side memory and make a single
hypercall=vmexit/vmenter whenever it has collected enough for
a batch. The "get" and "flush" would have to search this guest-side
local cache and, if not local, make a hypercall.

This is more or less what RAMster does, except it (currently)
still transmits the "batch" one (pre-compressed) page at a time.

And, when I think about it deeper (with my currently admittedly
fried brain), this may even be the best way to do batching
anyway.  I can't think offhand where else you would put
a "put batch" hook in the swap subsystem because I think
the current swap subsystem batching code only works with
adjacent "entry" numbers.

And, one more thing occurs to me then... this shows the KVM
"ABI" (hypercall) is not constrained by the existing Xen
ABI.  It can be arbitrarily more functional.

/me gets hand slapped remotely from Oracle HQ ;-)

--
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-11-02 21:14 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 20:18 ` David Rientjes
2011-10-27 21:11   ` Christoph Hellwig
2011-10-27 21:49     ` Dan Magenheimer
2011-10-27 21:52       ` Christoph Hellwig
2011-10-27 22:21         ` Dan Magenheimer
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 14:26             ` Pekka Enberg
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 16:30                   ` Johannes Weiner
2011-10-28 17:01                     ` Pekka Enberg
2011-10-28 17:07                     ` Dan Magenheimer
2011-10-28 18:28                       ` John Stoffel
2011-10-28 20:19                         ` Dan Magenheimer
2011-10-28 20:52                           ` John Stoffel
2011-10-30 19:18                             ` Dan Magenheimer
2011-10-30 20:06                               ` Dave Hansen
2011-10-30 21:50                                 ` Dan Magenheimer
2011-11-02 19:45                                 ` Rik van Riel
2011-11-02 20:45                                   ` Dan Magenheimer
2011-11-06 22:32                             ` Valdis.Kletnieks
2011-11-08 12:15                               ` Ed Tomlinson
2011-10-31  8:12                           ` James Bottomley
2011-10-31 15:39                             ` Dan Magenheimer
2011-11-01 10:13                               ` James Bottomley
2011-11-01 18:10                                 ` Dan Magenheimer
2011-11-01 18:48                                   ` Dave Hansen
2011-11-01 21:32                                     ` Dan Magenheimer
2011-11-02  7:44                                   ` James Bottomley
2011-11-02 19:39                                     ` Dan Magenheimer
2011-10-31 18:44                         ` Andrea Arcangeli
2011-10-30 21:47                       ` Johannes Weiner
2011-10-30 23:19                         ` Dan Magenheimer
2011-10-31 18:34                       ` Andrea Arcangeli
2011-10-31 21:45                         ` Dan Magenheimer
2011-10-28 16:37                   ` Dan Magenheimer
2011-10-28 16:59                     ` Pekka Enberg
2011-10-28 17:20                       ` Dan Magenheimer
2011-10-31 18:16                 ` Andrea Arcangeli
2011-10-31 20:58                   ` Dan Magenheimer
2011-10-31 22:37                     ` Andrea Arcangeli
2011-10-31 23:36                       ` Dan Magenheimer
2011-11-01  1:20                         ` Andrea Arcangeli
2011-11-01 16:41                           ` Dan Magenheimer
2011-11-01 18:07                             ` Andrea Arcangeli
2011-11-01 21:00                               ` Dan Magenheimer
2011-11-02  1:31                                 ` Andrea Arcangeli
2011-11-02 19:06                                   ` Dan Magenheimer
2011-11-03  0:32                                     ` Andrea Arcangeli
2011-11-03 22:29                                       ` Dan Magenheimer
2011-11-02 20:51                         ` Rik van Riel
2011-11-02 21:14                           ` Dan Magenheimer [this message]
2011-11-15 16:29                             ` Rik van Riel
2011-11-15 17:33                               ` Jeremy Fitzhardinge
2011-11-16 14:49                                 ` Konrad Rzeszutek Wilk
2011-11-01 10:16                   ` James Bottomley
2011-11-01 18:21                     ` Dan Magenheimer
2011-11-02  8:14                       ` James Bottomley
2011-11-02 20:08                         ` Dan Magenheimer
2011-11-03 10:30                           ` Theodore Tso
2011-11-03 14:59                             ` Dan Magenheimer
2011-11-02 15:44                     ` Avi Kivity
2011-11-02 16:02                       ` Andrea Arcangeli
2011-11-02 16:13                         ` Avi Kivity
2011-11-02 20:27                           ` Dan Magenheimer
2011-11-02 20:19                       ` Dan Magenheimer
2011-10-27 21:44 ` Avi Miller
2011-10-27 22:33 ` Brian King
2011-10-28  5:17 ` Nitin Gupta
2011-10-29 13:43 ` Ed Tomlinson
2011-10-31  8:13 ` KAMEZAWA Hiroyuki
2011-10-31 16:38   ` Dan Magenheimer
2011-11-01  0:50     ` KAMEZAWA Hiroyuki
2011-11-01 15:25       ` Dan Magenheimer
2011-11-01 21:43         ` Andrew Morton
2011-11-01 22:25           ` Dan Magenheimer
2011-11-02 21:03           ` Rik van Riel
2011-11-02 21:42             ` Dan Magenheimer
2011-11-02  1:14         ` KAMEZAWA Hiroyuki
2011-11-02 15:12           ` Dan Magenheimer
2011-11-04  4:19             ` KAMEZAWA Hiroyuki
2011-11-03 16:49 ` Jan Beulich
2011-11-04  0:54   ` Andrew Morton
2011-11-04  8:49     ` Jan Beulich

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=cb397723-5297-493d-9bbd-522a6400a5a6@default \
    --to=dan.magenheimer@oracle.com \
    --cc=JBeulich@novell.com \
    --cc=aarcange@redhat.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=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=riel@redhat.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox