From: "Yu, Zhang" <yu.c.zhang@linux.intel.com>
To: Jike Song <jike.song@intel.com>, Chris Wilson <chris@chris-wilson.co.uk>
Cc: intel-gfx@lists.freedesktop.org, daniel.vetter@intel.com
Subject: Re: [PATCH 1/8] drm/i915: Introduce a PV INFO page structure for Intel GVT-g.
Date: Mon, 29 Sep 2014 20:08:13 +0800 [thread overview]
Message-ID: <54294BAD.7060105@linux.intel.com> (raw)
In-Reply-To: <54294638.9060103@intel.com>
On 9/29/2014 7:44 PM, Jike Song wrote:
> On 09/19/2014 03:25 PM, Chris Wilson wrote:
>> Now, given that these are simply trapped memory access, wouldn't it be
>> simply to have:
>>
>> struct i915_virtual_gpu {
>> struct vgt_if *if;
>> } vgu;
>>
>> static inline bool intel_vgpu_active(struct drm_i915_private *i915) {
>> return i915->vgpu.if; }
>>
>> then you have constructs like
>> void i915_check_vgpu(struct drm_i915_private *i915)
>> {
>> struct vgt_if *if;
>>
>> if = i915->regs + VGT_PVINFO_PAGE;
>> if (if->magic != VGT_MAGIC)
>> return;
>>
>> if (INTEL_VGT_IF_VERSION !=
>> INTEL_VGT_IF_VERSION_ENCODE(if->version_major,
>> if->version_minor))
>> return;
>>
>>
>> i915->vgpu.if = if;
>> }
>>
>> And later, for example:
>>
>> if (intel_vgpu_active(dev_priv))
>> dev_priv->num_fence_regs = dev_priv->vgpu.if->fence_num;
>>
>
> Hi Chris, sorry that I didn't understand you correctly. After discussion
> with Yu today, I realized that unfortunately, the vgt_if can't be
> dereferenced directly.
>
> There are several reasons:
>
> - dereferencing a MMIO address will be complained by sparse(1)
>
> - for Guest VM, such accesses will be trapped by hypervisor, and
> hence emulated correctly; However this doesn't work for Host(e.g.
> Domain 0 of Xen, the Linux host KVM resides in). For host, we used
> a proactive mechanism to redirect i915 MMIO accesses to vgt,
> the GPU device-model, for the sake of central management & sharing
> among VMs, including host.
>
> Given that, though technically your code works for Guest, but after the
> integration of host support of iGVT, we still need to use
> I915_READ/I915_WRITE
> then. The host patches is soon to posted for your review :)
>
> I should have realized that earlier, sorry!
>
Hi Chris,
Sorry, I also should have noticed this issue earlier.
To my understanding, the reason you proposed to use the "struct
vgt_if *if" in struct vgpu, to replace the previous vgpu_active, is to
simplify the mmio accesses in our patches. This suggestion works fine
from the guest & native point of view. However, just like Jike's mail
said, this change may not work for the host side, which also need to
visit the PVINFO page from time to time. So, could we still keep the
vgpu_active flag when detecting virtual gpu, and read the mmio registers
in PVINFO structure by I915_READ?
Thanks
Yu
>
>> -Chris
>>
>
> --
> Thanks,
> Jike
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
>
next prev parent reply other threads:[~2014-09-29 12:09 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-19 18:47 [PATCH 0/8] Add enlightenments for vGPU Jike Song
2014-09-19 18:47 ` [PATCH 1/8] drm/i915: Introduce a PV INFO page structure for Intel GVT-g Jike Song
2014-09-19 7:25 ` Chris Wilson
2014-09-19 10:23 ` Jike Song
2014-09-29 11:44 ` Jike Song
2014-09-29 12:08 ` Yu, Zhang [this message]
2014-09-29 12:16 ` Chris Wilson
2014-09-29 12:40 ` Jike Song
2014-10-10 8:23 ` Yu, Zhang
2014-09-19 16:02 ` Daniel Vetter
2014-09-19 16:07 ` Daniel Vetter
2014-09-19 21:39 ` Tian, Kevin
2014-09-19 18:47 ` [PATCH 2/8] drm/i915: Adds graphic address space ballooning logic Jike Song
2014-09-19 8:05 ` Chris Wilson
2014-09-19 16:04 ` Daniel Vetter
2014-09-19 18:21 ` Tian, Kevin
2014-09-19 20:00 ` Chris Wilson
2014-09-23 8:26 ` Daniel Vetter
2014-09-23 9:19 ` Chris Wilson
2014-09-23 11:25 ` Daniel Vetter
2014-09-24 12:35 ` Zhang, Yu
2014-09-24 13:21 ` Chris Wilson
2014-09-26 8:26 ` Zhang, Yu
2014-09-26 8:48 ` Chris Wilson
2014-09-26 8:46 ` Yu, Zhang
2014-09-24 13:23 ` Daniel Vetter
2014-09-19 18:47 ` [PATCH 3/8] drm/i915: Partition the fence registers for vgpu in i915 driver Jike Song
2014-09-19 18:47 ` [PATCH 4/8] drm/i915: Disable framebuffer compression for i915 driver in VM Jike Song
2014-09-19 8:07 ` Chris Wilson
2014-09-22 7:10 ` Jike Song
2014-09-22 11:28 ` Chris Wilson
2014-09-19 18:47 ` [PATCH 5/8] drm/i915: Add the display switch logic for vgpu in i915 driver Jike Song
2014-09-19 8:14 ` Chris Wilson
2014-09-19 11:37 ` Wang, Zhi A
2014-09-19 16:09 ` Daniel Vetter
2014-09-29 6:31 ` Zhiyuan Lv
2014-09-29 12:30 ` Daniel Vetter
2014-09-30 10:25 ` Zhiyuan Lv
2014-09-30 10:56 ` Daniel Vetter
2014-09-19 18:47 ` [PATCH 6/8] drm/i915: Disable power management for i915 driver in VM Jike Song
2014-09-19 8:16 ` Chris Wilson
2014-09-19 18:47 ` [PATCH 7/8] drm/i915: Create vgpu specific write MMIO to reduce traps Jike Song
2014-09-19 6:59 ` Chris Wilson
2014-09-19 7:43 ` Jike Song
2014-09-19 18:47 ` [PATCH 8/8] drm/i915: Support alias ppgtt in VM if ppgtt is enabled Jike Song
2014-09-19 8:25 ` Chris Wilson
2014-09-22 11:17 ` Jike Song
2014-09-22 11:27 ` Chris Wilson
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=54294BAD.7060105@linux.intel.com \
--to=yu.c.zhang@linux.intel.com \
--cc=chris@chris-wilson.co.uk \
--cc=daniel.vetter@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jike.song@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