Message ID | 20220127001529.978596-2-umesh.nerlige.ramappa@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] drm/i915/pmu: Fix KMD and GuC race on accessing busyness | expand |
Hi Umesh, Thank you for the patch! Yet something to improve: [auto build test ERROR on drm-tip/drm-tip] [cannot apply to linus/master drm-intel/for-linux-next v5.17-rc1 next-20220125] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Umesh-Nerlige-Ramappa/drm-i915-pmu-Fix-KMD-and-GuC-race-on-accessing-busyness/20220127-081651 base: git://anongit.freedesktop.org/drm/drm-tip drm-tip config: i386-randconfig-m021-20220124 (https://download.01.org/0day-ci/archive/20220127/202201271109.UuklsWk3-lkp@intel.com/config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/2d74f201eae0c9ec06e6dc84b363089c0f190058 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Umesh-Nerlige-Ramappa/drm-i915-pmu-Fix-KMD-and-GuC-race-on-accessing-busyness/20220127-081651 git checkout 2d74f201eae0c9ec06e6dc84b363089c0f190058 # save the config file to linux build tree mkdir build_dir make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c: In function 'guc_update_pm_timestamp': >> drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1217:36: error: 'uncore' undeclared (first use in this function) 1217 | gpm_ts = intel_uncore_read64_2x32(uncore, MISC_STATUS0, MISC_STATUS1) >> | ^~~~~~ drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1217:36: note: each undeclared identifier is reported only once for each function it appears in drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:1210:19: warning: unused variable 'gt' [-Wunused-variable] 1210 | struct intel_gt *gt = guc_to_gt(guc); | ^~ vim +/uncore +1217 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c 1207 1208 static void guc_update_pm_timestamp(struct intel_guc *guc, ktime_t *now) 1209 { 1210 struct intel_gt *gt = guc_to_gt(guc); 1211 u32 gt_stamp_lo, gt_stamp_hi; 1212 u64 gpm_ts; 1213 1214 lockdep_assert_held(&guc->timestamp.lock); 1215 1216 gt_stamp_hi = upper_32_bits(guc->timestamp.gt_stamp); > 1217 gpm_ts = intel_uncore_read64_2x32(uncore, MISC_STATUS0, MISC_STATUS1) >> 1218 guc->timestamp.shift; 1219 gt_stamp_lo = lower_32_bits(gpm_ts); 1220 *now = ktime_get(); 1221 1222 if (gt_stamp_lo < lower_32_bits(guc->timestamp.gt_stamp)) 1223 gt_stamp_hi++; 1224 1225 guc->timestamp.gt_stamp = ((u64)gt_stamp_hi << 32) | gt_stamp_lo; 1226 } 1227 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c index 4e9154cacc58..0549b3edc4a2 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c @@ -1205,20 +1205,6 @@ static u32 gpm_timestamp_shift(struct intel_gt *gt) return 3 - shift; } -static u64 gpm_timestamp(struct intel_gt *gt) -{ - u32 lo, hi, old_hi, loop = 0; - - hi = intel_uncore_read(gt->uncore, MISC_STATUS1); - do { - lo = intel_uncore_read(gt->uncore, MISC_STATUS0); - old_hi = hi; - hi = intel_uncore_read(gt->uncore, MISC_STATUS1); - } while (old_hi != hi && loop++ < 2); - - return ((u64)hi << 32) | lo; -} - static void guc_update_pm_timestamp(struct intel_guc *guc, ktime_t *now) { struct intel_gt *gt = guc_to_gt(guc); @@ -1228,7 +1214,8 @@ static void guc_update_pm_timestamp(struct intel_guc *guc, ktime_t *now) lockdep_assert_held(&guc->timestamp.lock); gt_stamp_hi = upper_32_bits(guc->timestamp.gt_stamp); - gpm_ts = gpm_timestamp(gt) >> guc->timestamp.shift; + gpm_ts = intel_uncore_read64_2x32(uncore, MISC_STATUS0, MISC_STATUS1) >> + guc->timestamp.shift; gt_stamp_lo = lower_32_bits(gpm_ts); *now = ktime_get();
Use intel_uncore_read64_2x32 to read upper and lower fields of the GPM timestamp. Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com> --- .../gpu/drm/i915/gt/uc/intel_guc_submission.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-)