[Intel-gfx] [PATCH 1/2] drm/i915/gem: Almagamate clflushes on suspend
kernel test robot
lkp at intel.com
Mon Jan 4 19:43:44 UTC 2021
Hi Chris,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on drm-tip/drm-tip v5.11-rc2 next-20210104]
[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/Chris-Wilson/drm-i915-gem-Almagamate-clflushes-on-suspend/20210104-220329
base: git://anongit.freedesktop.org/drm-intel for-linux-next
config: x86_64-randconfig-a004-20210105 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 98cd1c33e3c2c3cfee36fb0fea3285fda06224d3)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/0day-ci/linux/commit/e17680e4b8352355fb03d0aeab4b0f16994fa2bd
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Chris-Wilson/drm-i915-gem-Almagamate-clflushes-on-suspend/20210104-220329
git checkout e17680e4b8352355fb03d0aeab4b0f16994fa2bd
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>
All errors (new ones prefixed by >>):
>> drivers/gpu/drm/i915/gem/i915_gem_pm.c:78:3: error: implicit declaration of function 'wbinvd_on_all_cpus' [-Werror,-Wimplicit-function-declaration]
wbinvd_on_all_cpus();
^
1 error generated.
vim +/wbinvd_on_all_cpus +78 drivers/gpu/drm/i915/gem/i915_gem_pm.c
34
35 void i915_gem_suspend_late(struct drm_i915_private *i915)
36 {
37 struct drm_i915_gem_object *obj;
38 struct list_head *phases[] = {
39 &i915->mm.shrink_list,
40 &i915->mm.purge_list,
41 NULL
42 }, **phase;
43 unsigned long flags;
44 bool flush = false;
45
46 /*
47 * Neither the BIOS, ourselves or any other kernel
48 * expects the system to be in execlists mode on startup,
49 * so we need to reset the GPU back to legacy mode. And the only
50 * known way to disable logical contexts is through a GPU reset.
51 *
52 * So in order to leave the system in a known default configuration,
53 * always reset the GPU upon unload and suspend. Afterwards we then
54 * clean up the GEM state tracking, flushing off the requests and
55 * leaving the system in a known idle state.
56 *
57 * Note that is of the upmost importance that the GPU is idle and
58 * all stray writes are flushed *before* we dismantle the backing
59 * storage for the pinned objects.
60 *
61 * However, since we are uncertain that resetting the GPU on older
62 * machines is a good idea, we don't - just in case it leaves the
63 * machine in an unusable condition.
64 */
65
66 intel_gt_suspend_late(&i915->gt);
67
68 spin_lock_irqsave(&i915->mm.obj_lock, flags);
69 for (phase = phases; *phase; phase++) {
70 list_for_each_entry(obj, *phase, mm.link) {
71 if (!(obj->cache_coherent & I915_BO_CACHE_COHERENT_FOR_READ))
72 flush |= (obj->read_domains & I915_GEM_DOMAIN_CPU) == 0;
73 __start_cpu_write(obj); /* presume auto-hibernate */
74 }
75 }
76 spin_unlock_irqrestore(&i915->mm.obj_lock, flags);
77 if (flush)
> 78 wbinvd_on_all_cpus();
79 }
80
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 35304 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gfx/attachments/20210105/70eae017/attachment-0001.gz>
More information about the Intel-gfx
mailing list