From: "Michael S. Tsirkin" <mst@redhat.com>
To: Gleb Natapov <gleb@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
Anthony Liguori <aliguori@us.ibm.com>,
kvm@vger.kernel.org, virtualization@lists.linux-foundation.org,
Stefan Hajnoczi <stefanha@redhat.com>,
"H. Peter Anvin" <hpa@zytor.com>,
Paolo Bonzini <pbonzini@redhat.com>,
KONRAD Frederic <fred.konrad@greensocs.com>
Subject: Re: [PATCH RFC] virtio-pci: new config layout: using memory BAR
Date: Tue, 11 Jun 2013 11:19:46 +0300 [thread overview]
Message-ID: <20130611081946.GA9568@redhat.com> (raw)
In-Reply-To: <20130611080350.GF4725@redhat.com>
On Tue, Jun 11, 2013 at 11:03:50AM +0300, Gleb Natapov wrote:
> On Tue, Jun 11, 2013 at 11:02:26AM +0300, Michael S. Tsirkin wrote:
> > On Tue, Jun 11, 2013 at 10:53:48AM +0300, Gleb Natapov wrote:
> > > On Tue, Jun 11, 2013 at 10:10:47AM +0300, Michael S. Tsirkin wrote:
> > > > On Thu, Jun 06, 2013 at 10:02:14AM -0500, Anthony Liguori wrote:
> > > > > Gleb Natapov <gleb@redhat.com> writes:
> > > > >
> > > > > > On Wed, Jun 05, 2013 at 07:41:17PM -0500, Anthony Liguori wrote:
> > > > > >> "H. Peter Anvin" <hpa@zytor.com> writes:
> > > > > >>
> > > > > >> > On 06/05/2013 03:08 PM, Anthony Liguori wrote:
> > > > > >> >>>
> > > > > >> >>> Definitely an option. However, we want to be able to boot from native
> > > > > >> >>> devices, too, so having an I/O BAR (which would not be used by the OS
> > > > > >> >>> driver) should still at the very least be an option.
> > > > > >> >>
> > > > > >> >> What makes it so difficult to work with an MMIO bar for PCI-e?
> > > > > >> >>
> > > > > >> >> With legacy PCI, tracking allocation of MMIO vs. PIO is pretty straight
> > > > > >> >> forward. Is there something special about PCI-e here?
> > > > > >> >>
> > > > > >> >
> > > > > >> > It's not tracking allocation. It is that accessing memory above 1 MiB
> > > > > >> > is incredibly painful in the BIOS environment, which basically means
> > > > > >> > MMIO is inaccessible.
> > > > > >>
> > > > > >> Oh, you mean in real mode.
> > > > > >>
> > > > > >> SeaBIOS runs the virtio code in 32-bit mode with a flat memory layout.
> > > > > >> There are loads of ASSERT32FLAT()s in the code to make sure of this.
> > > > > >>
> > > > > > Well, not exactly. Initialization is done in 32bit, but disk
> > > > > > reads/writes are done in 16bit mode since it should work from int13
> > > > > > interrupt handler. The only way I know to access MMIO bars from 16 bit
> > > > > > is to use SMM which we do not have in KVM.
> > > > >
> > > > > Ah, if it's just the dataplane operations then there's another solution.
> > > > >
> > > > > We can introduce a virtqueue flag that asks the backend to poll for new
> > > > > requests. Then SeaBIOS can add the request to the queue and not worry
> > > > > about kicking or reading the ISR.
> > > >
> > > > This will pin a host CPU.
> > > > If we do something timer based it will likely
> > > > both increase host CPU utilization and slow device down.
> > > >
> > > > If we didn't care about performance at all we could
> > > > do config cycles for signalling, which is much
> > > > more elegant than polling in host, but I don't think
> > > > that's the case.
> > > >
> > > I wouldn't call BIOS int13 interface performance critical.
> >
> > So the plan always was to
> > - add an MMIO BAR
> > - add a register for pci-config based access to devices
> >
> > hpa felt performance does matter there but didn't clarify why ...
> >
> You do not what to make it too slow obviously, this is interface that is
> used to load OS during boot.
And possibly installation?
> > > > >
> > > > > SeaBIOS is polling for completion anyway.
> > > >
> > > > I think that's different because a disk will normally respond
> > > > quickly. So it polls a bit, but then it stops as
> > > > there are no outstanding requests.
> > > >
> > > > --
> > > > MST
> > >
> > > --
> > > Gleb.
>
> --
> Gleb.
next prev parent reply other threads:[~2013-06-11 8:19 UTC|newest]
Thread overview: 109+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-28 16:03 [PATCH RFC] virtio-pci: new config layout: using memory BAR Michael S. Tsirkin
2013-05-28 17:15 ` Anthony Liguori
2013-05-28 17:32 ` Michael S. Tsirkin
2013-05-28 17:43 ` Paolo Bonzini
2013-05-29 2:02 ` Laszlo Ersek
2013-05-29 2:02 ` Laszlo Ersek
2013-05-29 4:33 ` Rusty Russell
2013-05-29 7:27 ` Paolo Bonzini
2013-05-29 8:05 ` Michael S. Tsirkin
2013-05-29 10:07 ` Laszlo Ersek
2013-05-29 4:33 ` Rusty Russell
2013-05-28 18:53 ` Anthony Liguori
2013-05-28 19:27 ` Michael S. Tsirkin
2013-05-29 4:31 ` Rusty Russell
2013-05-29 4:31 ` Rusty Russell
2013-05-29 8:24 ` Michael S. Tsirkin
2013-05-29 8:52 ` Paolo Bonzini
2013-05-29 9:00 ` Peter Maydell
2013-05-29 10:08 ` Michael S. Tsirkin
2013-05-29 10:53 ` Peter Maydell
2013-05-29 12:16 ` Michael S. Tsirkin
2013-05-29 12:28 ` Paolo Bonzini
2013-05-29 12:37 ` Michael S. Tsirkin
2013-05-29 12:52 ` Anthony Liguori
2013-05-29 12:52 ` Anthony Liguori
2013-05-29 13:24 ` Michael S. Tsirkin
2013-05-29 13:35 ` Peter Maydell
2013-05-29 13:35 ` Peter Maydell
2013-05-29 13:41 ` Paolo Bonzini
2013-05-29 14:02 ` Michael S. Tsirkin
2013-05-29 14:18 ` Anthony Liguori
2013-05-29 14:18 ` Anthony Liguori
2013-05-30 7:43 ` Michael S. Tsirkin
2013-05-29 14:16 ` Anthony Liguori
2013-05-29 14:30 ` Michael S. Tsirkin
2013-05-29 14:32 ` Paolo Bonzini
2013-05-29 14:52 ` Michael S. Tsirkin
2013-05-29 14:55 ` Anthony Liguori
2013-05-29 16:12 ` Michael S. Tsirkin
2013-05-29 18:16 ` Michael S. Tsirkin
2013-05-29 14:55 ` Anthony Liguori
2013-05-29 14:16 ` Anthony Liguori
2013-05-30 3:58 ` Rusty Russell
2013-05-30 3:58 ` Rusty Russell
2013-05-30 5:55 ` Michael S. Tsirkin
2013-05-30 7:55 ` Michael S. Tsirkin
2013-06-03 0:17 ` Rusty Russell
2013-05-30 13:53 ` Anthony Liguori
2013-05-30 13:53 ` Anthony Liguori
2013-05-30 14:01 ` Michael S. Tsirkin
2013-06-03 0:26 ` Rusty Russell
2013-06-03 10:11 ` Michael S. Tsirkin
2013-06-04 5:31 ` Rusty Russell
2013-06-04 6:42 ` Michael S. Tsirkin
2013-06-05 7:19 ` Rusty Russell
2013-06-05 10:22 ` Michael S. Tsirkin
2013-06-05 12:59 ` Anthony Liguori
2013-06-05 14:09 ` Michael S. Tsirkin
2013-06-05 15:08 ` Anthony Liguori
2013-06-05 15:19 ` Michael S. Tsirkin
2013-06-05 15:46 ` Anthony Liguori
2013-06-05 16:20 ` Michael S. Tsirkin
2013-06-05 18:57 ` Anthony Liguori
2013-06-05 19:43 ` Michael S. Tsirkin
2013-06-05 19:52 ` Michael S. Tsirkin
2013-06-05 20:45 ` Anthony Liguori
2013-06-05 21:15 ` H. Peter Anvin
2013-06-05 21:15 ` Michael S. Tsirkin
2013-06-05 20:42 ` Anthony Liguori
2013-06-05 21:14 ` Michael S. Tsirkin
2013-06-05 21:53 ` Anthony Liguori
2013-06-05 21:53 ` Anthony Liguori
2013-06-05 22:19 ` Benjamin Herrenschmidt
2013-06-05 22:53 ` Anthony Liguori
2013-06-05 23:27 ` Benjamin Herrenschmidt
2013-06-05 19:54 ` Michael S. Tsirkin
2013-06-06 3:42 ` Rusty Russell
2013-06-06 14:59 ` Anthony Liguori
2013-06-07 1:58 ` Rusty Russell
2013-06-07 8:25 ` Peter Maydell
2013-06-05 21:10 ` H. Peter Anvin
2013-06-05 21:17 ` Michael S. Tsirkin
2013-06-05 21:50 ` Anthony Liguori
2013-06-05 21:55 ` H. Peter Anvin
2013-06-05 22:08 ` Anthony Liguori
2013-06-05 23:07 ` H. Peter Anvin
2013-06-06 0:41 ` Anthony Liguori
2013-06-06 6:34 ` Gleb Natapov
2013-06-06 13:53 ` H. Peter Anvin
2013-06-06 15:02 ` Anthony Liguori
2013-06-06 15:02 ` Anthony Liguori
2013-06-07 11:30 ` Gleb Natapov
2013-06-11 7:10 ` Michael S. Tsirkin
2013-06-11 7:53 ` Gleb Natapov
2013-06-11 8:02 ` Michael S. Tsirkin
2013-06-11 8:03 ` Gleb Natapov
2013-06-11 8:19 ` Michael S. Tsirkin [this message]
2013-06-11 8:22 ` Gleb Natapov
2013-06-11 8:30 ` Michael S. Tsirkin
2013-06-11 8:32 ` Gleb Natapov
2013-06-11 8:04 ` Michael S. Tsirkin
2013-06-06 15:06 ` Gerd Hoffmann
2013-06-06 15:10 ` Gleb Natapov
2013-06-06 15:19 ` H. Peter Anvin
2013-06-06 15:22 ` Gerd Hoffmann
2013-07-08 4:25 ` Kevin O'Connor
2013-06-05 15:46 ` Anthony Liguori
2013-06-06 8:02 ` Michael S. Tsirkin
2013-05-28 17:15 ` Anthony Liguori
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=20130611081946.GA9568@redhat.com \
--to=mst@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=fred.konrad@greensocs.com \
--cc=gleb@redhat.com \
--cc=hpa@zytor.com \
--cc=kvm@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=stefanha@redhat.com \
--cc=virtualization@lists.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.