Linux virtualization list
 help / color / mirror / Atom feed
From: Jean-Philippe Brucker <jean-philippe@linaro.org>
To: Vivek Kumar Gautam <vivek.gautam@arm.com>
Cc: jacob.jun.pan@linux.intel.com, mst@redhat.com, joro@8bytes.org,
	will.deacon@arm.com, linux-kernel@vger.kernel.org,
	shameerali.kolothum.thodi@huawei.com,
	virtualization@lists.linux-foundation.org, eric.auger@redhat.com,
	iommu@lists.linux-foundation.org, yi.l.liu@intel.com,
	lorenzo.pieralisi@arm.com, robin.murphy@arm.com,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH RFC v1 13/15] iommu/virtio: Attach Arm PASID tables when available
Date: Mon, 29 Mar 2021 18:21:59 +0200	[thread overview]
Message-ID: <YGH+pyO8bEKNhhGl@myrica> (raw)
In-Reply-To: <ee88590b-513e-7821-ab52-18d496ad90dc@arm.com>

On Fri, Mar 12, 2021 at 06:59:17PM +0530, Vivek Kumar Gautam wrote:
> > > +	/* XXX HACK: set feature bit ARM_SMMU_FEAT_2_LVL_CDTAB */
> > > +	pst_cfg->vendor.cfg.feat_flag |= (1 << 1);
> > 
> > Oh right, this flag is missing. I'll add
> > 
> >    #define VIRTIO_IOMMU_PST_ARM_SMMU3_F_CD2L (1ULL << 1)
> > 
> > to the spec.
> 
> Regarding this Eric pointed out [1] in my other patch about the scalability
> of the approach where we keep adding flags in 'iommu_nesting_info'
> corresponding to the arm-smmu-v3 capabilities. I guess the same goes to
> these flags in virtio.
> May be the 'iommu_nesting_info' can have a bitmap with the caps for vendor
> specific features, and here we can add the related flags?

Something like that, but I'd keep separate arch-specific structs. Vt-d
reports the capability registers directly through iommu_nesting_info [2].
We could do the same for Arm, copy sanitized values of IDR0..5 into
struct iommu_nesting_info_arm_smmuv3.

I've avoided doing that for virtio-iommu because every field needs a
description in the spec. So where possible I used generic properties that
apply to any architecture, such as page, PASID and address size. What's
left is the minimum arch-specific information to get nested translation
going, leaving out a lot of properties such as big-endian and 32-bit,
which can be added later if needed. The Arm specific properties are split
into page table and pasid table information. Page table info should work
for both SMMUv2 and v3 (where they correspond to an SMMU_IDRx field that
constrains a context descriptor field.) I should move BTM in there since
it's supported by SMMUv2.

Thanks,
Jean

[2] https://lore.kernel.org/linux-iommu/20210302203545.436623-11-yi.l.liu@intel.com/
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

  parent reply	other threads:[~2021-03-29 16:22 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20210115121342.15093-1-vivek.gautam@arm.com>
2021-01-19  9:03 ` [PATCH RFC v1 00/15] iommu/virtio: Nested stage support with Arm Auger Eric
     [not found]   ` <ba4c30b9-1f31-f6b2-e69a-7bb71ce74d57@arm.com>
2021-01-25  8:43     ` Auger Eric
     [not found] ` <20210115121342.15093-3-vivek.gautam@arm.com>
2021-03-03 17:11   ` [PATCH RFC v1 02/15] iommu: Add a simple PASID table library Jean-Philippe Brucker
     [not found]     ` <cd030006-2701-206d-5fca-e0e7afff316a@arm.com>
2021-03-29 16:25       ` Jean-Philippe Brucker
     [not found] ` <20210115121342.15093-5-vivek.gautam@arm.com>
2021-03-03 17:14   ` [PATCH RFC v1 04/15] iommu/arm-smmu-v3: Update CD base address info for user-space Jean-Philippe Brucker
     [not found] ` <20210115121342.15093-6-vivek.gautam@arm.com>
2021-03-03 17:15   ` [PATCH RFC v1 05/15] iommu/arm-smmu-v3: Set sync op from consumer driver of cd-lib Jean-Philippe Brucker
     [not found] ` <20210115121342.15093-7-vivek.gautam@arm.com>
2021-03-03 17:17   ` [PATCH RFC v1 06/15] iommu/virtio: Add headers for table format probing Jean-Philippe Brucker
     [not found] ` <20210115121342.15093-9-vivek.gautam@arm.com>
2021-03-03 17:18   ` [PATCH RFC v1 08/15] iommu: Add asid_bits to arm smmu-v3 stage1 table info Jean-Philippe Brucker
     [not found] ` <20210115121342.15093-10-vivek.gautam@arm.com>
2021-03-03 17:21   ` [PATCH RFC v1 09/15] iommu/virtio: Update table format probing header Jean-Philippe Brucker
     [not found] ` <20210115121342.15093-14-vivek.gautam@arm.com>
2021-03-03 17:25   ` [PATCH RFC v1 13/15] iommu/virtio: Attach Arm PASID tables when available Jean-Philippe Brucker
     [not found]     ` <ee88590b-513e-7821-ab52-18d496ad90dc@arm.com>
2021-03-29 16:21       ` Jean-Philippe Brucker [this message]
     [not found] ` <20210115121342.15093-16-vivek.gautam@arm.com>
2021-03-03 17:25   ` [PATCH RFC v1 15/15] iommu/virtio: Update fault type and reason info for viommu fault Jean-Philippe Brucker
     [not found]     ` <d8a81406-12c6-a5e1-7297-49c1a0a800ab@arm.com>
2021-03-29 16:23       ` Jean-Philippe Brucker
     [not found] ` <20210115121342.15093-13-vivek.gautam@arm.com>
     [not found]   ` <20210303102848.5d879f0e@jacob-builder>
2021-03-04  5:58     ` [PATCH RFC v1 12/15] iommu/virtio: Add support for INVALIDATE request Tian, Kevin

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=YGH+pyO8bEKNhhGl@myrica \
    --to=jean-philippe@linaro.org \
    --cc=eric.auger@redhat.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=jacob.jun.pan@linux.intel.com \
    --cc=joro@8bytes.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=mst@redhat.com \
    --cc=robin.murphy@arm.com \
    --cc=shameerali.kolothum.thodi@huawei.com \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=vivek.gautam@arm.com \
    --cc=will.deacon@arm.com \
    --cc=yi.l.liu@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox