diff mbox

[v3,27/27] drm/i915/slpc: Update freq min/max softlimits

Message ID 1471948800-28641-28-git-send-email-sagar.a.kamble@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

sagar.a.kamble@intel.com Aug. 23, 2016, 10:40 a.m. UTC
v2: Removing checks for vma obj and kmap_atomic validity. (Chris)

Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
---
 drivers/gpu/drm/i915/intel_slpc.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

Comments

kernel test robot Aug. 23, 2016, 1:42 p.m. UTC | #1
Hi Sagar,

[auto build test WARNING on drm-intel/for-linux-next]
[cannot apply to v4.8-rc3 next-20160823]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on]
[Check https://git-scm.com/docs/git-format-patch for more information]

url:    https://github.com/0day-ci/linux/commits/Sagar-Arun-Kamble/Add-support-for-GuC-based-SLPC/20160823-204034
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-defconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/i915/intel_slpc.c: In function 'intel_slpc_enable':
>> drivers/gpu/drm/i915/intel_slpc.c:299:15: warning: unused variable 'page' [-Wunused-variable]
     struct page *page;
                  ^~~~

vim +/page +299 drivers/gpu/drm/i915/intel_slpc.c

   283	
   284	void intel_slpc_suspend(struct drm_i915_private *dev_priv)
   285	{
   286		host2guc_slpc_shutdown(dev_priv);
   287		dev_priv->guc.slpc.enabled = false;
   288	}
   289	
   290	void intel_slpc_disable(struct drm_i915_private *dev_priv)
   291	{
   292		host2guc_slpc_shutdown(dev_priv);
   293		dev_priv->guc.slpc.enabled = false;
   294	}
   295	
   296	void intel_slpc_enable(struct drm_i915_private *dev_priv)
   297	{
   298		struct drm_i915_gem_object *obj;
 > 299		struct page *page;
   300		void *pv = NULL;
   301		struct slpc_shared_data data;
   302		u64 val;
   303	
   304		host2guc_slpc_reset(dev_priv);
   305		dev_priv->guc.slpc.enabled = true;
   306	
   307		/* Enable only GTPERF task, Disable others */

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
kernel test robot Aug. 23, 2016, 4:09 p.m. UTC | #2
Hi Sagar,

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to v4.8-rc3 next-20160823]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on]
[Check https://git-scm.com/docs/git-format-patch for more information]

url:    https://github.com/0day-ci/linux/commits/Sagar-Arun-Kamble/Add-support-for-GuC-based-SLPC/20160823-204034
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: x86_64-randconfig-x009-201634 (attached as .config)
compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   drivers/gpu/drm/i915/intel_slpc.c: In function 'intel_slpc_enable':
>> drivers/gpu/drm/i915/intel_slpc.c:299:15: error: unused variable 'page' [-Werror=unused-variable]
     struct page *page;
                  ^~~~
   cc1: all warnings being treated as errors

vim +/page +299 drivers/gpu/drm/i915/intel_slpc.c

   293		dev_priv->guc.slpc.enabled = false;
   294	}
   295	
   296	void intel_slpc_enable(struct drm_i915_private *dev_priv)
   297	{
   298		struct drm_i915_gem_object *obj;
 > 299		struct page *page;
   300		void *pv = NULL;
   301		struct slpc_shared_data data;
   302		u64 val;

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_slpc.c b/drivers/gpu/drm/i915/intel_slpc.c
index 0cde40e..a6a1021 100644
--- a/drivers/gpu/drm/i915/intel_slpc.c
+++ b/drivers/gpu/drm/i915/intel_slpc.c
@@ -295,6 +295,10 @@  void intel_slpc_disable(struct drm_i915_private *dev_priv)
 
 void intel_slpc_enable(struct drm_i915_private *dev_priv)
 {
+	struct drm_i915_gem_object *obj;
+	struct page *page;
+	void *pv = NULL;
+	struct slpc_shared_data data;
 	u64 val;
 
 	host2guc_slpc_reset(dev_priv);
@@ -338,6 +342,25 @@  void intel_slpc_enable(struct drm_i915_private *dev_priv)
 	intel_slpc_set_param(dev_priv,
 			     SLPC_PARAM_GLOBAL_ENABLE_BALANCER_IN_NON_GAMING_MODE,
 			     0);
+
+	obj = dev_priv->guc.slpc.vma->obj;
+	intel_slpc_query_task_state(dev_priv);
+
+	pv = kmap_atomic(i915_gem_object_get_page(obj, 0));
+	data = *(struct slpc_shared_data *) pv;
+	kunmap_atomic(pv);
+
+	/*
+	 * TODO: Define separate variables for slice and unslice
+	 *	 frequencies for driver state variable.
+	 */
+	dev_priv->rps.max_freq_softlimit =
+			data.task_state_data.freq_unslice_max;
+	dev_priv->rps.min_freq_softlimit =
+			data.task_state_data.freq_unslice_min;
+
+	dev_priv->rps.max_freq_softlimit *= GEN9_FREQ_SCALER;
+	dev_priv->rps.min_freq_softlimit *= GEN9_FREQ_SCALER;
 }
 
 void intel_slpc_reset(struct drm_i915_private *dev_priv)