All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nicolin Chen <nicolinc@nvidia.com>
To: Shameer Kolothum <skolothumtho@nvidia.com>
Cc: <qemu-arm@nongnu.org>, <qemu-devel@nongnu.org>,
	<eric.auger@redhat.com>, <peter.maydell@linaro.org>,
	<clg@redhat.com>, <alex@shazbot.org>, <nathanc@nvidia.com>,
	<mochs@nvidia.com>, <jan@nvidia.com>, <jgg@nvidia.com>,
	 <zhenzhong.duan@intel.com>, <kjaju@nvidia.com>,
	<phrdina@redhat.com>
Subject: Re: [PATCH v7 19/31] hw/arm/tegra241-cmdqv: Route allocated VCMDQ Page0 accesses to the mmap'd host VINTF page0
Date: Thu, 11 Jun 2026 18:27:51 -0700	[thread overview]
Message-ID: <aitgl/dvBMAZCBFK@nvidia.com> (raw)
In-Reply-To: <20260609112552.378999-20-skolothumtho@nvidia.com>

On Tue, Jun 09, 2026 at 12:25:40PM +0100, Shameer Kolothum wrote:
> Introduce tegra241_cmdqv_vintf_lvcmdq_ptr() to route VCMDQ Page 0
> register accesses through the mmap'd host VINTF Page 0 backing once a
> hardware queue has been allocated for the VCMDQ.
> 
> The two QEMU-trapped Page 0 apertures (direct at 0x10000, VINTF at
> 0x30000) are hardware aliases of the same underlying registers. A
> subsequent patch installs the VINTF aperture as a RAM-device into
> guest MMIO; in this patch both remain QEMU-trapped.
> 
> The direct VCMDQ aperture stays QEMU-trapped (rather than aliased
> to the VINTF mmap) so that writes to an unallocated VCMDQ remain
> well-defined. The CMDQV architecture allows software to program a
> VCMDQ through the direct aperture without first allocating it to a
> VINTF; aliasing to the VINTF mmap would route those writes into
> unallocated logical slots where the hardware silently drops them.
> 
> A VCMDQ Page 0 access is served from one of two sources:
> 
>   - Cache-backed: no hw_queue is allocated for the VCMDQ
>     (HW_QUEUE_ALLOC has not yet succeeded). Both apertures use
>     QEMU's register cache.
> 
>   - HW-backed: HW_QUEUE_ALLOC has succeeded. Both apertures access
>     the registers directly through the mmap'd host VINTF Page 0.
> 
> tegra241_cmdqv_sync_vcmdq() copies any cached writes (CONS_INDX,
> PROD_INDX, CONFIG, GERRORN) into the mmap'd page on the cache-to-HW
> transition so the guest's earlier register state survives. Freeing a
> VCMDQ clears the cached Page0 registers.
> 
> Tested-by: Nicolin Chen <nicolinc@nvidia.com>
> Signed-off-by: Shameer Kolothum <skolothumtho@nvidia.com>
 
Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>


  parent reply	other threads:[~2026-06-12  1:28 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-09 11:25 [PATCH v7 00/31] hw/arm/virt: Introduce Tegra241 CMDQV support for accelerated SMMUv3 Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 01/31] backends/iommufd: Update iommufd_backend_get_device_info Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 02/31] backends/iommufd: Update iommufd_backend_alloc_viommu to allow user ptr Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 03/31] backends/iommufd: Introduce iommufd_backend_alloc_hw_queue Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 04/31] backends/iommufd: Introduce iommufd_backend_viommu_mmap Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 05/31] system/iommufd: Remove unused viommu pointer from IOMMUFDVeventq Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 06/31] hw/arm/smmuv3-accel: Introduce CMDQV ops interface Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 07/31] hw/arm/tegra241-cmdqv: Add Tegra241 CMDQV ops backend stub Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 08/31] hw/arm/smmuv3-accel: Wire CMDQV ops into accel lifecycle Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 09/31] hw/arm/virt: Use stored SMMUv3 device list for IORT build Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 10/31] hw/arm/tegra241-cmdqv: Probe host Tegra241 CMDQV support Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 11/31] hw/arm/tegra241-cmdqv: Implement CMDQV init Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 12/31] hw/arm/virt: Link SMMUv3 CMDQV resources to platform bus Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 13/31] hw/arm/tegra241-cmdqv: Implement CMDQV vIOMMU alloc/free Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 14/31] hw/arm/tegra241-cmdqv: mmap host VINTF Page0 for CMDQV Shameer Kolothum
