All of lore.kernel.org
 help / color / mirror / Atom feed
* [agd5f:amd-staging-drm-next 2019/2047] drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:4677:6: warning: no previous prototype for 'amdgpu_device_recheck_guilty_jobs'
@ 2021-03-15 22:21 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-03-15 22:21 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 4223 bytes --]

tree:   https://gitlab.freedesktop.org/agd5f/linux.git amd-staging-drm-next
head:   931794a62f1be00cb2bda1d67798a887c9cd90ba
commit: c8a921d49443025e10794342d4433b3f29616409 [2019/2047] drm/amd/amdgpu implement tdr advanced mode
config: i386-randconfig-a004-20210315 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        git remote add agd5f https://gitlab.freedesktop.org/agd5f/linux.git
        git fetch --no-tags agd5f amd-staging-drm-next
        git checkout c8a921d49443025e10794342d4433b3f29616409
        # save the attached .config to linux build tree
        make W=1 ARCH=i386 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:4677:6: warning: no previous prototype for 'amdgpu_device_recheck_guilty_jobs' [-Wmissing-prototypes]
    4677 | void amdgpu_device_recheck_guilty_jobs(struct amdgpu_device *adev,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c: In function 'amdgpu_device_recheck_guilty_jobs':
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:4731:26: error: 'struct drm_gpu_scheduler' has no member named 'num_jobs'
    4731 |   atomic_dec(&ring->sched.num_jobs);
         |                          ^
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:4738:23: error: 'struct drm_sched_job' has no member named 'node'
    4738 |   list_del_init(&s_job->node);
         |                       ^~


vim +/amdgpu_device_recheck_guilty_jobs +4677 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c

  4676	
> 4677	void amdgpu_device_recheck_guilty_jobs(struct amdgpu_device *adev,
  4678				       struct amdgpu_hive_info *hive,
  4679				       struct list_head *device_list_handle,
  4680				       bool *need_full_reset)
  4681	{
  4682		int i, r = 0;
  4683	
  4684		for (i = 0; i < AMDGPU_MAX_RINGS; ++i) {
  4685			struct amdgpu_ring *ring = adev->rings[i];
  4686			int ret = 0;
  4687			struct drm_sched_job *s_job;
  4688	
  4689			if (!ring || !ring->sched.thread)
  4690				continue;
  4691	
  4692			s_job = list_first_entry_or_null(&ring->sched.pending_list,
  4693					struct drm_sched_job, list);
  4694			if (s_job == NULL)
  4695				continue;
  4696	
  4697			/* clear job's guilty and depend the folowing step to decide the real one */
  4698			drm_sched_reset_karma(s_job);
  4699			drm_sched_resubmit_jobs_ext(&ring->sched, 1);
  4700	
  4701			ret = dma_fence_wait_timeout(s_job->s_fence->parent, false, ring->sched.timeout);
  4702			if (ret == 0) { /* timeout */
  4703				DRM_ERROR("Found the real bad job! ring:%s, job_id:%llx\n",
  4704							ring->sched.name, s_job->id);
  4705	
  4706				/* set guilty */
  4707				drm_sched_increase_karma(s_job);
  4708	retry:
  4709				/* do hw reset */
  4710				if (amdgpu_sriov_vf(adev)) {
  4711					amdgpu_virt_fini_data_exchange(adev);
  4712					r = amdgpu_device_reset_sriov(adev, false);
  4713					if (r)
  4714						adev->asic_reset_res = r;
  4715				} else {
  4716					r  = amdgpu_do_asic_reset(hive, device_list_handle,
  4717							need_full_reset, false);
  4718					if (r && r == -EAGAIN)
  4719						goto retry;
  4720				}
  4721	
  4722				/*
  4723				 * add reset counter so that the following
  4724				 * resubmitted job could flush vmid
  4725				 */
  4726				atomic_inc(&adev->gpu_reset_counter);
  4727				continue;
  4728			}
  4729	
  4730			/* got the hw fence, signal finished fence */
  4731			atomic_dec(&ring->sched.num_jobs);
  4732			dma_fence_get(&s_job->s_fence->finished);
  4733			dma_fence_signal(&s_job->s_fence->finished);
  4734			dma_fence_put(&s_job->s_fence->finished);
  4735	
  4736			/* remove node from list and free the job */
  4737			spin_lock(&ring->sched.job_list_lock);
  4738			list_del_init(&s_job->node);
  4739			spin_unlock(&ring->sched.job_list_lock);
  4740			ring->sched.ops->free_job(s_job);
  4741		}
  4742	}
  4743	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 44230 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-03-15 22:21 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-15 22:21 [agd5f:amd-staging-drm-next 2019/2047] drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:4677:6: warning: no previous prototype for 'amdgpu_device_recheck_guilty_jobs' kernel test robot

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.