All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH 01/69] drm/i915: Use cmpxchg64 for 32b compatilibity
@ 2020-12-14 10:08 Chris Wilson
  2020-12-14 10:08 ` [Intel-gfx] [PATCH 02/69] drm/i915/uc: Squelch load failure error message Chris Wilson
                   ` (72 more replies)
  0 siblings, 73 replies; 83+ messages in thread
From: Chris Wilson @ 2020-12-14 10:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: Chris Wilson

By using the double wide cmpxchg64 on 32bit, we can use the same
algorithm on both 32/64b systems.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/i915_active.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_active.c b/drivers/gpu/drm/i915/i915_active.c
index 10a865f3dc09..ab4382841c6b 100644
--- a/drivers/gpu/drm/i915/i915_active.c
+++ b/drivers/gpu/drm/i915/i915_active.c
@@ -159,8 +159,7 @@ __active_retire(struct i915_active *ref)
 		GEM_BUG_ON(ref->tree.rb_node != &ref->cache->node);
 
 		/* Make the cached node available for reuse with any timeline */
-		if (IS_ENABLED(CONFIG_64BIT))
-			ref->cache->timeline = 0; /* needs cmpxchg(u64) */
+		ref->cache->timeline = 0; /* needs cmpxchg(u64) */
 	}
 
 	spin_unlock_irqrestore(&ref->tree_lock, flags);
@@ -256,7 +255,6 @@ static struct active_node *__active_lookup(struct i915_active *ref, u64 idx)
 		if (cached == idx)
 			return it;
 
-#ifdef CONFIG_64BIT /* for cmpxchg(u64) */
 		/*
 		 * An unclaimed cache [.timeline=0] can only be claimed once.
 		 *
@@ -267,9 +265,8 @@ static struct active_node *__active_lookup(struct i915_active *ref, u64 idx)
 		 * only the winner of that race will cmpxchg return the old
 		 * value of 0).
 		 */
-		if (!cached && !cmpxchg(&it->timeline, 0, idx))
+		if (!cached && !cmpxchg64(&it->timeline, 0, idx))
 			return it;
-#endif
 	}
 
 	BUILD_BUG_ON(offsetof(typeof(*it), node));
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 83+ messages in thread
* Re: [Intel-gfx] [PATCH 63/69] drm/i915/gt: Infrastructure for ring scheduling
@ 2020-12-14 16:55 kernel test robot
  0 siblings, 0 replies; 83+ messages in thread
From: kernel test robot @ 2020-12-14 16:55 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
In-Reply-To: <20201214100949.11387-63-chris@chris-wilson.co.uk>
References: <20201214100949.11387-63-chris@chris-wilson.co.uk>
TO: Chris Wilson <chris@chris-wilson.co.uk>
TO: intel-gfx(a)lists.freedesktop.org
CC: Chris Wilson <chris@chris-wilson.co.uk>