2026-06-11 15:09   ` Eric Auger
2026-06-09 11:25 ` [PATCH v7 15/31] hw/arm/tegra241-cmdqv: Emulate CMDQ-V Config region Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 16/31] hw/arm/tegra241-cmdqv: Emulate VCMDQ register reads Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 17/31] hw/arm/tegra241-cmdqv: Emulate VCMDQ register writes Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 18/31] hw/arm/tegra241-cmdqv: Allocate HW VCMDQs once configured Shameer Kolothum
2026-06-11 15:16   ` Eric Auger
2026-06-09 11:25 ` [PATCH v7 19/31] hw/arm/tegra241-cmdqv: Route allocated VCMDQ Page0 accesses to the mmap'd host VINTF page0 Shameer Kolothum
2026-06-11 15:19   ` Eric Auger
2026-06-12  1:27   ` Nicolin Chen [this message]
2026-06-09 11:25 ` [PATCH v7 20/31] memory: Allow RAM device regions to skip IOMMU mapping Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 21/31] hw/arm/tegra241-cmdqv: Use mmap'd host VINTF page0 for virtual VINTF page0 Shameer Kolothum
2026-06-11 15:20   ` Eric Auger
2026-06-09 11:25 ` [PATCH v7 22/31] hw/arm/smmuv3-accel: Introduce common helper for veventq read Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 23/31] hw/arm/tegra241-cmdqv: Read and propagate Tegra241 CMDQV errors Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 24/31] hw/arm/tegra241-cmdqv: Initialize register state on reset Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 25/31] hw/arm/tegra241-cmdqv: Limit queue size based on backend page size Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 26/31] hw/arm/smmuv3: Add per-device identifier property Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 27/31] hw/arm/smmuv3-accel: Introduce helper to query CMDQV type Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 28/31] hw/arm/virt-acpi: Advertise Tegra241 CMDQV nodes in DSDT Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 29/31] hw/arm/smmuv3-accel: Enforce viommu association when CMDQV is active Shameer Kolothum
2026-06-09 11:25 ` [PATCH v7 30/31] hw/arm/tegra241-cmdqv: Document the CMDQV design and lifecycle Shameer Kolothum
2026-06-11 15:25   ` Eric Auger
2026-06-12  1:31   ` Nicolin Chen
2026-06-09 11:25 ` [PATCH v7 31/31] hw/arm/smmuv3: Add cmdqv property for SMMUv3 device Shameer Kolothum
2026-06-11 15:52 ` [PATCH v7 00/31] hw/arm/virt: Introduce Tegra241 CMDQV support for accelerated SMMUv3 Eric Auger

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=aitgl/dvBMAZCBFK@nvidia.com \
    --to=nicolinc@nvidia.com \
    --cc=alex@shazbot.org \
    --cc=clg@redhat.com \
    --cc=eric.auger@redhat.com \
    --cc=jan@nvidia.com \
    --cc=jgg@nvidia.com \
    --cc=kjaju@nvidia.com \
    --cc=mochs@nvidia.com \
    --cc=nathanc@nvidia.com \
    --cc=peter.maydell@linaro.org \
    --cc=phrdina@redhat.com \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=skolothumtho@nvidia.com \
    --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.