Subject: [PATCH v2 03/40] iommu/sva: Manage process address spaces

From: [email-masked] (Kenneth Lee)
Date: Tue, 12 Jun 2018 00:32:10 +0800

On Fri, May 25, 2018 at 09:39:59AM +0100, Jonathan Cameron wrote:
> Date: Fri, 25 May 2018 09:39:59 +0100
> From: Jonathan Cameron <[email-masked]>
> To: Ilias Apalodimas <[email-masked]>
> CC: Jean-Philippe Brucker <[email-masked]>,
>  "xieyisheng1 at huawei.com" <[email-masked]>, "kvm at vger.kernel.org"
>  <[email-masked]>, "linux-pci at vger.kernel.org"
>  <[email-masked]>, "xuzaibo at huawei.com" <[email-masked]>,
>  Will Deacon <[email-masked]>, "okaya at codeaurora.org"
>  <[email-masked]>, "linux-mm at kvack.org" <[email-masked]>,
>  "yi.l.liu at intel.com" <[email-masked]>, "ashok.raj at intel.com"
>  <[email-masked]>, "tn at semihalf.com" <[email-masked]>,
>  "joro at 8bytes.org" <[email-masked]>, "robdclark at gmail.com"
>  <[email-masked]>, "bharatku at xilinx.com" <[email-masked]>,
>  "linux-acpi at vger.kernel.org" <[email-masked]>,
>  "liudongdong3 at huawei.com" <[email-masked]>, "rfranz at cavium.com"
>  <[email-masked]>, "devicetree at vger.kernel.org"
>  <[email-masked]>, "kevin.tian at intel.com"
>  <[email-masked]>, Jacob Pan <[email-masked]>,
>  "alex.williamson at redhat.com" <[email-masked]>,
>  "rgummal at xilinx.com" <[email-masked]>, "thunder.leizhen at huawei.com"
>  <[email-masked]>, "linux-arm-kernel at lists.infradead.org"
>  <[email-masked]>, "shunyong.yang at hxt-semitech.com"
>  <[email-masked]>, "dwmw2 at infradead.org"
>  <[email-masked]>, "liubo95 at huawei.com" <[email-masked]>,
>  "jcrouse at codeaurora.org" <[email-masked]>,
>  "iommu at lists.linux-foundation.org" <[email-masked]>,
>  Robin Murphy <[email-masked]>, "christian.koenig at amd.com"
>  <[email-masked]>, "nwatters at codeaurora.org"
>  <[email-masked]>, "baolu.lu at linux.intel.com"
>  <[email-masked]>, liguozhu at hisilicon.com,
>  kenneth-lee-2012 at foxmail.com
> Subject: Re: [PATCH v2 03/40] iommu/sva: Manage process address spaces
> Message-ID: <[email-masked]>
> Organization: Huawei
> X-Mailer: Claws Mail 3.15.0 (GTK+ 2.24.31; x86_64-w64-mingw32)
> 
> +CC Kenneth Lee
> 
> On Fri, 25 May 2018 09:33:11 +0300
> Ilias Apalodimas <[email-masked]> wrote:
> 
> > On Thu, May 24, 2018 at 04:04:39PM +0100, Jean-Philippe Brucker wrote:
> > > On 24/05/18 12:50, Ilias Apalodimas wrote:  
> > > >> Interesting, I hadn't thought about this use-case before. At first I
> > > >> thought you were talking about mdev devices assigned to VMs, but I think
> > > >> you're referring to mdevs assigned to userspace drivers instead? Out of
> > > >> curiosity, is it only theoretical or does someone actually need this?  
> > > > 
> > > > There has been some non upstreamed efforts to have mdev and produce userspace
> > > > drivers. Huawei is using it on what they call "wrapdrive" for crypto devices and
> > > > we did a proof of concept for ethernet interfaces. At the time we choose not to
> > > > involve the IOMMU for the reason you mentioned, but having it there would be
> > > > good.  
> > > 
> > > I'm guessing there were good reasons to do it that way but I wonder, is
> > > it not simpler to just have the kernel driver create a /dev/foo, with a
> > > standard ioctl/mmap/poll interface? Here VFIO adds a layer of
> > > indirection, and since the mediating driver has to implement these
> > > operations already, what is gained?  
> > The best reason i can come up with is "common code". You already have one API
> > doing that for you so we replicate it in a /dev file?
> > The mdev approach still needs extentions to support what we tried to do (i.e
> > mdev bus might need yo have access on iommu_ops), but as far as i undestand it's
> > a possible case.

Hi, Jean, Please allow me to share my understanding here:
https://zhuanlan.zhihu.com/p/35489035

The reason we do not use the /dev/foo scheme is that the devices to be
shared are programmable accelerators. We cannot fix up the kernel driver for
them.

> > > Thanks,
> > > Jean  

(p.s. I sent this mail on May 26 from my public email count. But it
seems the email server is blocked. I resent it from my company count until my
colleague told me just now. Sorry for inconvenience)

-- 
			-Kenneth(Hisilicon)