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; 82+ 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] 82+ messages in thread

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

Thread overview: 82+ 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

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.