linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
To: Bob Liu <liubo95@huawei.com>, "Liu, Yi L" <yi.l.liu@intel.com>,
	Joerg Roedel <joro@8bytes.org>
Cc: "Lan, Tianyu" <tianyu.lan@intel.com>,
	"Liu, Yi L" <yi.l.liu@linux.intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Wysocki, Rafael J" <rafael.j.wysocki@intel.com>,
	LKML <linux-kernel@vger.kernel.org>,
	"iommu@lists.linux-foundation.org"
	<iommu@lists.linux-foundation.org>,
	David Woodhouse <dwmw2@infradead.org>
Subject: Re: [PATCH v2 03/16] iommu: introduce iommu invalidate API function
Date: Thu, 12 Oct 2017 11:26:50 +0100	[thread overview]
Message-ID: <d6a42daf-2530-5454-cec1-533a420ae326@arm.com> (raw)
In-Reply-To: <5cc5b52c-27da-7bb5-4968-e46ed6d44fc0@huawei.com>

On 12/10/17 11:07, Bob Liu wrote:
> On 2017/10/12 17:50, Liu, Yi L wrote:
>>
>>
>>> -----Original Message-----
>>> From: Bob Liu [mailto:liubo95@huawei.com]
>>> Sent: Thursday, October 12, 2017 5:39 PM
>>> To: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>; Joerg Roedel
>>> <joro@8bytes.org>; Liu, Yi L <yi.l.liu@intel.com>
>>> Cc: Lan, Tianyu <tianyu.lan@intel.com>; Liu, Yi L <yi.l.liu@linux.intel.com>; Greg
>>> Kroah-Hartman <gregkh@linuxfoundation.org>; Wysocki, Rafael J
>>> <rafael.j.wysocki@intel.com>; LKML <linux-kernel@vger.kernel.org>;
>>> iommu@lists.linux-foundation.org; David Woodhouse <dwmw2@infradead.org>
>>> Subject: Re: [PATCH v2 03/16] iommu: introduce iommu invalidate API function
>>>
>>> On 2017/10/11 20:48, Jean-Philippe Brucker wrote:
>>>> On 11/10/17 13:15, Joerg Roedel wrote:
>>>>> On Wed, Oct 11, 2017 at 11:54:52AM +0000, Liu, Yi L wrote:
>>>>>> I didn't quite get 'iovm' mean. Can you explain a bit about the idea?
>>>>>
>>>>> It's short for IO Virtual Memory, basically a replacement term for 'svm'
>>>>> that is not ambiguous (afaik) and not specific to Intel.
>>>>
>>>> I wonder if SVM originated in OpenCL first, rather than intel? That's
>>>> why I'm using it, but it is ambiguous. I'm not sure IOVM is precise
>>>> enough though, since the name could as well be used without shared
>>>> tables, for classical map/unmap and IOVAs. Kevin Tian suggested SVA
>>>> "Shared Virtual Addressing" last time, which is a little more clear
>>>> than SVM and isn't used elsewhere in the kernel either.
>>>>
>>>
>>> The process "vaddr" can be the same as "IOVA" by using the classical map/unmap
>>> way.
>>> This is also a kind of share virtual memory/address(except have to pin physical
>>> memory).
>>> How to distinguish these two different implementation of "share virtual
>>> memory/address"?
>>>
>> [Liu, Yi L] Not sure if I get your idea well. Process "vaddr" is owned by process and
>> maintained by mmu, while "IOVA" is maintained by iommu. So they are different in the
>> way they are maintained. Since process "vaddr" is maintained by mmu and then used by
>> iommu, so we call it shared virtual memory/address. This is how "shared" term comes.
> 
> I think from the view of application, the share virtual memory/address(or Nvidia-CUDA unify virtual address) is like this:
> 
> 1. vaddr = malloc(); e.g vaddr=0x10000
> 2. device can get the same data(accessing the same physical memory) through same address e.g 0x10000, and don't care about it's a vaddr or IOVA..
> (actually in Nvidia-cuda case, the data will be migrated between system-ddr and gpu-memory, but the vaddr is always the same for CPU and GPU).
> 
> So there are two ways(beside Nvidia way) to implement this requirement:
> 1)
> get the physical memory of vaddr;
> dma_map the paddr to iova;
> If we appoint iova = vaddr (e.g iova can be controlled by the user space driver through vfio DMA_MAP), 
> This can also be called share virtual address between CPU process and device..

This could probably be implemented by augmenting the iommu_map/unmap API
to take a PASID, as the mm subsystem isn't really involved and there isn't
any need for bind/unbind.

Maybe we should continue the conversation on the other thread though,
since this one is about sharing PASID tables with a guest.

Thanks,
Jean

