All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Roger Pau Monné" <roger.pau@citrix.com>
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: xen-devel@lists.xenproject.org, "Wei Liu" <wl@xen.org>,
	"Juergen Gross" <jgross@suse.com>,
	"Marek Marczykowski-Górecki" <marmarek@invisiblethingslab.com>,
	"Jan Beulich" <jbeulich@suse.com>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v2] x86/hvm: don't expose XENFEAT_hvm_pirqs by default
Date: Fri, 12 Jan 2024 16:08:17 +0100	[thread overview]
Message-ID: <ZaFV4TY0oLTDNV_J@macbook> (raw)
In-Reply-To: <7e325111-5b36-4b31-aed8-f5f11390b504@perard>

On Fri, Jan 12, 2024 at 02:40:35PM +0000, Anthony PERARD wrote:
> On Wed, Jan 10, 2024 at 01:42:02PM +0100, Roger Pau Monne wrote:
> > The HVM pirq feature allows routing interrupts from both physical and emulated
> > devices over event channels, this was done a performance improvement.  However
> > its usage is fully undocumented, and the only reference implementation is in
> > Linux.  It defeats the purpose of local APIC hardware virtualization, because
> > when using it interrupts avoid the usage of the local APIC altogether.
> > 
> > It has also been reported to not work properly with certain devices, at least
> > when using some AMD GPUs Linux attempts to route interrupts over event
> > channels, but Xen doesn't correctly detect such routing, which leads to the
> > hypervisor complaining with:
> > 
> > (XEN) d15v0: Unsupported MSI delivery mode 7 for Dom15
> > 
> > When MSIs are attempted to be routed over event channels the entry delivery
> > mode is set to ExtINT, but Xen doesn't detect such routing and attempts to
> > inject the interrupt following the native MSI path, and the ExtINT delivery
> > mode is not supported.
> > 
> > Disable HVM PIRQs by default and provide a per-domain option in xl.cfg to
> > enable such feature.  Also for backwards compatibility keep the feature enabled
> > for any resumed domains that don't have an explicit selection.
> > 
> > Note that the only user of the feature (Linux) is also able to handle native
> > interrupts fine, as the feature was already not used if Xen reported local APIC
> > hardware virtualization active.
> > 
> > Link: https://github.com/QubesOS/qubes-issues/issues/7971
> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> 
> Should we have an entry in the changelog about this patch?

Yes, indeed.  I always forget.  Will send v3 on Monday with you RB and
the changelog.

> With the patch, we will need to regenerate the golang binding, at least
> on commit.
> 
> Otherwise, patch looks fine:
> Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>

Thanks!


      reply	other threads:[~2024-01-12 15:08 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-10 12:42 [PATCH v2] x86/hvm: don't expose XENFEAT_hvm_pirqs by default Roger Pau Monne
2024-01-12 14:40 ` Anthony PERARD
2024-01-12 15:08   ` Roger Pau Monné [this message]

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=ZaFV4TY0oLTDNV_J@macbook \
    --to=roger.pau@citrix.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=anthony.perard@citrix.com \
    --cc=jbeulich@suse.com \
    --cc=jgross@suse.com \
    --cc=marmarek@invisiblethingslab.com \
    --cc=wl@xen.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 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.