From: Jason Gunthorpe <jgg@ziepe.ca>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org,
quic_bqiang@quicinc.com, kvalo@kernel.org, prestwoj@gmail.com,
linux-wireless@vger.kernel.org, ath11k@lists.infradead.org,
dwmw2@infradead.org, iommu@lists.linux.dev, kernel@quicinc.com,
johannes@sipsolutions.net, jtornosm@redhat.com
Subject: Re: [PATCH RFC/RFT] vfio/pci-quirks: Quirk for ath wireless
Date: Thu, 15 Aug 2024 14:19:35 -0300 [thread overview]
Message-ID: <20240815171935.GO3468552@ziepe.ca> (raw)
In-Reply-To: <20240815105905.19d69576.alex.williamson@redhat.com>
On Thu, Aug 15, 2024 at 10:59:05AM -0600, Alex Williamson wrote:
> > This is probably the only way to approach this, trap and emulate the
> > places in the device that program additional interrupt sources and do
> > a full MSI-like flow to set them up in the kernel.
>
> Your last sentence here seems to agree with this approach, but
> everything else suggests disapproval, so I don't know where you're
> going here.
Trapping and emulating is fine.
My concern is really only about skipping SET_IRQ.
That works because of the assumption that the IMS sources are going to
re-use addr/data pairs setup in the MSI CAP.
That assumption is frail, and won't work at all under the proper IMS
support Linux now has.
I really don't want to go down the road and have someone tell Thomas
he can't convert the Linux driver to use irq_domain IMS because it
will break this stuff here.
> I have no specs for this device, nor any involvement from the device
> vendor, so the idea of creating a vfio-pci variant driver to setup an
> irq_domain and augment a device specific SET_IRQs ioctls not only sounds
> tremendously more complicated (host and VMM), it's simply not possible
> with the knowledge we have at hand.
It seems like you have reverse engineered alot of the necessary
information though??
Maybe there is a more generic approach than a variant driver. If you
wanted to use IMS from userspace generically you could imagine some
kind of IMS focused "SET_IRQ" in generic VFIO. Where we'd create the
needed irq_domains and pass the addr/data pair back to userspace?
> I observe that the device configures MSI vectors and then writes that
> same vector address/data elsewhere into the device. Whether the device
> can trigger those vectors based only on the MSI capability programming
> and a secondary source piggybacks on those vectors or if this is just a
> hack by Qualcomm to use an MSI capability to acquire some vectors which
> are exclusively used by the secondary hardware, I have no idea.
Well at least that should be testable - but it seems crazy if the
device has registers for an addr/data pair and then somehow doesn't
use the values that get put in them??
Copying from the MSI is almost certainly a SW hack because IMS support
has never really existed in an OS until now. I think your guess for
why it is like this is pretty good.
> I do not believe that introducing a vfio device feature that disables
> virtualization of the MSI address/data _only_ at the vfio interface
> (not to a QEMU VM) provides some implicit support of this device
> behavior. These values are already available to a privileged user in
> the host and the same is available for an MSI-X use case by directly
> reading the MSI-X vector table.
To be clear, I'm not really worried about showing the data to
userspace.
Userspace just shouldn't be using it to implement an IMS technique!
Jason
prev parent reply other threads:[~2024-08-15 17:19 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-08 13:17 ath11k and vfio-pci support James Prestwood
2024-01-10 9:00 ` Kalle Valo
2024-01-10 13:04 ` James Prestwood
2024-01-10 13:49 ` Kalle Valo
2024-01-10 14:55 ` James Prestwood
2024-01-11 3:51 ` Baochen Qiang
2024-01-11 8:16 ` Kalle Valo
2024-01-11 12:48 ` James Prestwood
2024-01-11 13:11 ` Kalle Valo
2024-01-11 13:38 ` James Prestwood
2024-01-12 2:04 ` Baochen Qiang
2024-01-12 12:47 ` James Prestwood
2024-01-14 12:37 ` Baochen Qiang
2024-01-14 14:36 ` Kalle Valo
2024-01-15 17:46 ` Alex Williamson
2024-01-16 10:08 ` Baochen Qiang
2024-01-16 10:41 ` David Woodhouse
2024-01-16 15:29 ` Jason Gunthorpe
2024-01-16 18:28 ` Alex Williamson
2024-01-16 21:10 ` Jeff Johnson
2024-01-17 5:47 ` Baochen Qiang
2024-03-21 19:14 ` Johannes Berg
2024-01-16 13:05 ` James Prestwood
2024-01-17 5:26 ` Baochen Qiang
2024-01-17 13:20 ` James Prestwood
2024-01-17 13:43 ` Kalle Valo
2024-01-17 14:25 ` James Prestwood
2024-01-18 2:09 ` Baochen Qiang
2024-01-19 17:52 ` James Prestwood
2024-01-19 17:57 ` Kalle Valo
2024-01-19 18:07 ` James Prestwood
2024-01-26 18:20 ` James Prestwood
2024-01-27 4:31 ` Baochen Qiang
2024-08-12 16:59 ` [PATCH RFC/RFT] vfio/pci: Create feature to disable MSI virtualization Alex Williamson
2024-08-13 16:30 ` Jason Gunthorpe
2024-08-13 17:30 ` Thomas Gleixner
2024-08-13 23:39 ` Jason Gunthorpe
2024-12-13 9:10 ` David Woodhouse
2025-01-03 14:31 ` Jason Gunthorpe
2025-01-03 14:47 ` David Woodhouse
2025-01-03 15:19 ` Jason Gunthorpe
2024-08-13 21:14 ` Alex Williamson
2024-08-13 23:16 ` Jason Gunthorpe
2024-08-14 14:55 ` Alex Williamson
2024-08-14 15:20 ` Jason Gunthorpe
2024-08-12 17:00 ` [PATCH RFC/RFT] vfio/pci-quirks: Quirk for ath wireless Alex Williamson
2024-08-13 16:43 ` Jason Gunthorpe
2024-08-13 21:03 ` Alex Williamson
2024-08-13 23:37 ` Jason Gunthorpe
2024-08-15 16:59 ` Alex Williamson
2024-08-15 17:19 ` Jason Gunthorpe [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=20240815171935.GO3468552@ziepe.ca \
--to=jgg@ziepe.ca \
--cc=alex.williamson@redhat.com \
--cc=ath11k@lists.infradead.org \
--cc=dwmw2@infradead.org \
--cc=iommu@lists.linux.dev \
--cc=johannes@sipsolutions.net \
--cc=jtornosm@redhat.com \
--cc=kernel@quicinc.com \
--cc=kvalo@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=prestwoj@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=quic_bqiang@quicinc.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.
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 NNTP newsgroup(s).