All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jike Song <jike.song@intel.com>
To: "Tian, Kevin" <kevin.tian@intel.com>
Cc: Kirti Wankhede <kwankhede@nvidia.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>,
	"kraxel@redhat.com" <kraxel@redhat.com>,
	"cjia@nvidia.com" <cjia@nvidia.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"Ruan, Shuai" <shuai.ruan@intel.com>,
	"Lv, Zhiyuan" <zhiyuan.lv@intel.com>
Subject: Re: [RFC PATCH v3 1/3] vGPU Core driver
Date: Fri, 06 May 2016 20:14:56 +0800	[thread overview]
Message-ID: <572C8AC0.4070602@intel.com> (raw)
In-Reply-To: <AADFC41AFE54684AB9EE6CBC0274A5D15F846EF9@SHSMSX101.ccr.corp.intel.com>

On 05/05/2016 05:06 PM, Tian, Kevin wrote:
>> From: Kirti Wankhede
>>
>>  >> + * @validate_map_request:	Validate remap pfn request
>>  >> + *				@vdev: vgpu device structure
>>  >> + *				@virtaddr: target user address to start at
>>  >> + *				@pfn: physical address of kernel memory, GPU
>>  >> + *				driver can change if required.
>>  >> + *				@size: size of map area, GPU driver can change
>>  >> + *				the size of map area if desired.
>>  >> + *				@prot: page protection flags for this mapping,
>>  >> + *				GPU driver can change, if required.
>>  >> + *				Returns integer: success (0) or error (< 0)
>>  >
>>  > Was not at all clear to me what this did until I got to patch 2, this
>>  > is actually providing the fault handling for mmap'ing a vGPU mmio BAR.
>>  > Needs a better name or better description.
>>  >
>>
>> If say VMM mmap whole BAR1 of GPU, say 128MB, so fault would occur when
>> BAR1 is tried to access then the size is calculated as:
>> req_size = vma->vm_end - virtaddr
Hi Kirti,

virtaddr is the faulted one, vma->vm_end the vaddr of the mmap-ed 128MB BAR1?

Would you elaborate why (vm_end - fault_addr) results the requested size? 


>> Since GPU is being shared by multiple vGPUs, GPU driver might not remap
>> whole BAR1 for only one vGPU device, so would prefer, say map one page
>> at a time. GPU driver returns PAGE_SIZE. This is used by
>> remap_pfn_range(). Now on next access to BAR1 other than that page, we
>> will again get a fault().
>> As the name says this call is to validate from GPU driver for the size
>> and prot of map area. GPU driver can change size and prot for this map area.

If I understand correctly, you are trying to share a physical BAR among
multiple vGPUs, by mapping a single pfn each time, when fault happens?

> 
> Currently we don't require such interface for Intel vGPU. Need to think about
> its rationale carefully (still not clear to me). Jike, do you have any thought on
> this?

We need the mmap method of vgpu_device to be implemented, but I was
expecting something else, like calling remap_pfn_range() directly from
the mmap.

>
> Thanks
> Kevin
>

--
Thanks,
Jike


WARNING: multiple messages have this Message-ID (diff)
From: Jike Song <jike.song@intel.com>
To: "Tian, Kevin" <kevin.tian@intel.com>
Cc: Kirti Wankhede <kwankhede@nvidia.com>,
	Alex Williamson <alex.williamson@redhat.com>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>,
	"kraxel@redhat.com" <kraxel@redhat.com>,
	"cjia@nvidia.com" <cjia@nvidia.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"Ruan, Shuai" <shuai.ruan@intel.com>,
	"Lv, Zhiyuan" <zhiyuan.lv@intel.com>
Subject: Re: [Qemu-devel] [RFC PATCH v3 1/3] vGPU Core driver
Date: Fri, 06 May 2016 20:14:56 +0800	[thread overview]
Message-ID: <572C8AC0.4070602@intel.com> (raw)
In-Reply-To: <AADFC41AFE54684AB9EE6CBC0274A5D15F846EF9@SHSMSX101.ccr.corp.intel.com>

