The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@ziepe.ca>
To: Mostafa Saleh <smostafa@google.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev,
	iommu@lists.linux.dev, catalin.marinas@arm.com, will@kernel.org,
	maz@kernel.org, oliver.upton@linux.dev, joey.gouly@arm.com,
	suzuki.poulose@arm.com, yuzenghui@huawei.com, joro@8bytes.org,
	jean-philippe@linaro.org, mark.rutland@arm.com,
	qperret@google.com, tabba@google.com, vdonnefort@google.com,
	sebastianene@google.com, keirf@google.com
Subject: Re: [PATCH v6 05/25] iommu/arm-smmu-v3: Move IDR parsing to common functions
Date: Sat, 9 May 2026 20:34:43 -0300	[thread overview]
Message-ID: <20260509233443.GK9285@ziepe.ca> (raw)
In-Reply-To: <afxlufh3t3hRe4-G@google.com>

On Thu, May 07, 2026 at 10:13:13AM +0000, Mostafa Saleh wrote:
> > I was thinking more like
> > 
> > #define arm_smmu arm_pkvm_smmu
> > 
> > Before the pkvm compile of the shared code. 
> 
> Oh, so we rely on arm_pkvm_smmu and arm_smmu having the same field
> names and types?

Just for the shared code, yes.

For instance this patch would require the features field be present in
both, and then all you do is directly copy all the smmu->features
logic into the shared file and that's it.

> I don’t think that’s better for maintainability, I can look into it
> if Robin and Will are OK with that.

I think maintainability here means pkvm minimizes how much it changes
the code of the main driver.

Copying a bunch of functions into a shared .c file exactly as it is,
then compiling the shared file with some #ifdef'ery at is going to be
long term better than trying to mangle the whole thing to avoid using
any of the core types and not directly share the code, IMHO.

Like my tlbi point for instance, it is not a good idea to rip out a
little bit of the invalidation logic then open code a pkvm
version. Use the exact driver code. But to do this you need to pass an
arm_smmu through to to the pkvm specific queue management functions.

> > How does pkvm compilation work anyhow? Is it all rolled into a unique
> > link, or do you have to worry about symbol conflicts with the main
> > kernel?
> 
> All pkvm symbols are prefixed with __kvm_nvhe_ in the main kernel.

So automatically with objcopy or something like that during the build?

Jason

  reply	other threads:[~2026-05-09 23:34 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20260501111928.259252-1-smostafa@google.com>
     [not found] ` <20260501111928.259252-5-smostafa@google.com>
     [not found]   ` <20260501124143.GB6912@ziepe.ca>
2026-05-04 12:15     ` [PATCH v6 04/25] iommu/arm-smmu-v3: Move TLB range invalidation into common code Mostafa Saleh
2026-05-05 16:17       ` Jason Gunthorpe
2026-05-05 16:43         ` Mostafa Saleh
2026-05-06  9:53           ` Jason Gunthorpe
2026-05-07  9:40             ` Mostafa Saleh
2026-05-09 23:29               ` Jason Gunthorpe
2026-05-11 11:45                 ` Mostafa Saleh
2026-05-11 14:24                   ` Jason Gunthorpe
     [not found] ` <20260501111928.259252-6-smostafa@google.com>
     [not found]   ` <20260501124716.GD6912@ziepe.ca>
2026-05-04 12:16     ` [PATCH v6 05/25] iommu/arm-smmu-v3: Move IDR parsing to common functions Mostafa Saleh
2026-05-05 16:27       ` Jason Gunthorpe
2026-05-05 16:48         ` Mostafa Saleh
2026-05-06  9:56           ` Jason Gunthorpe
2026-05-07 10:13             ` Mostafa Saleh
2026-05-09 23:34               ` Jason Gunthorpe [this message]
2026-05-11 11:53                 ` Mostafa Saleh
2026-05-11 14:30                   ` Jason Gunthorpe
     [not found] ` <20260501111928.259252-7-smostafa@google.com>
     [not found]   ` <20260501122424.GA6912@ziepe.ca>
2026-05-04 12:19     ` [PATCH v6 06/25] iommu/io-pgtable-arm: Rework to use the iommu-pages API Mostafa Saleh
2026-05-09 23:21       ` Jason Gunthorpe
2026-05-11 11:16         ` Mostafa Saleh
2026-05-11 14:18           ` Jason Gunthorpe
     [not found] ` <20260501111928.259252-9-smostafa@google.com>
     [not found]   ` <20260501130006.GF6912@ziepe.ca>
2026-05-04 12:28     ` [PATCH v6 08/25] KVM: arm64: iommu: Shadow host stage-2 page table Mostafa Saleh
2026-05-09 23:27       ` Jason Gunthorpe
2026-05-11 11:24         ` Mostafa Saleh
2026-05-11 14:22           ` Jason Gunthorpe
     [not found] ` <20260501111928.259252-14-smostafa@google.com>
     [not found]   ` <20260501125148.GE6912@ziepe.ca>
2026-05-04 12:30     ` [PATCH v6 13/25] iommu/arm-smmu-v3-kvm: Probe SMMU HW Mostafa Saleh

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=20260509233443.GK9285@ziepe.ca \
    --to=jgg@ziepe.ca \
    --cc=catalin.marinas@arm.com \
    --cc=iommu@lists.linux.dev \
    --cc=jean-philippe@linaro.org \
    --cc=joey.gouly@arm.com \
    --cc=joro@8bytes.org \
    --cc=keirf@google.com \
    --cc=kvmarm@lists.linux.dev \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=maz@kernel.org \
    --cc=oliver.upton@linux.dev \
    --cc=qperret@google.com \
    --cc=sebastianene@google.com \
    --cc=smostafa@google.com \
    --cc=suzuki.poulose@arm.com \
    --cc=tabba@google.com \
    --cc=vdonnefort@google.com \
    --cc=will@kernel.org \
    --cc=yuzenghui@huawei.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