Hi Chris,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on drm-tip/drm-tip]
[cannot apply to drm-intel/for-linux-next v5.10 next-20201214]
[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-Use-cmpxchg64-for-32b-compatilibity/20201214-181222
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
:::::: branch date: 7 hours ago
:::::: commit date: 7 hours ago
config: i386-randconfig-m021-20201214 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

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

smatch warnings:
drivers/gpu/drm/i915/gt/intel_ring_scheduler.c:356 __unwind_incomplete_requests() error: uninitialized symbol 'pl'.

vim +/pl +356 drivers/gpu/drm/i915/gt/intel_ring_scheduler.c

38f938d4eb11b84 Chris Wilson 2020-12-14  322  
38f938d4eb11b84 Chris Wilson 2020-12-14  323  static struct i915_request *
38f938d4eb11b84 Chris Wilson 2020-12-14  324  __unwind_incomplete_requests(struct intel_engine_cs *engine)
38f938d4eb11b84 Chris Wilson 2020-12-14  325  {
38f938d4eb11b84 Chris Wilson 2020-12-14  326  	struct i915_request *rq, *rn, *active = NULL;
38f938d4eb11b84 Chris Wilson 2020-12-14  327  	u64 deadline = I915_DEADLINE_NEVER;
38f938d4eb11b84 Chris Wilson 2020-12-14  328  	struct list_head *pl;
38f938d4eb11b84 Chris Wilson 2020-12-14  329  
38f938d4eb11b84 Chris Wilson 2020-12-14  330  	lockdep_assert_held(&engine->active.lock);
38f938d4eb11b84 Chris Wilson 2020-12-14  331  
38f938d4eb11b84 Chris Wilson 2020-12-14  332  	list_for_each_entry_safe_reverse(rq, rn,
38f938d4eb11b84 Chris Wilson 2020-12-14  333  					 &engine->active.requests,
38f938d4eb11b84 Chris Wilson 2020-12-14  334  					 sched.link) {
38f938d4eb11b84 Chris Wilson 2020-12-14  335  		if (i915_request_completed(rq)) {
38f938d4eb11b84 Chris Wilson 2020-12-14  336  			list_del_init(&rq->sched.link);
38f938d4eb11b84 Chris Wilson 2020-12-14  337  			continue;
38f938d4eb11b84 Chris Wilson 2020-12-14  338  		}
38f938d4eb11b84 Chris Wilson 2020-12-14  339  
38f938d4eb11b84 Chris Wilson 2020-12-14  340  		__i915_request_unsubmit(rq);
38f938d4eb11b84 Chris Wilson 2020-12-14  341  
38f938d4eb11b84 Chris Wilson 2020-12-14  342  		if (i915_request_started(rq)) {
38f938d4eb11b84 Chris Wilson 2020-12-14  343  			u64 deadline =
38f938d4eb11b84 Chris Wilson 2020-12-14  344  				i915_scheduler_next_virtual_deadline(rq_prio(rq));
38f938d4eb11b84 Chris Wilson 2020-12-14  345  			rq->sched.deadline = min(rq_deadline(rq), deadline);
38f938d4eb11b84 Chris Wilson 2020-12-14  346  		}
38f938d4eb11b84 Chris Wilson 2020-12-14  347  		GEM_BUG_ON(rq_deadline(rq) == I915_DEADLINE_NEVER);
38f938d4eb11b84 Chris Wilson 2020-12-14  348  
38f938d4eb11b84 Chris Wilson 2020-12-14  349  		if (rq_deadline(rq) != deadline) {
38f938d4eb11b84 Chris Wilson 2020-12-14  350  			deadline = rq_deadline(rq);
38f938d4eb11b84 Chris Wilson 2020-12-14  351  			pl = i915_sched_lookup_priolist(engine, deadline);
38f938d4eb11b84 Chris Wilson 2020-12-14  352  		}
38f938d4eb11b84 Chris Wilson 2020-12-14  353  		GEM_BUG_ON(i915_sched_is_idle(&engine->active));
38f938d4eb11b84 Chris Wilson 2020-12-14  354  
38f938d4eb11b84 Chris Wilson 2020-12-14  355  		GEM_BUG_ON(i915_request_in_priority_queue(rq));
38f938d4eb11b84 Chris Wilson 2020-12-14 @356  		list_move(&rq->sched.link, pl);
38f938d4eb11b84 Chris Wilson 2020-12-14  357  		set_bit(I915_FENCE_FLAG_PQUEUE, &rq->fence.flags);
38f938d4eb11b84 Chris Wilson 2020-12-14  358  
38f938d4eb11b84 Chris Wilson 2020-12-14  359  		active = rq;
38f938d4eb11b84 Chris Wilson 2020-12-14  360  	}
38f938d4eb11b84 Chris Wilson 2020-12-14  361  
38f938d4eb11b84 Chris Wilson 2020-12-14  362  	return active;
38f938d4eb11b84 Chris Wilson 2020-12-14  363  }
38f938d4eb11b84 Chris Wilson 2020-12-14  364  

---
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: 38831 bytes --]