On 05/05/2016 05:06 PM, Tian, Kevin wrote:
>> From: Kirti Wankhede
>>
>>  >> + * @validate_map_request:	Validate remap pfn request
>>  >> + *				@vdev: vgpu device structure
>>  >> + *				@virtaddr: target user address to start at
>>  >> + *				@pfn: physical address of kernel memory, GPU
>>  >> + *				driver can change if required.
>>  >> + *				@size: size of map area, GPU driver can change
>>  >> + *				the size of map area if desired.
>>  >> + *				@prot: page protection flags for this mapping,
>>  >> + *				GPU driver can change, if required.
>>  >> + *				Returns integer: success (0) or error (< 0)
>>  >
>>  > Was not at all clear to me what this did until I got to patch 2, this
>>  > is actually providing the fault handling for mmap'ing a vGPU mmio BAR.
>>  > Needs a better name or better description.
>>  >
>>
>> If say VMM mmap whole BAR1 of GPU, say 128MB, so fault would occur when
>> BAR1 is tried to access then the size is calculated as:
>> req_size = vma->vm_end - virtaddr
Hi Kirti,

virtaddr is the faulted one, vma->vm_end the vaddr of the mmap-ed 128MB BAR1?

Would you elaborate why (vm_end - fault_addr) results the requested size? 


>> Since GPU is being shared by multiple vGPUs, GPU driver might not remap
>> whole BAR1 for only one vGPU device, so would prefer, say map one page
>> at a time. GPU driver returns PAGE_SIZE. This is used by
>> remap_pfn_range(). Now on next access to BAR1 other than that page, we
>> will again get a fault().
>> As the name says this call is to validate from GPU driver for the size
>> and prot of map area. GPU driver can change size and prot for this map area.

If I understand correctly, you are trying to share a physical BAR among
multiple vGPUs, by mapping a single pfn each time, when fault happens?

> 
> Currently we don't require such interface for Intel vGPU. Need to think about
> its rationale carefully (still not clear to me). Jike, do you have any thought on
> this?

We need the mmap method of vgpu_device to be implemented, but I was
expecting something else, like calling remap_pfn_range() directly from
the mmap.

>
> Thanks
> Kevin
>

--
Thanks,
Jike

  parent reply	other threads:[~2016-05-06 12:15 UTC|newest]

