All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nicolin Chen <nicolinc@nvidia.com>
To: Shameer Kolothum <skolothumtho@nvidia.com>
Cc: Zhangfei Gao <zhangfei.gao@linaro.org>,
	"qemu-arm@nongnu.org" <qemu-arm@nongnu.org>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"eric.auger@redhat.com" <eric.auger@redhat.com>,
	"peter.maydell@linaro.org" <peter.maydell@linaro.org>,
	Nathan Chen <nathanc@nvidia.com>, Matt Ochs <mochs@nvidia.com>,
	"jonathan.cameron@huawei.com" <jonathan.cameron@huawei.com>,
	"zhenzhong.duan@intel.com" <zhenzhong.duan@intel.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	"Krishnakant Jaju" <kjaju@nvidia.com>
Subject: Re: [RFC PATCH 4/4] hw/arm/smmuv3-accel: Read and propagate host vIOMMU events
Date: Thu, 13 Nov 2025 09:44:05 -0800	[thread overview]
Message-ID: <aRYY5eBnlw46nt2f@Asurada-Nvidia> (raw)
In-Reply-To: <CH3PR12MB75481A1E302DD0C6F5FC195EABCDA@CH3PR12MB7548.namprd12.prod.outlook.com>

On Thu, Nov 13, 2025 at 05:07:50AM -0800, Shameer Kolothum wrote:
> > On Wed, 5 Nov 2025 at 23:49, Shameer Kolothum
> > <skolothumtho@nvidia.com> wrote:
> > >
> > > Install an event handler on the vEVENTQ fd to read and propagate host
> > > generated vIOMMU events to the guest.
> > >
> > > The handler runs in QEMU’s main loop, using a non-blocking fd registered
> > > via qemu_set_fd_handler().
> > >
> > > Signed-off-by: Shameer Kolothum <skolothumtho@nvidia.com>
> > 
> > Still don't understand how to use this vevent.
> > Is it to replace the fault queue (IOMMU_FAULT_QUEUE_ALLOC)?
> 
> No. IIUC, IOMMU_FAULT_QUEUE_ALLOC is to handle I/O page faults
> for any HWPT capable of handling page faults/response. The QEMU
> SMMUv3 still don't support page fault handling.
> 
> The VEVENTQ, on the other hand, provides a way to report any
> other s1 events to Guest.
> 
> See how events are reported in  arm_smmu_handle_event():
> 
> if (event->stall)
>     ret = iommu_report_device_fault(master->dev, &fault_evt); //Page faults
> else if (master->vmaster && !event->s2)
>     ret = arm_vmaster_report_event(master->vmaster, evt); //This series handles this case.
> else
>     ret = -EOPNOTSUPP; 

Yes. We can say that FAULT_QUEUE is exclusively for PRI while the
vEVENTQ is for other types of HW events (or IRQs) related to the
guest stage-1. They can be used together.

> > And only find read, no write, only receive events but no response
> > (from guest kernel)?
> 
> Yes. And I am not sure what the long term plan is. We can still use
> IOMMU_FAULT_QUEUE_ALLOC for page fault handling or extend this 
> VEVENTQ  to have write() support for responses
> 
> To me, from an implementation perspective, both this FAULT and
> VEVENTQ look almost similar.
> 
> @Nicolin, any idea what's plan for page fault handling?

No. I think PRI should be done via FAULT_QUEUE.

> > By the way, can we use vevent in user space application? not in qemu
> > environment.
> 
> I didn't get that. Qemu is userspace. Or you meant just to receive any events
> from host SMMUv3 in user spacel? 

If user space application follows the iommufd uAPI like QEMU does,
it can. I am not sure about the use case though.

Nicolin


  reply	other threads:[~2025-11-13 17:44 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-05 15:46 [RFC PATCH 0/4] vEVENTQ support for accelerated SMMUv3 devices Shameer Kolothum
2025-11-05 15:46 ` [RFC PATCH 1/4] backends/iommufd: Introduce iommufd_backend_alloc_veventq Shameer Kolothum
2025-11-05 15:46 ` [RFC PATCH 2/4] hw/arm/smmuv3-accel: Allocate vEVENTQ for accelerated SMMUv3 devices Shameer Kolothum
2025-11-05 15:46 ` [RFC PATCH 3/4] hw/arm/smmuv3: Introduce a helper function for event propagation Shameer Kolothum
2025-11-05 15:46 ` [RFC PATCH 4/4] hw/arm/smmuv3-accel: Read and propagate host vIOMMU events Shameer Kolothum
2025-11-11 13:29   ` Jonathan Cameron via
2025-11-11 13:29     ` Jonathan Cameron via
2025-11-13 11:59   ` Zhangfei Gao
2025-11-13 13:07     ` Shameer Kolothum
2025-11-13 17:44       ` Nicolin Chen [this message]
2025-11-14  8:45         ` Zhangfei Gao
2025-11-14  8:55           ` Shameer Kolothum

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=aRYY5eBnlw46nt2f@Asurada-Nvidia \
    --to=nicolinc@nvidia.com \
    --cc=eric.auger@redhat.com \
    --cc=jgg@nvidia.com \
    --cc=jonathan.cameron@huawei.com \
    --cc=kjaju@nvidia.com \
    --cc=mochs@nvidia.com \
    --cc=nathanc@nvidia.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=skolothumtho@nvidia.com \
    --cc=zhangfei.gao@linaro.org \
    --cc=zhenzhong.duan@intel.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 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.