> 2) 
> The second way is what this RFC did. 

  reply	other threads:[~2017-10-12 10:21 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-05 23:03 [PATCH v2 00/16] IOMMU driver support for SVM virtualization Jacob Pan
2017-10-05 23:03 ` [PATCH v2 01/16] iommu: introduce bind_pasid_table API function Jacob Pan
2017-10-10 13:14   ` Joerg Roedel
2017-10-10 21:32     ` Jacob Pan
2017-10-10 16:45   ` Jean-Philippe Brucker
2017-10-10 21:42     ` Jacob Pan
2017-10-11  9:17       ` Jean-Philippe Brucker
2017-10-05 23:03 ` [PATCH v2 02/16] iommu/vt-d: add bind_pasid_table function Jacob Pan
2017-10-10 13:21   ` Joerg Roedel
2017-10-12 11:12   ` Liu, Yi L
2017-10-12 17:38     ` Jacob Pan
2017-10-05 23:03 ` [PATCH v2 03/16] iommu: introduce iommu invalidate API function Jacob Pan
2017-10-10 13:35   ` Joerg Roedel
2017-10-10 22:09     ` Jacob Pan
2017-10-11  7:54       ` Liu, Yi L
2017-10-11  9:51         ` Joerg Roedel
2017-10-11 11:54           ` Liu, Yi L
2017-10-11 12:15             ` Joerg Roedel
2017-10-11 12:48               ` Jean-Philippe Brucker
2017-10-12  7:43                 ` Joerg Roedel
2017-10-12  9:38                 ` Bob Liu
2017-10-12  9:50                   ` Liu, Yi L
2017-10-12 10:07                     ` Bob Liu
2017-10-12 10:26                       ` Jean-Philippe Brucker [this message]
2017-10-12 10:33                       ` Liu, Yi L
2017-10-05 23:03 ` [PATCH v2 04/16] iommu/vt-d: support flushing more TLB types Jacob Pan
2017-10-26 13:02   ` [v2,04/16] " Lukoshkov, Maksim
2017-10-31 20:39     ` Jacob Pan
2017-10-05 23:03 ` [PATCH v2 05/16] iommu/vt-d: add iommu invalidate function Jacob Pan
2017-10-05 23:03 ` [PATCH v2 06/16] iommu/vt-d: move device_domain_info to header Jacob Pan
2017-10-05 23:03 ` [PATCH v2 07/16] iommu/vt-d: assign PFSID in device TLB invalidation Jacob Pan
2017-10-05 23:03 ` [PATCH v2 08/16] iommu: introduce device fault data Jacob Pan
2017-10-10 19:29   ` Jean-Philippe Brucker
2017-10-10 21:43     ` Jacob Pan
2017-10-20 10:07     ` Liu, Yi L
2017-11-06 19:01       ` Jean-Philippe Brucker
2017-11-07  8:40         ` Liu, Yi L
2017-11-07 11:38           ` Jean-Philippe Brucker
2017-11-09 19:36             ` Jacob Pan
2017-11-10 13:54               ` Jean-Philippe Brucker
2017-11-10 22:18                 ` Jacob Pan
2017-11-13 13:06                   ` Jean-Philippe Brucker
2017-11-13 16:57                     ` Jacob Pan
2017-11-13 17:23                       ` Jean-Philippe Brucker
2017-11-11  0:00                 ` Jacob Pan
2017-11-13 13:19                   ` Jean-Philippe Brucker
2017-11-13 16:12                     ` Jacob Pan
2017-10-05 23:03 ` [PATCH v2 09/16] driver core: add iommu device fault reporting data Jacob Pan
2017-10-06  5:43   ` Greg Kroah-Hartman
2017-10-06  7:11   ` Christoph Hellwig
2017-10-06  8:26     ` Greg Kroah-Hartman
2017-10-06  8:39     ` Joerg Roedel
2017-10-06 16:22       ` Jacob Pan
2017-10-05 23:03 ` [PATCH v2 10/16] iommu: introduce device fault report API Jacob Pan
2017-10-06  9:36   ` Jean-Philippe Brucker
2017-10-09 18:50     ` Jacob Pan
2017-10-10 13:40   ` Joerg Roedel
2017-10-11 17:21     ` Jacob Pan
2017-10-05 23:03 ` [PATCH v2 11/16] iommu/vt-d: use threaded irq for dmar_fault Jacob Pan
2017-10-05 23:03 ` [PATCH v2 12/16] iommu/vt-d: report unrecoverable device faults Jacob Pan
2017-10-05 23:03 ` [PATCH v2 13/16] iommu/intel-svm: notify page request to guest Jacob Pan
2017-10-05 23:03 ` [PATCH v2 14/16] iommu/intel-svm: replace dev ops with fault report API Jacob Pan
2017-10-05 23:03 ` [PATCH v2 15/16] iommu: introduce page response function Jacob Pan
2017-10-05 23:03 ` [PATCH v2 16/16] iommu/vt-d: add intel iommu " Jacob Pan

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=d6a42daf-2530-5454-cec1-533a420ae326@arm.com \
    --to=jean-philippe.brucker@arm.com \
    --cc=dwmw2@infradead.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=liubo95@huawei.com \
    --cc=rafael.j.wysocki@intel.com \
    --cc=tianyu.lan@intel.com \
    --cc=yi.l.liu@intel.com \
    --cc=yi.l.liu@linux.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;
as well as URLs for NNTP newsgroup(s).