Thread overview: 150+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-02 18:40 [RFC PATCH v3 0/3] Add vGPU support Kirti Wankhede
2016-05-02 18:40 ` [Qemu-devel] " Kirti Wankhede
2016-05-02 18:40 ` [RFC PATCH v3 1/3] vGPU Core driver Kirti Wankhede
2016-05-02 18:40   ` [Qemu-devel] " Kirti Wankhede
2016-05-03 22:43   ` Alex Williamson
2016-05-03 22:43     ` [Qemu-devel] " Alex Williamson
2016-05-04  2:45     ` Tian, Kevin
2016-05-04  2:45       ` [Qemu-devel] " Tian, Kevin
2016-05-04 16:57       ` Alex Williamson
2016-05-04 16:57         ` [Qemu-devel] " Alex Williamson
2016-05-05  8:58         ` Tian, Kevin
2016-05-05  8:58           ` [Qemu-devel] " Tian, Kevin
2016-05-04  2:58     ` Tian, Kevin
2016-05-04  2:58       ` [Qemu-devel] " Tian, Kevin
2016-05-12  8:22       ` Tian, Kevin
2016-05-12  8:22         ` [Qemu-devel] " Tian, Kevin
2016-05-04 13:31     ` Kirti Wankhede
2016-05-04 13:31       ` [Qemu-devel] " Kirti Wankhede
2016-05-05  9:06       ` Tian, Kevin
2016-05-05  9:06         ` [Qemu-devel] " Tian, Kevin
2016-05-05 10:44         ` Kirti Wankhede
2016-05-05 10:44           ` [Qemu-devel] " Kirti Wankhede
2016-05-05 12:07           ` Tian, Kevin
2016-05-05 12:07             ` [Qemu-devel] " Tian, Kevin
2016-05-05 12:57             ` Kirti Wankhede
2016-05-05 12:57               ` [Qemu-devel] " Kirti Wankhede
2016-05-11  6:37               ` Tian, Kevin
2016-05-11  6:37                 ` [Qemu-devel] " Tian, Kevin
2016-05-06 12:14         ` Jike Song [this message]
2016-05-06 12:14           ` Jike Song
2016-05-06 16:16           ` Kirti Wankhede
2016-05-06 16:16             ` [Qemu-devel] " Kirti Wankhede
2016-05-09 12:12             ` Jike Song
2016-05-09 12:12               ` [Qemu-devel] " Jike Song
2016-05-02 18:40 ` [RFC PATCH v3 2/3] VFIO driver for vGPU device Kirti Wankhede
2016-05-02 18:40   ` [Qemu-devel] " Kirti Wankhede
2016-05-03 22:43   ` Alex Williamson
2016-05-03 22:43     ` [Qemu-devel] " Alex Williamson
2016-05-04  3:23     ` Tian, Kevin
2016-05-04  3:23       ` [Qemu-devel] " Tian, Kevin
2016-05-04 17:06       ` Alex Williamson
2016-05-04 17:06         ` [Qemu-devel] " Alex Williamson
2016-05-04 21:14         ` Neo Jia
2016-05-04 21:14           ` [Qemu-devel] " Neo Jia
2016-05-05  4:42           ` Kirti Wankhede
2016-05-05  4:42             ` [Qemu-devel] " Kirti Wankhede
2016-05-05  9:24         ` Tian, Kevin
2016-05-05  9:24           ` [Qemu-devel] " Tian, Kevin
2016-05-05 20:27           ` Neo Jia
2016-05-05 20:27             ` [Qemu-devel] " Neo Jia
2016-05-11  6:45         ` Tian, Kevin
2016-05-11  6:45           ` [Qemu-devel] " Tian, Kevin
2016-05-11 20:10           ` Alex Williamson
2016-05-11 20:10             ` [Qemu-devel] " Alex Williamson
2016-05-12  0:59             ` Tian, Kevin
2016-05-12  0:59               ` [Qemu-devel] " Tian, Kevin
2016-05-04 16:25     ` Kirti Wankhede
2016-05-04 16:25       ` Kirti Wankhede
2016-05-02 18:40 ` [RFC PATCH v3 3/3] VFIO Type1 IOMMU change: to support with iommu and without iommu Kirti Wankhede
2016-05-02 18:40   ` [Qemu-devel] " Kirti Wankhede
2016-05-03 10:40   ` Jike Song
2016-05-03 10:40     ` [Qemu-devel] " Jike Song
2016-05-03 22:43   ` Alex Williamson
2016-05-03 22:43     ` [Qemu-devel] " Alex Williamson
2016-05-04  3:39     ` Tian, Kevin
2016-05-04  3:39       ` [Qemu-devel] " Tian, Kevin
2016-05-05  6:55     ` Jike Song
2016-05-05  6:55       ` [Qemu-devel] " Jike Song
2016-05-05  9:27       ` Tian, Kevin
2016-05-05  9:27         ` [Qemu-devel] " Tian, Kevin
2016-05-10  7:52         ` Jike Song
2016-05-10  7:52           ` [Qemu-devel] " Jike Song
2016-05-10 16:02           ` Neo Jia
2016-05-10 16:02             ` [Qemu-devel] " Neo Jia
2016-05-11  9:15             ` Jike Song
2016-05-11  9:15               ` [Qemu-devel] " Jike Song
2016-05-11 22:06               ` Alex Williamson
2016-05-11 22:06                 ` [Qemu-devel] " Alex Williamson
2016-05-12  4:11                 ` Jike Song
2016-05-12  4:11                   ` [Qemu-devel] " Jike Song
2016-05-12 19:49                   ` Neo Jia
2016-05-12 19:49                     ` [Qemu-devel] " Neo Jia
2016-05-13  2:41                     ` Tian, Kevin
2016-05-13  2:41                       ` [Qemu-devel] " Tian, Kevin
2016-05-13  6:22                       ` Jike Song
2016-05-13  6:22                         ` [Qemu-devel] " Jike Song
2016-05-13  6:43                         ` Neo Jia
2016-05-13  6:43                           ` [Qemu-devel] " Neo Jia
2016-05-13  7:30                           ` Jike Song
2016-05-13  7:30                             ` [Qemu-devel] " Jike Song
2016-05-13  7:42                             ` Neo Jia
2016-05-13  7:42                               ` [Qemu-devel] " Neo Jia
2016-05-13  7:45                               ` Tian, Kevin
2016-05-13  7:45                                 ` [Qemu-devel] " Tian, Kevin
2016-05-13  8:31                                 ` Neo Jia
2016-05-13  8:31                                   ` [Qemu-devel] " Neo Jia
2016-05-13  9:23                                   ` Jike Song
2016-05-13  9:23                                     ` [Qemu-devel] " Jike Song
2016-05-13 15:50                                     ` Neo Jia
2016-05-13 15:50                                       ` [Qemu-devel] " Neo Jia
2016-05-16  6:57                                       ` Jike Song
2016-05-16  6:57                                         ` [Qemu-devel] " Jike Song
2016-05-13  6:08                     ` Jike Song
2016-05-13  6:08                       ` [Qemu-devel] " Jike Song
2016-05-13  6:41                       ` Neo Jia
2016-05-13  6:41                         ` [Qemu-devel] " Neo Jia
2016-05-13  7:13                         ` Tian, Kevin
2016-05-13  7:13                           ` [Qemu-devel] " Tian, Kevin
2016-05-13  7:38                           ` Neo Jia
2016-05-13  7:38                             ` [Qemu-devel] " Neo Jia
2016-05-13  8:02                             ` Tian, Kevin
2016-05-13  8:02                               ` [Qemu-devel] " Tian, Kevin
2016-05-13  8:41                               ` Neo Jia
2016-05-13  8:41                                 ` [Qemu-devel] " Neo Jia
2016-05-12  8:00                 ` Tian, Kevin
2016-05-12  8:00                   ` [Qemu-devel] " Tian, Kevin
2016-05-12 19:05                   ` Alex Williamson
2016-05-12 19:05                     ` [Qemu-devel] " Alex Williamson
2016-05-12 20:12                     ` Neo Jia
2016-05-12 20:12                       ` [Qemu-devel] " Neo Jia
2016-05-13  9:46                       ` Jike Song
2016-05-13  9:46                         ` [Qemu-devel] " Jike Song
2016-05-13 15:48                         ` Neo Jia
2016-05-13 15:48                           ` [Qemu-devel] " Neo Jia
2016-05-16  2:27                           ` Jike Song
2016-05-16  2:27                             ` [Qemu-devel] " Jike Song
2016-05-13  3:55                     ` Tian, Kevin
2016-05-13  3:55                       ` [Qemu-devel] " Tian, Kevin
2016-05-13 16:16                       ` Alex Williamson
2016-05-13 16:16                         ` [Qemu-devel] " Alex Williamson
2016-05-13  7:10                     ` Dong Jia
2016-05-13  7:24                       ` Neo Jia
2016-05-13  8:39                         ` Dong Jia
2016-05-13  8:39                           ` [Qemu-devel] " Dong Jia
2016-05-13  9:05                           ` Neo Jia
2016-05-19  7:28                             ` Dong Jia
2016-05-20  3:21                               ` Tian, Kevin
2016-05-20  3:21                                 ` Tian, Kevin
2016-06-06  6:59                                 ` Dong Jia
2016-06-07  2:47                                   ` Tian, Kevin
2016-06-07  2:47                                     ` Tian, Kevin
2016-06-07  7:04                                     ` Dong Jia
2016-05-05  7:51     ` Kirti Wankhede
2016-05-05  7:51       ` [Qemu-devel] " Kirti Wankhede
2016-05-04  1:05 ` [RFC PATCH v3 0/3] Add vGPU support Tian, Kevin
2016-05-04  1:05   ` [Qemu-devel] " Tian, Kevin
2016-05-04  6:17   ` Neo Jia
2016-05-04  6:17     ` [Qemu-devel] " Neo Jia
2016-05-04 17:07     ` Alex Williamson
2016-05-04 17:07       ` [Qemu-devel] " Alex Williamson

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=572C8AC0.4070602@intel.com \
    --to=jike.song@intel.com \
    --cc=alex.williamson@redhat.com \
    --cc=cjia@nvidia.com \
    --cc=kevin.tian@intel.com \
    --cc=kraxel@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=kwankhede@nvidia.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=shuai.ruan@intel.com \
    --cc=zhiyuan.lv@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.