From: Jason Gunthorpe <jgg@nvidia.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: "Dey, Megha" <megha.dey@intel.com>,
linux-kernel@vger.kernel.org, "Raj, Ashok" <ashok.raj@intel.com>,
"Jiang, Dave" <dave.jiang@intel.com>,
"Tian, Kevin" <kevin.tian@intel.com>,
"Pan, Jacob jun" <jacob.jun.pan@intel.com>,
"Liu, Yi L" <yi.l.liu@intel.com>,
"Kumar, Sanjay K" <sanjay.k.kumar@intel.com>,
"Van De Ven, Arjan" <arjan.van.de.ven@intel.com>,
"Williams, Dan J" <dan.j.williams@intel.com>,
"Shankar, Ravi V" <ravi.v.shankar@intel.com>
Subject: Re: Programming PASID in IMS entries
Date: Wed, 7 Jul 2021 09:15:48 -0300 [thread overview]
Message-ID: <20210707121548.GA4459@nvidia.com> (raw)
In-Reply-To: <87k0m2qzgz.ffs@nanos.tec.linutronix.de>
On Wed, Jul 07, 2021 at 10:50:52AM +0200, Thomas Gleixner wrote:
> Megha,
>
> On Wed, Jul 07 2021 at 09:49, Megha Dey wrote:
> > Per your suggestions during the last meeting, we wanted to confirm the
> > sequence to program the PASID into the IMS entries:
> >
> > 1. Add a PASID member to struct msi_desc (Add as part of a union. Other
> > source-id's such as Jason's vm-id can be added to it)
>
> Yes. Though we also discussed storing the default PASID in struct device
> to begin with which is then copied to the msi_desc entries during
> allocation.
This seems like a pretty good idea, though it requires that the
device's IRQ code cast the struct device to some driver specific
subtype, like mdev in this case.
> > 2. Create an API which device drivers can call, to program the PASID
> > (PASID provided by the driver) on a per-irq basis. This API is to be
> > called after msi_domain_alloc_irqs and will write to the corresponding
> > msi_desc->pasid entry. (Assumption: For now, all devices will have the
> > same IMS format). for e.g:
> >
> > msi_desc_set_pasid (irq, pasid) {
> >
> > struct msi_desc *desc = irq_get_msi_desc(irq);
> >
> > desc->pasid = pasid;
> >
> > }
>
> That interface should be opaque probably with an u64 argument so it can
> be reused for Jason's VM-id. Jason?
Well, I certainly wouldn't put any IDXD specific words like PASID in
the general API. The comingling of PASID with the rest of the IRQ
registers is entirely a device specific choice.
Most likely something like mlx5 is going to want to associate a
pointer with the irq, and I believe it could use a struct device just
fine.
Jason
next prev parent reply other threads:[~2021-07-07 12:15 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <bd509e3d-f59d-1200-44ce-93cf9132bd8c@intel.com>
2021-07-07 8:50 ` Programming PASID in IMS entries Thomas Gleixner
2021-07-07 12:15 ` Jason Gunthorpe [this message]
2021-07-07 23:41 ` Tian, Kevin
2021-07-07 22:12 ` Raj, Ashok
2021-07-07 23:58 ` Jason Gunthorpe
2021-07-08 0:33 ` Raj, Ashok
2021-07-08 12:08 ` Jason Gunthorpe
2021-07-08 14:36 ` Raj, Ashok
2021-07-08 18:45 ` Thomas Gleixner
2021-07-08 21:33 ` Raj, Ashok
2021-07-08 13:00 ` Thomas Gleixner
2021-07-07 23:51 ` 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=20210707121548.GA4459@nvidia.com \
--to=jgg@nvidia.com \
--cc=arjan.van.de.ven@intel.com \
--cc=ashok.raj@intel.com \
--cc=dan.j.williams@intel.com \
--cc=dave.jiang@intel.com \
--cc=jacob.jun.pan@intel.com \
--cc=kevin.tian@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=megha.dey@intel.com \
--cc=ravi.v.shankar@intel.com \
--cc=sanjay.k.kumar@intel.com \
--cc=tglx@linutronix.de \
--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 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.