From: "Michael S. Tsirkin" <mst@redhat.com>
To: Stefan Hajnoczi <stefanha@gmail.com>
Cc: Joel Nider <JOELN@il.ibm.com>, Abel Gordon <ABELG@il.ibm.com>,
abel.gordon@gmail.com, Anthony Liguori <anthony@codemonkey.ws>,
asias@redhat.com, digitaleric@google.com,
Eran Raichstein <ERANRA@il.ibm.com>,
gleb@redhat.com, jasowang@redhat.com, kvm@vger.kernel.org,
pbonzini@redhat.com, Razya Ladelsky <RAZYA@il.ibm.com>
Subject: Re: Elvis upstreaming plan
Date: Wed, 27 Nov 2013 17:30:56 +0200 [thread overview]
Message-ID: <20131127153056.GA31267@redhat.com> (raw)
In-Reply-To: <20131127150053.GA14978@stefanha-thinkpad.muc.redhat.com>
On Wed, Nov 27, 2013 at 04:00:53PM +0100, Stefan Hajnoczi wrote:
> On Wed, Nov 27, 2013 at 09:43:33AM +0200, Joel Nider wrote:
> > Hi,
> >
> > Razya is out for a few days, so I will try to answer the questions as well
> > as I can:
> >
> > "Michael S. Tsirkin" <mst@redhat.com> wrote on 26/11/2013 11:11:57 PM:
> >
> > > From: "Michael S. Tsirkin" <mst@redhat.com>
> > > To: Abel Gordon/Haifa/IBM@IBMIL,
> > > Cc: Anthony Liguori <anthony@codemonkey.ws>, abel.gordon@gmail.com,
> > > asias@redhat.com, digitaleric@google.com, Eran Raichstein/Haifa/
> > > IBM@IBMIL, gleb@redhat.com, jasowang@redhat.com, Joel Nider/Haifa/
> > > IBM@IBMIL, kvm@vger.kernel.org, pbonzini@redhat.com, Razya Ladelsky/
> > > Haifa/IBM@IBMIL
> > > Date: 27/11/2013 01:08 AM
> > > Subject: Re: Elvis upstreaming plan
> > >
> > > On Tue, Nov 26, 2013 at 08:53:47PM +0200, Abel Gordon wrote:
> > > >
> > > >
> > > > Anthony Liguori <anthony@codemonkey.ws> wrote on 26/11/2013 08:05:00
> > PM:
> > > >
> > > > >
> > > > > Razya Ladelsky <RAZYA@il.ibm.com> writes:
> > > > >
> > <edit>
> > > >
> > > > That's why we are proposing to implement a mechanism that will enable
> > > > the management stack to configure 1 thread per I/O device (as it is
> > today)
> > > > or 1 thread for many I/O devices (belonging to the same VM).
> > > >
> > > > > Once you are scheduling multiple guests in a single vhost device, you
> > > > > now create a whole new class of DoS attacks in the best case
> > scenario.
> > > >
> > > > Again, we are NOT proposing to schedule multiple guests in a single
> > > > vhost thread. We are proposing to schedule multiple devices belonging
> > > > to the same guest in a single (or multiple) vhost thread/s.
> > > >
> > >
> > > I guess a question then becomes why have multiple devices?
> >
> > If you mean "why serve multiple devices from a single thread" the answer is
> > that we cannot rely on the Linux scheduler which has no knowledge of I/O
> > queues to do a decent job of scheduling I/O. The idea is to take over the
> > I/O scheduling responsibilities from the kernel's thread scheduler with a
> > more efficient I/O scheduler inside each vhost thread. So by combining all
> > of the I/O devices from the same guest (disks, network cards, etc) in a
> > single I/O thread, it allows us to provide better scheduling by giving us
> > more knowledge of the nature of the work. So now instead of relying on the
> > linux scheduler to perform context switches between multiple vhost threads,
> > we have a single thread context in which we can do the I/O scheduling more
> > efficiently. We can closely monitor the performance needs of each queue of
> > each device inside the vhost thread which gives us much more information
> > than relying on the kernel's thread scheduler.
>
> And now there are 2 performance-critical pieces that need to be
> optimized/tuned instead of just 1:
>
> 1. Kernel infrastructure that QEMU and vhost use today but you decided
> to bypass.
> 2. The new ELVIS code which only affects vhost devices in the same VM.
>
> If you split the code paths it results in more effort in the long run
> and the benefit seems quite limited once you acknowledge that isolation
> is important.
>
> Isn't the sane thing to do taking lessons from ELVIS improving existing
> pieces instead of bypassing them? That way both the single VM and
> host-wide performance improves. And as a bonus non-virtualization use
> cases may also benefit.
>
> Stefan
I'm not sure about that. elvis is all about specific behaviour
patterns that are virtualization specific, and general claims
that we can improve scheduler for all workloads seem somewhat
optimistic.
--
MST
next prev parent reply other threads:[~2013-11-27 15:27 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-24 9:22 Elvis upstreaming plan Razya Ladelsky
2013-11-24 10:26 ` Michael S. Tsirkin
2013-11-25 11:06 ` Razya Ladelsky
2013-11-26 15:50 ` Stefan Hajnoczi
2013-11-26 18:05 ` Anthony Liguori
2013-11-26 18:53 ` Abel Gordon
2013-11-26 21:11 ` Michael S. Tsirkin
2013-11-27 7:43 ` Joel Nider
2013-11-27 10:27 ` Michael S. Tsirkin
2013-11-27 10:41 ` Abel Gordon
2013-11-27 10:59 ` Michael S. Tsirkin
2013-11-27 11:02 ` Abel Gordon
2013-11-27 11:36 ` Michael S. Tsirkin
2013-11-27 22:33 ` Anthony Liguori
2013-11-28 8:25 ` Abel Gordon
2013-11-27 15:00 ` Stefan Hajnoczi
2013-11-27 15:30 ` Michael S. Tsirkin [this message]
2013-11-28 7:24 ` Joel Nider
2013-11-28 7:31 ` Abel Gordon
2013-11-28 11:01 ` Michael S. Tsirkin
2013-12-02 15:11 ` Stefan Hajnoczi
2013-11-27 9:03 ` Abel Gordon
2013-11-27 9:21 ` Michael S. Tsirkin
2013-11-27 9:49 ` Abel Gordon
2013-11-27 10:29 ` Michael S. Tsirkin
2013-11-27 10:55 ` Abel Gordon
2013-11-27 11:03 ` Michael S. Tsirkin
2013-11-27 11:05 ` Abel Gordon
2013-11-27 11:40 ` Michael S. Tsirkin
2013-11-26 22:27 ` Bandan Das
2013-11-27 2:49 ` Jason Wang
2013-11-27 7:35 ` Gleb Natapov
2013-11-27 7:45 ` Joel Nider
2013-11-27 9:18 ` Abel Gordon
2013-11-27 9:21 ` Gleb Natapov
2013-11-27 9:33 ` Abel Gordon
2013-11-27 9:48 ` Gleb Natapov
2013-11-27 10:18 ` Abel Gordon
2013-11-27 10:37 ` Michael S. Tsirkin
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=20131127153056.GA31267@redhat.com \
--to=mst@redhat.com \
--cc=ABELG@il.ibm.com \
--cc=ERANRA@il.ibm.com \
--cc=JOELN@il.ibm.com \
--cc=RAZYA@il.ibm.com \
--cc=abel.gordon@gmail.com \
--cc=anthony@codemonkey.ws \
--cc=asias@redhat.com \
--cc=digitaleric@google.com \
--cc=gleb@redhat.com \
--cc=jasowang@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=stefanha@gmail.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