From: "Roger Pau Monné" <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Juergen Gross <jgross@suse.com>,
Stefano Stabellini <sstabellini@kernel.org>,
Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
linux-kernel@vger.kernel.org, xen-devel@lists.xenproject.org
Subject: Re: [PATCH 1/3] xen/pci: do not register devices outside of PCI segment scope
Date: Mon, 13 Jan 2025 11:13:46 +0100 [thread overview]
Message-ID: <Z4TnWiijgBK3fThI@macbook.local> (raw)
In-Reply-To: <28ad828a-0a9a-4637-bf55-59de2f731537@suse.com>
On Mon, Jan 13, 2025 at 08:17:23AM +0100, Jan Beulich wrote:
> On 10.01.2025 15:01, Roger Pau Monne wrote:
> > The PCI segment value is limited to 16 bits, however there are buses like VMD
> > that fake being part of the PCI topology by adding segment with a number
> > outside the scope of the PCI firmware specification range (>= 0x10000). The
> > MCFG ACPI Table "PCI Segment Group Number" field is defined as having a 16 bit
> > width.
> >
> > Attempting to register or manage those devices with Xen would result in errors
> > at best, or overlaps with existing devices living on the truncated equivalent
> > segment values.
> >
> > Skip notifying Xen about those devices.
>
> Hmm, is simply omitting the notification really all it takes? How would Xen
> manage MSI / MSI-X, for example, without knowing of the device? As per the
> BoF on the summit in Prague(?), I continue to think we need partial driver
> logic in Xen for VMD ...
The basic mode of operation of devices behind a VMD bridge is to
reference the interrupts of the bridge device in its MSI(-X) entries,
so the VMD bridge acts as a de-multiplexer and forwards the interrupts
to the device behind the VMD bridge. See vmd_alloc_irqs() (and
calling context) in the VMD driver for a reference about how this is
setup and operates. Note also that devices behind a VMD bridge
operate using a different MSI domain, that uses a custom
irq_compose_msi_msg hook.
Thanks, Roger.
next prev parent reply other threads:[~2025-01-13 10:13 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-10 14:01 [PATCH 0/3] xen: fix usage of devices behind a VMD bridge Roger Pau Monne
2025-01-10 14:01 ` [PATCH 1/3] xen/pci: do not register devices outside of PCI segment scope Roger Pau Monne
2025-01-10 22:21 ` Bjorn Helgaas
2025-01-13 7:20 ` Jan Beulich
2025-01-13 10:18 ` Roger Pau Monné
2025-01-13 23:29 ` Bjorn Helgaas
2025-01-13 7:17 ` Jan Beulich
2025-01-13 10:13 ` Roger Pau Monné [this message]
2025-01-10 14:01 ` [PATCH 2/3] vmd: disable MSI remapping bypass under Xen Roger Pau Monne
2025-01-10 22:25 ` Bjorn Helgaas
2025-01-11 5:02 ` Jonathan Derrick
2025-01-13 10:07 ` Roger Pau Monné
2025-01-13 10:03 ` Roger Pau Monné
2025-01-13 15:11 ` Keith Busch
2025-01-13 16:45 ` Roger Pau Monné
2025-01-13 16:53 ` Keith Busch
2025-01-14 11:03 ` Roger Pau Monné
2025-01-12 2:57 ` kernel test robot
2025-01-10 14:01 ` [PATCH 3/3] pci/msi: remove pci_msi_ignore_mask Roger Pau Monne
2025-01-10 22:30 ` Bjorn Helgaas
2025-01-13 10:25 ` Roger Pau Monné
2025-01-13 23:32 ` Bjorn Helgaas
2025-01-11 11:08 ` kernel test robot
2025-01-11 12:24 ` kernel test robot
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=Z4TnWiijgBK3fThI@macbook.local \
--to=roger.pau@citrix.com \
--cc=jbeulich@suse.com \
--cc=jgross@suse.com \
--cc=linux-kernel@vger.kernel.org \
--cc=oleksandr_tyshchenko@epam.com \
--cc=sstabellini@kernel.org \
--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