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 <[email protected]>

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/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to