public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
From: Andrea Bolognani <abologna@redhat.com>
To: Stefano Brivio <sbrivio@redhat.com>
Cc: David Gibson <david@gibson.dropbear.id.au>,
	passt-dev@passt.top, Alona Paz <alkaplan@redhat.com>
Subject: Re: [PATCH] qrap: Pass PCI device numbers to qemu in base 10, not in base 16
Date: Fri, 24 Feb 2023 11:05:00 -0800	[thread overview]
Message-ID: <CABJz62M5x0B5z5xqdOr=5uGMCrjFjYR6WJJDTbBOa=ajBUs=cA@mail.gmail.com> (raw)
In-Reply-To: <20230224081416.47b85d01@elisabeth>

On Fri, Feb 24, 2023 at 08:14:16AM +0100, Stefano Brivio wrote:
> On Thu, 23 Feb 2023 06:06:17 -0800 Andrea Bolognani <abologna@redhat.com> wrote:
> > On Thu, Feb 23, 2023 at 09:27:14AM +1100, David Gibson wrote:
> > > On Wed, Feb 22, 2023 at 02:40:32AM -0800, Andrea Bolognani wrote:
> > > > I don't think this is going to work.
> > > >
> > > > The problem is that, while PCI buses are indeed named with increasing
> > > > numbers in integer format (pci.9, pci.10 and so on), PCI slots are
> > > > addressed using hexadecimal format (0x9, 0xa and so on). libvirt uses
> > > > this naming convention because it matches QEMU's.
> > >
> > > Actually, I think we're ok.  PCI slots are addressed in hex by
> > > convention, but AFAICT if you *just* give a slot number, it will
> > > accept either decimal or hex (so addr=10 and addr=0xa are equivalent).
> > > That's *not* true if you use SS.F format to include the function
> > > number - then it expects hex only.  But we're not doing that, so so
> > > always using decimal should be ok here.
> > >
> > > Source: set_pci_devfn() in the qemu source
> > >
> > > Obviously that's a pretty fragile hack, but that's 'qrap' for you.
> >
> > Yeah, even if that happens to work I'd rather not rely on it,
> > especially since a proper solution doesn't look like it would be a
> > lot of additional effort.
> >
> > I've managed to reproduce the original issue in the context of
> > KubeVirt. I'll hopefully have a patch ready soon.
>
> Andrea, allow me to do this: I would push this patch meanwhile, along
> with the changes for the DNS issue you reported, because that one might
> impact many users, and I think it makes sense to have a fix out soon.
>
> I start thinking it's also part of the issue Paul reported for Podman
> with pasta here:
>   https://github.com/containers/podman/issues/17074
>
> This patch itself can't hurt, and it changes exactly two letters.

I strongly disagree with this assessment. This patch merely trades
one set of issues for another one.

In particular, for pc machine types we'd end up producing
bus=pci.0,addr=0x10 for slot 10 instead of bus=pci.0,addr=0xa,
because the addr=0x part is baked into the template. So the QEMU
logic David mentioned above wouldn't kick in at all.

More importantly, for q35 machines we'd start producing decimal bus
numbers while still parsing the ones present in the original command
line as hexadecimal, so things would stop lining up as soon as enough
devices are present, meaning that the issue reported by Alona would
still exist.

> As soon as you have something less qrappy we'll go with that (you don't
> even need to rebase, I'll revert this one on the tree first).

Patches fixing this issue, as well as a few additional ones, are now
on the list. I'll follow up on that thread with some considerations
related to testing the changes.

-- 
Andrea Bolognani / Red Hat / Virtualization


  reply	other threads:[~2023-02-24 19:05 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-21 19:24 [PATCH] qrap: Pass PCI device numbers to qemu in base 10, not in base 16 Stefano Brivio
2023-02-22  0:27 ` David Gibson
2023-02-22 10:40 ` Andrea Bolognani
2023-02-22 10:45   ` Stefano Brivio
2023-02-22 12:47     ` Andrea Bolognani
2023-02-22 13:02       ` Stefano Brivio
2023-02-22 22:27   ` David Gibson
2023-02-23 14:06     ` Andrea Bolognani
2023-02-24  7:14       ` Stefano Brivio
2023-02-24 19:05         ` Andrea Bolognani [this message]
2023-02-24 19:32           ` Stefano Brivio
2023-02-25  1:44             ` David Gibson

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='CABJz62M5x0B5z5xqdOr=5uGMCrjFjYR6WJJDTbBOa=ajBUs=cA@mail.gmail.com' \
    --to=abologna@redhat.com \
    --cc=alkaplan@redhat.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=passt-dev@passt.top \
    --cc=sbrivio@redhat.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.
Code repositories for project(s) associated with this public inbox

	https://passt.top/passt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).