From: "Marek Marczykowski-Górecki" <marmarek@invisiblethingslab.com>
To: Juergen Gross <jgross@suse.com>
Cc: "Roger Pau Monné" <roger.pau@citrix.com>,
"Stefano Stabellini" <sstabellini@kernel.org>,
"Oleksandr Tyshchenko" <Oleksandr_Tyshchenko@epam.com>,
"Petr Pavlu" <petr.pavlu@suse.com>,
"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
vikram.garhwal@amd.com
Subject: Re: [PATCH 2/2] xen/virtio: Avoid use of the dom0 backend in dom0
Date: Tue, 4 Jul 2023 13:43:46 +0200 [thread overview]
Message-ID: <ZKQF8qq8Oh5E+Fxx@mail-itl> (raw)
In-Reply-To: <e5eda26f-9a31-dc3a-d97f-33d2efa20efa@suse.com>
[-- Attachment #1: Type: text/plain, Size: 3915 bytes --]
Hi,
FWIW, I have ran into this issue some time ago too. I run Xen on top of
KVM and then passthrough some of the virtio devices (network one
specifically) into a (PV) guest. So, I hit both cases, the dom0 one and
domU one. As a temporary workaround I needed to disable
CONFIG_XEN_VIRTIO completely (just disabling
CONFIG_XEN_VIRTIO_FORCE_GRANT was not enough to fix it).
With that context in place, the actual response below.
On Tue, Jul 04, 2023 at 12:39:40PM +0200, Juergen Gross wrote:
> On 04.07.23 09:48, Roger Pau Monné wrote:
> > On Thu, Jun 29, 2023 at 03:44:04PM -0700, Stefano Stabellini wrote:
> > > On Thu, 29 Jun 2023, Oleksandr Tyshchenko wrote:
> > > > On 29.06.23 04:00, Stefano Stabellini wrote:
> > > > > I think we need to add a second way? It could be anything that can help
> > > > > us distinguish between a non-grants-capable virtio backend and a
> > > > > grants-capable virtio backend, such as:
> > > > > - a string on xenstore
> > > > > - a xen param
> > > > > - a special PCI configuration register value
> > > > > - something in the ACPI tables
> > > > > - the QEMU machine type
> > > >
> > > >
> > > > Yes, I remember there was a discussion regarding that. The point is to
> > > > choose a solution to be functional for both PV and HVM *and* to be able
> > > > to support a hotplug. IIRC, the xenstore could be a possible candidate.
> > >
> > > xenstore would be among the easiest to make work. The only downside is
> > > the dependency on xenstore which otherwise virtio+grants doesn't have.
> >
> > I would avoid introducing a dependency on xenstore, if nothing else we
> > know it's a performance bottleneck.
> >
> > We would also need to map the virtio device topology into xenstore, so
> > that we can pass different options for each device.
>
> This aspect (different options) is important. How do you want to pass virtio
> device configuration parameters from dom0 to the virtio backend domain? You
> probably need something like Xenstore (a virtio based alternative like virtiofs
> would work, too) for that purpose.
>
> Mapping the topology should be rather easy via the PCI-Id, e.g.:
>
> /local/domain/42/device/virtio/0000:00:1c.0/backend
While I agree this would probably be the simplest to implement, I don't
like introducing xenstore dependency into virtio frontend either.
Toolstack -> backend communication is probably easier to solve, as it's
much more flexible (could use qemu cmdline, QMP, other similar
mechanisms for non-qemu backends etc).
> > > Vikram is working on virtio with grants support in QEMU as we speak.
> > > Maybe we could find a way to add a flag in QEMU so that we can detect at
> > > runtime if a given virtio device support grants or not.
> >
> > Isn't there a way for the device to expose capabilities already? For
> > example how does a virtio-blk backend expose support for indirect
> > descriptors?
>
> Those capabilities are defined in the virtio spec [1]. Adding the backend
> domid would be possible, but it probably wouldn't be that easy (requires
> changing the virtio spec by either expanding an existing config area or by
> adding a new one). I'm not sure handling in the specific frontends is
> generic enough for being able to have a central place where the backend
> domid could be retrieved, without requiring any change of the frontends.
IMHO the proper solution is to extend the spec. I don't have much
experience with virtio code, but reading the spec it looks like new
config area will be better for compatibility/uniform handling in a
frontent-agnostic way. Since it will definitely take time, some
transitional solution (maybe even xenstore...) might be warranted.
> Juergen
>
> [1]: http://docs.oasis-open.org/virtio/virtio/v1.2/virtio-v1.2.html
--
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next prev parent reply other threads:[~2023-07-04 11:43 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-21 13:12 [PATCH 0/2] Fix Linux dom0 boot on a QEMU/KVM virtual machine Petr Pavlu
2023-06-21 13:12 ` [PATCH 1/2] xen/virtio: Fix NULL deref when a bridge of PCI root bus has no parent Petr Pavlu
2023-06-21 16:22 ` Oleksandr Tyshchenko
2023-06-29 0:37 ` Stefano Stabellini
2023-06-21 13:12 ` [PATCH 2/2] xen/virtio: Avoid use of the dom0 backend in dom0 Petr Pavlu
2023-06-21 17:58 ` Oleksandr Tyshchenko
2023-06-26 13:17 ` Petr Pavlu
2023-07-07 7:46 ` Juergen Gross
2023-07-07 21:02 ` Stefano Stabellini
2023-07-08 10:54 ` Juergen Gross
2023-07-08 18:13 ` Stefano Stabellini
2023-06-29 1:00 ` Stefano Stabellini
2023-06-29 20:29 ` Oleksandr Tyshchenko
2023-06-29 22:44 ` Stefano Stabellini
2023-07-04 6:25 ` Juergen Gross
2023-07-04 7:48 ` Roger Pau Monné
2023-07-04 10:39 ` Juergen Gross
2023-07-04 11:43 ` Marek Marczykowski-Górecki [this message]
2023-07-04 14:49 ` Roger Pau Monné
[not found] ` <CAPD2p-nG8SbNYF6Ob262bP71qXNGmWLZcYTLO-DnnmTQX2VHvw@mail.gmail.com>
2023-07-05 4:46 ` Juergen Gross
2023-07-05 8:32 ` Roger Pau Monné
2023-07-05 22:41 ` Stefano Stabellini
2023-07-06 8:17 ` Roger Pau Monné
2023-07-06 21:49 ` Stefano Stabellini
2023-07-07 4:38 ` Juergen Gross
2023-07-07 9:50 ` Roger Pau Monné
2023-07-07 14:10 ` Juergen Gross
2023-07-07 14:27 ` Juergen Gross
2023-07-07 14:48 ` Roger Pau Monné
2023-07-07 15:14 ` Juergen Gross
2023-07-07 14:42 ` Roger Pau Monné
2023-07-07 15:01 ` Juergen Gross
2023-07-07 15:14 ` Roger Pau Monné
2023-07-07 15:15 ` Juergen Gross
2023-07-07 7:04 ` Juergen Gross
2023-07-07 8:00 ` Oleksandr Tyshchenko
2023-07-07 8:11 ` Juergen Gross
2023-07-07 8:23 ` Oleksandr Tyshchenko
[not found] <100177f8fec144ac96d91de226f76ebe@posteo.net>
2023-07-07 20:51 ` Stefano Stabellini
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=ZKQF8qq8Oh5E+Fxx@mail-itl \
--to=marmarek@invisiblethingslab.com \
--cc=Oleksandr_Tyshchenko@epam.com \
--cc=jgross@suse.com \
--cc=linux-kernel@vger.kernel.org \
--cc=petr.pavlu@suse.com \
--cc=roger.pau@citrix.com \
--cc=sstabellini@kernel.org \
--cc=vikram.garhwal@amd.com \
--cc=xen-devel@lists.xenproject.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
all inboxes | Powered by JetHome®