All of lore.kernel.org
 help / color / mirror / Atom feed
From: Xiaolin Zhang <xiaolin.zhang@intel.com>
To: intel-gvt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org
Cc: zhenyu.z.wang@intel.com, hang.yuan@intel.com,
	joonas.lahtinen@intel.com, fei.jiang@intel.com,
	zhiyuan.lv@intel.com
Subject: [RFC 06/10] drm/i915/gvt: GVTg handle enable_pvmmio PVINFO register
Date: Thu, 27 Sep 2018 12:37:51 -0400	[thread overview]
Message-ID: <1538066275-52932-7-git-send-email-xiaolin.zhang@intel.com> (raw)
In-Reply-To: <1538066275-52932-1-git-send-email-xiaolin.zhang@intel.com>

implement enable_pvmmio PVINFO register handler in GVTg to
control different level pvmmio optimization within guest.

Signed-off-by: Xiaolin Zhang <xiaolin.zhang@intel.com>
---
 drivers/gpu/drm/i915/gvt/handlers.c | 10 ++++++++++
 drivers/gpu/drm/i915/gvt/vgpu.c     |  6 ++++++
 2 files changed, 16 insertions(+)

diff --git a/drivers/gpu/drm/i915/gvt/handlers.c b/drivers/gpu/drm/i915/gvt/handlers.c
index d262587..36171e6 100644
--- a/drivers/gpu/drm/i915/gvt/handlers.c
+++ b/drivers/gpu/drm/i915/gvt/handlers.c
@@ -1241,6 +1241,16 @@ static int pvinfo_mmio_write(struct intel_vgpu *vgpu, unsigned int offset,
 	case _vgtif_reg(g2v_notify):
 		ret = handle_g2v_notification(vgpu, data);
 		break;
+	case _vgtif_reg(enable_pvmmio):
+		if (i915_modparams.enable_pvmmio) {
+			vgpu_vreg(vgpu, offset) = data &
+				i915_modparams.enable_pvmmio;
+			DRM_INFO("vgpu id=%d pvmmio=0x%x\n",
+				vgpu->id, VGPU_PVMMIO(vgpu));
+		} else {
+			vgpu_vreg(vgpu, offset) = 0;
+		}
+		break;
 	/* add xhot and yhot to handled list to avoid error log */
 	case _vgtif_reg(cursor_x_hot):
 	case _vgtif_reg(cursor_y_hot):
diff --git a/drivers/gpu/drm/i915/gvt/vgpu.c b/drivers/gpu/drm/i915/gvt/vgpu.c
index a4e8e3c..1aed197 100644
--- a/drivers/gpu/drm/i915/gvt/vgpu.c
+++ b/drivers/gpu/drm/i915/gvt/vgpu.c
@@ -62,6 +62,8 @@ void populate_pvinfo_page(struct intel_vgpu *vgpu)
 	vgpu_vreg_t(vgpu, vgtif_reg(cursor_x_hot)) = UINT_MAX;
 	vgpu_vreg_t(vgpu, vgtif_reg(cursor_y_hot)) = UINT_MAX;
 
+	vgpu_vreg_t(vgpu, vgtif_reg(enable_pvmmio)) = 0;
+
 	gvt_dbg_core("Populate PVINFO PAGE for vGPU %d\n", vgpu->id);
 	gvt_dbg_core("aperture base [GMADR] 0x%llx size 0x%llx\n",
 		vgpu_aperture_gmadr_base(vgpu), vgpu_aperture_sz(vgpu));
@@ -490,6 +492,8 @@ struct intel_vgpu *intel_gvt_create_vgpu(struct intel_gvt *gvt,
 	return vgpu;
 }
 
+#define _vgtif_reg(x) \
+	(VGT_PVINFO_PAGE + offsetof(struct vgt_if, x))
 /**
  * intel_gvt_reset_vgpu_locked - reset a virtual GPU by DMLR or GT reset
  * @vgpu: virtual GPU
@@ -524,6 +528,7 @@ void intel_gvt_reset_vgpu_locked(struct intel_vgpu *vgpu, bool dmlr,
 	struct intel_gvt *gvt = vgpu->gvt;
 	struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler;
 	unsigned int resetting_eng = dmlr ? ALL_ENGINES : engine_mask;
+	int enable_pvmmio = vgpu_vreg(vgpu, _vgtif_reg(enable_pvmmio));
 
 	gvt_dbg_core("------------------------------------------\n");
 	gvt_dbg_core("resseting vgpu%d, dmlr %d, engine_mask %08x\n",
@@ -555,6 +560,7 @@ void intel_gvt_reset_vgpu_locked(struct intel_vgpu *vgpu, bool dmlr,
 
 		intel_vgpu_reset_mmio(vgpu, dmlr);
 		populate_pvinfo_page(vgpu);
+		vgpu_vreg(vgpu, _vgtif_reg(enable_pvmmio)) = enable_pvmmio;
 		intel_vgpu_reset_display(vgpu);
 
 		if (dmlr) {
-- 
1.8.3.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2018-09-27 16:37 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-27 16:37 [RFC 00/10] i915 pvmmio to improve GVTg performance Xiaolin Zhang
2018-09-27  7:20 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2018-09-27  7:24 ` ✗ Fi.CI.SPARSE: " Patchwork
2018-09-27  7:43 ` ✓ Fi.CI.BAT: success " Patchwork
2018-09-27 10:25 ` ✓ Fi.CI.IGT: " Patchwork
2018-09-27 11:07 ` [RFC 00/10] " Joonas Lahtinen
2018-09-28  6:11   ` Zhang, Xiaolin
2018-09-27 16:37 ` [RFC 01/10] drm/i915/gvt: add module parameter enable_pvmmio Xiaolin Zhang
2018-09-27  7:16   ` Chris Wilson
2018-09-27 11:03   ` Joonas Lahtinen
2018-09-28  6:09     ` Zhang, Xiaolin
2018-10-09  2:26       ` Zhenyu Wang
2018-10-10  6:48         ` Zhang, Xiaolin
2018-09-27 16:37 ` [RFC 02/10] drm/i915/gvt: get ready of memory for pvmmio Xiaolin Zhang
2018-09-27  7:17   ` Chris Wilson
2018-09-28  7:31     ` Zhang, Xiaolin
2018-10-09  2:31   ` Zhenyu Wang
2018-09-27 16:37 ` [RFC 03/10] drm/i915/gvt: context submission pvmmio optimization Xiaolin Zhang
2018-09-27  7:19   ` Chris Wilson
2018-09-28  5:31     ` Zhang, Xiaolin
2018-09-27 11:13   ` Joonas Lahtinen
2018-09-27 16:37 ` [RFC 04/10] drm/i915/gvt: master irq " Xiaolin Zhang
2018-09-27 16:37 ` [RFC 05/10] drm/i915/gvt: ppgtt update " Xiaolin Zhang
2018-09-27 16:37 ` Xiaolin Zhang [this message]
2018-09-27 16:37 ` [RFC 07/10] drm/i915/gvt: GVTg read_shared_page implementation Xiaolin Zhang
2018-09-27 16:37 ` [RFC 08/10] drm/i915/gvt: GVTg support context submission pvmmio optimization Xiaolin Zhang
2018-09-27 16:37 ` [RFC 09/10] drm/i915/gvt: GVTg support master irq " Xiaolin Zhang
2018-09-27 16:37 ` [RFC 10/10] drm/i915/gvt: GVTg support ppgtt " Xiaolin Zhang

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=1538066275-52932-7-git-send-email-xiaolin.zhang@intel.com \
    --to=xiaolin.zhang@intel.com \
    --cc=fei.jiang@intel.com \
    --cc=hang.yuan@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-gvt-dev@lists.freedesktop.org \
    --cc=joonas.lahtinen@intel.com \
    --cc=zhenyu.z.wang@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.