^ permalink raw reply	[flat|nested] 83+ messages in thread

end of thread, other threads:[~2020-12-23 10:13 UTC | newest]

Thread overview: 83+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-14 10:08 [Intel-gfx] [PATCH 01/69] drm/i915: Use cmpxchg64 for 32b compatilibity Chris Wilson
2020-12-14 10:08 ` [Intel-gfx] [PATCH 02/69] drm/i915/uc: Squelch load failure error message Chris Wilson
2020-12-23 10:12   ` Matthew Auld
2020-12-14 10:08 ` [Intel-gfx] [PATCH 03/69] drm/i915: Encode fence specific waitqueue behaviour into the wait.flags Chris Wilson
2020-12-14 10:08 ` [Intel-gfx] [PATCH 04/69] drm/i915/gt: Replace direct submit with direct call to tasklet Chris Wilson
2020-12-14 10:08 ` [Intel-gfx] [PATCH 05/69] drm/i915/gt: Use virtual_engine during execlists_dequeue Chris Wilson
2020-12-14 10:08 ` [Intel-gfx] [PATCH 06/69] drm/i915/gt: Decouple inflight virtual engines Chris Wilson
2020-12-14 10:08 ` [Intel-gfx] [PATCH 07/69] drm/i915/gt: Defer schedule_out until after the next dequeue Chris Wilson
2020-12-14 10:08 ` [Intel-gfx] [PATCH 08/69] drm/i915/gt: Remove virtual breadcrumb before transfer Chris Wilson
2020-12-14 10:08 ` [Intel-gfx] [PATCH 09/69] drm/i915/gt: Shrink the critical section for irq signaling Chris Wilson
2020-12-14 10:08 ` [Intel-gfx] [PATCH 10/69] drm/i915/gt: Resubmit the virtual engine on schedule-out Chris Wilson
2020-12-14 10:08 ` [Intel-gfx] [PATCH 11/69] drm/i915/gt: Simplify virtual engine handling for execlists_hold() Chris Wilson
2020-12-14 10:08 ` [Intel-gfx] [PATCH 12/69] drm/i915/gt: ce->inflight updates are now serialised Chris Wilson
2020-12-14 10:08 ` [Intel-gfx] [PATCH 13/69] drm/i915/gem: Drop free_work for GEM contexts Chris Wilson
2020-12-14 10:08 ` [Intel-gfx] [PATCH 14/69] drm/i915/gt: Track the overall awake/busy time Chris Wilson
2020-12-15 13:49   ` Tvrtko Ursulin
2020-12-14 10:08 ` [Intel-gfx] [PATCH 15/69] drm/i915/gt: Track all timelines created using the HWSP Chris Wilson
2020-12-15 17:09   ` Mika Kuoppala
2020-12-15 17:16     ` Chris Wilson
2020-12-14 10:08 ` [Intel-gfx] [PATCH 16/69] drm/i915/gt: Wrap intel_timeline.has_initial_breadcrumb Chris Wilson
2020-12-14 10:08 ` [Intel-gfx] [PATCH 17/69] drm/i915/gt: Track timeline GGTT offset separately from subpage offset Chris Wilson
2020-12-14 10:08 ` [Intel-gfx] [PATCH 18/69] drm/i915/gt: Add timeline "mode" Chris Wilson
2020-12-14 10:08 ` [Intel-gfx] [PATCH 19/69] drm/i915/gt: Use indices for writing into relative timelines Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 20/69] drm/i915/selftests: Exercise relative timeline modes Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 21/69] drm/i915/gt: Use ppHWSP for unshared non-semaphore related timelines Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 22/69] drm/i915/selftests: Confirm RING_TIMESTAMP / CTX_TIMESTAMP share a clock Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 23/69] drm/i915/gt: Consolidate the CS timestamp clocks Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 24/69] drm/i915/gt: Prefer recycling an idle fence Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 25/69] drm/i915/gem: Optimistically prune dma-resv from the shrinker Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 26/69] drm/i915: Drop i915_request.lock serialisation around await_start Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 27/69] drm/i915: Drop i915_request.lock requirement for intel_rps_boost() Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 28/69] drm/i915/gem: Reduce ctx->engine_mutex for reading the clone source Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 29/69] drm/i915/gem: Reduce ctx->engines_mutex for get_engines() Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 30/69] drm/i915: Reduce test_and_set_bit to set_bit in i915_request_submit() Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 31/69] drm/i915/gt: Drop atomic for engine->fw_active tracking Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 32/69] drm/i915/gt: Extract busy-stats for ring-scheduler Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 33/69] drm/i915/gt: Convert stats.active to plain unsigned int Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 34/69] drm/i915/gt: Refactor heartbeat request construction and submission Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 35/69] drm/i915: Strip out internal priorities Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 36/69] drm/i915: Remove I915_USER_PRIORITY_SHIFT Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 37/69] drm/i915/gt: Defer the kmem_cache_free() until after the HW submit Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 38/69] drm/i915: Prune empty priolists Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 39/69] drm/i915: Replace engine->schedule() with a known request operation Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 40/69] drm/i915/gt: Do not suspend bonded requests if one hangs Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 41/69] drm/i915: Teach the i915_dependency to use a double-lock Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 42/69] drm/i915: Restructure priority inheritance Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 43/69] drm/i915/selftests: Measure set-priority duration Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 44/69] drm/i915/selftests: Exercise priority inheritance around an engine loop Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 45/69] drm/i915: Improve DFS for priority inheritance Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 46/69] drm/i915/gt: Remove timeslice suppression Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 47/69] drm/i915: Extract request submission from execlists Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 48/69] drm/i915: Extract request suspension from the execlists backend Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 49/69] drm/i915: Extract the ability to defer and rerun a request later Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 50/69] drm/i915: Fix the iterative dfs for defering requests Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 51/69] drm/i915: Wrap cmpxchg64 with try_cmpxchg64() helper Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 52/69] drm/i915: Fair low-latency scheduling Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 53/69] drm/i915/gt: Specify a deadline for the heartbeat Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 54/69] drm/i915: Extend the priority boosting for the display with a deadline Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 55/69] drm/i915: Move common active lists from engine to i915_scheduler Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 56/69] drm/i915: Move scheduler queue Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 57/69] drm/i915: Move tasklet from execlists to sched Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 58/69] drm/i915/gt: Another tweak for flushing the tasklets Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 59/69] Restore "drm/i915: drop engine_pin/unpin_breadcrumbs_irq" Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 60/69] drm/i915/gt: Couple tasklet scheduling for all CS interrupts Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 61/69] drm/i915/gt: Support creation of 'internal' rings Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 62/69] drm/i915/gt: Use client timeline address for seqno writes Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 63/69] drm/i915/gt: Infrastructure for ring scheduling Chris Wilson
2020-12-14 13:29   ` kernel test robot
2020-12-14 13:29     ` kernel test robot
2020-12-14 10:09 ` [Intel-gfx] [PATCH 64/69] drm/i915/gt: Enable busy-stats for ring-scheduler Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 65/69] drm/i915/gt: Implement ring scheduler for gen6/7 Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 66/69] drm/i915/gt: Enable ring scheduling " Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 67/69] drm/i915: Move saturated workload detection back to the context Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 68/69] drm/i915/gt: Skip over completed active execlists, again Chris Wilson
2020-12-14 10:09 ` [Intel-gfx] [PATCH 69/69] drm/i915/gt: Support virtual engine queues Chris Wilson
2020-12-14 12:33   ` kernel test robot
2020-12-14 12:33     ` kernel test robot
2020-12-14 12:37 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [01/69] drm/i915: Use cmpxchg64 for 32b compatilibity Patchwork
2020-12-14 12:38 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2020-12-14 12:42 ` [Intel-gfx] ✗ Fi.CI.DOCS: " Patchwork
2020-12-14 13:04 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2020-12-14 15:58 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2020-12-14 16:55 [Intel-gfx] [PATCH 63/69] drm/i915/gt: Infrastructure for ring scheduling 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.