From: "Ahmed S. Darwish" <a.darwish@linutronix.de> To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, Will Deacon <will@kernel.org> Cc: Thomas Gleixner <tglx@linutronix.de>, "Paul E. McKenney" <paulmck@kernel.org>, "Sebastian A. Siewior" <bigeasy@linutronix.de>, Steven Rostedt <rostedt@goodmis.org>, LKML <linux-kernel@vger.kernel.org>, "Ahmed S. Darwish" <a.darwish@linutronix.de>, Daniel Vetter <daniel@ffwll.ch>, David Airlie <airlied@linux.ie>, dri-devel@lists.freedesktop.org Subject: [PATCH v3 08/20] dma-buf: Use sequence counter with associated wound/wait mutex Date: Tue, 30 Jun 2020 07:44:40 +0200 [thread overview] Message-ID: <20200630054452.3675847-9-a.darwish@linutronix.de> (raw) In-Reply-To: <20200630054452.3675847-1-a.darwish@linutronix.de> A sequence counter write side critical section must be protected by some form of locking to serialize writers. If the serialization primitive is not disabling preemption implicitly, preemption has to be explicitly disabled before entering the sequence counter write side critical section. The dma-buf reservation subsystem uses plain sequence counters to manage updates to reservations. Writer serialization is accomplished through a wound/wait mutex. Acquiring a wound/wait mutex does not disable preemption, so this needs to be done manually before and after the write side critical section. Use the newly-added seqcount_ww_mutex_t instead: - It associates the ww_mutex with the sequence count, which enables lockdep to validate that the write side critical section is properly serialized. - It removes the need to explicitly add preempt_disable/enable() around the write side critical section because the write_begin/end() functions for this new data type automatically do this. If lockdep is disabled this ww_mutex lock association is compiled out and has neither storage size nor runtime overhead. Signed-off-by: Ahmed S. Darwish <a.darwish@linutronix.de> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> --- drivers/dma-buf/dma-resv.c | 8 +------- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 2 -- include/linux/dma-resv.h | 2 +- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/drivers/dma-buf/dma-resv.c b/drivers/dma-buf/dma-resv.c index 15efa0c2dacb..a7631352a486 100644 --- a/drivers/dma-buf/dma-resv.c +++ b/drivers/dma-buf/dma-resv.c @@ -129,7 +129,7 @@ subsys_initcall(dma_resv_lockdep); void dma_resv_init(struct dma_resv *obj) { ww_mutex_init(&obj->lock, &reservation_ww_class); - seqcount_init(&obj->seq); + seqcount_ww_mutex_init(&obj->seq, &obj->lock); RCU_INIT_POINTER(obj->fence, NULL); RCU_INIT_POINTER(obj->fence_excl, NULL); @@ -260,7 +260,6 @@ void dma_resv_add_shared_fence(struct dma_resv *obj, struct dma_fence *fence) fobj = dma_resv_get_list(obj); count = fobj->shared_count; - preempt_disable(); write_seqcount_begin(&obj->seq); for (i = 0; i < count; ++i) { @@ -282,7 +281,6 @@ void dma_resv_add_shared_fence(struct dma_resv *obj, struct dma_fence *fence) smp_store_mb(fobj->shared_count, count); write_seqcount_end(&obj->seq); - preempt_enable(); dma_fence_put(old); } EXPORT_SYMBOL(dma_resv_add_shared_fence); @@ -309,14 +307,12 @@ void dma_resv_add_excl_fence(struct dma_resv *obj, struct dma_fence *fence) if (fence) dma_fence_get(fence); - preempt_disable(); write_seqcount_begin(&obj->seq); /* write_seqcount_begin provides the necessary memory barrier */ RCU_INIT_POINTER(obj->fence_excl, fence); if (old) old->shared_count = 0; write_seqcount_end(&obj->seq); - preempt_enable(); /* inplace update, no shared fences */ while (i--) @@ -394,13 +390,11 @@ int dma_resv_copy_fences(struct dma_resv *dst, struct dma_resv *src) src_list = dma_resv_get_list(dst); old = dma_resv_get_excl(dst); - preempt_disable(); write_seqcount_begin(&dst->seq); /* write_seqcount_begin provides the necessary memory barrier */ RCU_INIT_POINTER(dst->fence_excl, new); RCU_INIT_POINTER(dst->fence, dst_list); write_seqcount_end(&dst->seq); - preempt_enable(); dma_resv_list_free(src_list); dma_fence_put(old); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c index b91b5171270f..ff4b583cb96a 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c @@ -258,11 +258,9 @@ static int amdgpu_amdkfd_remove_eviction_fence(struct amdgpu_bo *bo, new->shared_count = k; /* Install the new fence list, seqcount provides the barriers */ - preempt_disable(); write_seqcount_begin(&resv->seq); RCU_INIT_POINTER(resv->fence, new); write_seqcount_end(&resv->seq); - preempt_enable(); /* Drop the references to the removed fences or move them to ef_list */ for (i = j, k = 0; i < old->shared_count; ++i) { diff --git a/include/linux/dma-resv.h b/include/linux/dma-resv.h index a6538ae7d93f..d44a77e8a7e3 100644 --- a/include/linux/dma-resv.h +++ b/include/linux/dma-resv.h @@ -69,7 +69,7 @@ struct dma_resv_list { */ struct dma_resv { struct ww_mutex lock; - seqcount_t seq; + seqcount_ww_mutex_t seq; struct dma_fence __rcu *fence_excl; struct dma_resv_list __rcu *fence; -- 2.20.1
WARNING: multiple messages have this Message-ID (diff)
From: "Ahmed S. Darwish" <a.darwish@linutronix.de> To: Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, Will Deacon <will@kernel.org> Cc: "Paul E. McKenney" <paulmck@kernel.org>, David Airlie <airlied@linux.ie>, "Sebastian A. Siewior" <bigeasy@linutronix.de>, LKML <linux-kernel@vger.kernel.org>, Steven Rostedt <rostedt@goodmis.org>, dri-devel@lists.freedesktop.org, "Ahmed S. Darwish" <a.darwish@linutronix.de>, Thomas Gleixner <tglx@linutronix.de> Subject: [PATCH v3 08/20] dma-buf: Use sequence counter with associated wound/wait mutex Date: Tue, 30 Jun 2020 07:44:40 +0200 [thread overview] Message-ID: <20200630054452.3675847-9-a.darwish@linutronix.de> (raw) In-Reply-To: <20200630054452.3675847-1-a.darwish@linutronix.de> A sequence counter write side critical section must be protected by some form of locking to serialize writers. If the serialization primitive is not disabling preemption implicitly, preemption has to be explicitly disabled before entering the sequence counter write side critical section. The dma-buf reservation subsystem uses plain sequence counters to manage updates to reservations. Writer serialization is accomplished through a wound/wait mutex. Acquiring a wound/wait mutex does not disable preemption, so this needs to be done manually before and after the write side critical section. Use the newly-added seqcount_ww_mutex_t instead: - It associates the ww_mutex with the sequence count, which enables lockdep to validate that the write side critical section is properly serialized. - It removes the need to explicitly add preempt_disable/enable() around the write side critical section because the write_begin/end() functions for this new data type automatically do this. If lockdep is disabled this ww_mutex lock association is compiled out and has neither storage size nor runtime overhead. Signed-off-by: Ahmed S. Darwish <a.darwish@linutronix.de> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> --- drivers/dma-buf/dma-resv.c | 8 +------- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 2 -- include/linux/dma-resv.h | 2 +- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/drivers/dma-buf/dma-resv.c b/drivers/dma-buf/dma-resv.c index 15efa0c2dacb..a7631352a486 100644 --- a/drivers/dma-buf/dma-resv.c +++ b/drivers/dma-buf/dma-resv.c @@ -129,7 +129,7 @@ subsys_initcall(dma_resv_lockdep); void dma_resv_init(struct dma_resv *obj) { ww_mutex_init(&obj->lock, &reservation_ww_class); - seqcount_init(&obj->seq); + seqcount_ww_mutex_init(&obj->seq, &obj->lock); RCU_INIT_POINTER(obj->fence, NULL); RCU_INIT_POINTER(obj->fence_excl, NULL); @@ -260,7 +260,6 @@ void dma_resv_add_shared_fence(struct dma_resv *obj, struct dma_fence *fence) fobj = dma_resv_get_list(obj); count = fobj->shared_count; - preempt_disable(); write_seqcount_begin(&obj->seq); for (i = 0; i < count; ++i) { @@ -282,7 +281,6 @@ void dma_resv_add_shared_fence(struct dma_resv *obj, struct dma_fence *fence) smp_store_mb(fobj->shared_count, count); write_seqcount_end(&obj->seq); - preempt_enable(); dma_fence_put(old); } EXPORT_SYMBOL(dma_resv_add_shared_fence); @@ -309,14 +307,12 @@ void dma_resv_add_excl_fence(struct dma_resv *obj, struct dma_fence *fence) if (fence) dma_fence_get(fence); - preempt_disable(); write_seqcount_begin(&obj->seq); /* write_seqcount_begin provides the necessary memory barrier */ RCU_INIT_POINTER(obj->fence_excl, fence); if (old) old->shared_count = 0; write_seqcount_end(&obj->seq); - preempt_enable(); /* inplace update, no shared fences */ while (i--) @@ -394,13 +390,11 @@ int dma_resv_copy_fences(struct dma_resv *dst, struct dma_resv *src) src_list = dma_resv_get_list(dst); old = dma_resv_get_excl(dst); - preempt_disable(); write_seqcount_begin(&dst->seq); /* write_seqcount_begin provides the necessary memory barrier */ RCU_INIT_POINTER(dst->fence_excl, new); RCU_INIT_POINTER(dst->fence, dst_list); write_seqcount_end(&dst->seq); - preempt_enable(); dma_resv_list_free(src_list); dma_fence_put(old); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c index b91b5171270f..ff4b583cb96a 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c @@ -258,11 +258,9 @@ static int amdgpu_amdkfd_remove_eviction_fence(struct amdgpu_bo *bo, new->shared_count = k; /* Install the new fence list, seqcount provides the barriers */ - preempt_disable(); write_seqcount_begin(&resv->seq); RCU_INIT_POINTER(resv->fence, new); write_seqcount_end(&resv->seq); - preempt_enable(); /* Drop the references to the removed fences or move them to ef_list */ for (i = j, k = 0; i < old->shared_count; ++i) { diff --git a/include/linux/dma-resv.h b/include/linux/dma-resv.h index a6538ae7d93f..d44a77e8a7e3 100644 --- a/include/linux/dma-resv.h +++ b/include/linux/dma-resv.h @@ -69,7 +69,7 @@ struct dma_resv_list { */ struct dma_resv { struct ww_mutex lock; - seqcount_t seq; + seqcount_ww_mutex_t seq; struct dma_fence __rcu *fence_excl; struct dma_resv_list __rcu *fence; -- 2.20.1 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2020-06-30 5:45 UTC|newest] Thread overview: 287+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-05-19 21:45 [PATCH v1 00/25] seqlock: Extend seqcount API with associated locks Ahmed S. Darwish 2020-05-19 21:45 ` Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 01/25] net: core: device_rename: Use rwsem instead of a seqcount Ahmed S. Darwish 2020-05-19 22:01 ` Stephen Hemminger 2020-05-19 22:23 ` Thomas Gleixner 2020-05-19 23:11 ` Stephen Hemminger 2020-05-19 23:42 ` Thomas Gleixner 2020-05-20 0:06 ` Stephen Hemminger 2020-05-20 1:55 ` Thomas Gleixner 2020-05-20 2:57 ` David Miller 2020-05-20 3:18 ` Eric Dumazet 2020-05-20 4:36 ` Stephen Hemminger 2020-05-20 19:37 ` Thomas Gleixner 2020-05-20 21:36 ` Stephen Hemminger 2020-05-20 2:01 ` Eric Dumazet 2020-05-20 6:42 ` Ahmed S. Darwish 2020-05-20 12:51 ` Eric Dumazet 2020-06-03 14:33 ` Ahmed S. Darwish 2020-05-20 14:37 ` Dan Carpenter 2020-05-20 14:37 ` Dan Carpenter 2020-05-20 14:37 ` Dan Carpenter 2020-05-25 16:22 ` Ahmed S. Darwish 2020-05-25 16:22 ` Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 02/25] mm/swap: Don't abuse the seqcount latching API Ahmed S. Darwish 2020-05-20 11:24 ` Hillf Danton 2020-05-20 12:22 ` Konstantin Khlebnikov 2020-05-20 13:05 ` Peter Zijlstra 2020-05-22 14:57 ` Peter Zijlstra 2020-05-22 15:17 ` Sebastian A. Siewior 2020-05-22 16:23 ` Peter Zijlstra 2020-05-25 15:24 ` Ahmed S. Darwish 2020-05-25 15:45 ` Peter Zijlstra 2020-05-25 16:10 ` John Ogness 2020-05-25 16:10 ` John Ogness 2020-09-10 15:08 ` [tip: locking/core] mm/swap: Do not abuse the seqcount_t " tip-bot2 for Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 03/25] net: phy: fixed_phy: Remove unused seqcount Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 04/25] block: nr_sects_write(): Disable preemption on seqcount write Ahmed S. Darwish 2020-05-22 0:12 ` Sasha Levin 2020-05-25 10:12 ` Ahmed S. Darwish 2020-05-22 16:39 ` Peter Zijlstra 2020-05-25 9:56 ` Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 05/25] u64_stats: Document writer non-preemptibility requirement Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 06/25] dma-buf: Remove custom seqcount lockdep class key Ahmed S. Darwish 2020-05-19 21:45 ` Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 07/25] lockdep: Add preemption disabled assertion API Ahmed S. Darwish 2020-05-22 17:55 ` Peter Zijlstra 2020-05-23 14:59 ` Sebastian A. Siewior 2020-05-23 22:41 ` Peter Zijlstra 2020-05-24 10:50 ` Sebastian A. Siewior 2020-05-25 10:22 ` Peter Zijlstra 2020-05-26 0:52 ` Ahmed S. Darwish 2020-05-26 8:13 ` Peter Zijlstra 2020-05-26 9:45 ` Ahmed S. Darwish 2020-06-03 15:30 ` Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 08/25] seqlock: lockdep assert non-preemptibility on seqcount_t write Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 09/25] Documentation: locking: Describe seqlock design and usage Ahmed S. Darwish 2020-05-22 18:01 ` Peter Zijlstra 2020-05-22 22:24 ` Steven Rostedt 2020-05-25 10:50 ` Ahmed S. Darwish 2020-05-25 11:02 ` Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 10/25] seqlock: Add RST directives to kernel-doc code samples and notes Ahmed S. Darwish 2020-05-22 18:02 ` Peter Zijlstra 2020-05-22 18:03 ` Peter Zijlstra 2020-05-22 18:26 ` Thomas Gleixner 2020-05-22 18:32 ` Peter Zijlstra 2020-05-25 9:36 ` Ahmed S. Darwish 2020-05-25 13:44 ` Peter Zijlstra 2020-05-25 14:07 ` Peter Zijlstra 2020-05-19 21:45 ` [PATCH v1 11/25] seqlock: Add missing kernel-doc annotations Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 12/25] seqlock: Extend seqcount API with associated locks Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 13/25] dma-buf: Use sequence counter with associated wound/wait mutex Ahmed S. Darwish 2020-05-19 21:45 ` Ahmed S. Darwish 2020-05-19 21:45 ` Ahmed S. Darwish 2020-05-20 10:48 ` Christian König 2020-05-20 10:48 ` Christian König 2020-05-20 10:48 ` Christian König 2020-05-21 0:09 ` Ahmed S. Darwish 2020-05-21 0:09 ` Ahmed S. Darwish 2020-05-21 0:09 ` Ahmed S. Darwish 2020-05-21 13:20 ` Christian König 2020-05-21 13:20 ` Christian König 2020-05-21 13:20 ` Christian König 2020-05-19 21:45 ` [PATCH v1 14/25] sched: tasks: Use sequence counter with associated spinlock Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 15/25] netfilter: conntrack: " Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 16/25] netfilter: nft_set_rbtree: Use sequence counter with associated rwlock Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 17/25] xfrm: policy: Use sequence counters with associated lock Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 18/25] timekeeping: Use sequence counter with associated raw spinlock Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 19/25] vfs: Use sequence counter with associated spinlock Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 20/25] raid5: " Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 21/25] iocost: " Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 22/25] NFSv4: " Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 23/25] userfaultfd: " Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 24/25] kvm/eventfd: " Ahmed S. Darwish 2020-05-19 21:45 ` [PATCH v1 25/25] hrtimer: Use sequence counter with associated raw spinlock Ahmed S. Darwish 2020-06-08 0:57 ` [PATCH v2 00/18] seqlock: Extend seqcount API with associated locks Ahmed S. Darwish 2020-06-08 0:57 ` Ahmed S. Darwish 2020-06-08 0:57 ` [PATCH v2 01/18] Documentation: locking: Describe seqlock design and usage Ahmed S. Darwish 2020-06-08 0:57 ` [PATCH v2 02/18] seqlock: Properly format kernel-doc code samples Ahmed S. Darwish 2020-06-08 0:57 ` [PATCH v2 03/18] seqlock: Add missing kernel-doc annotations Ahmed S. Darwish 2020-06-08 0:57 ` [PATCH v2 04/18] seqlock: Extend seqcount API with associated locks Ahmed S. Darwish 2020-06-08 2:15 ` kernel test robot 2020-06-08 0:57 ` [PATCH v2 05/18] dma-buf: Remove custom seqcount lockdep class key Ahmed S. Darwish 2020-06-08 0:57 ` Ahmed S. Darwish 2020-06-08 0:57 ` [PATCH v2 06/18] dma-buf: Use sequence counter with associated wound/wait mutex Ahmed S. Darwish 2020-06-08 0:57 ` Ahmed S. Darwish 2020-06-08 0:57 ` Ahmed S. Darwish 2020-06-08 14:32 ` Daniel Vetter 2020-06-08 14:32 ` Daniel Vetter 2020-06-08 14:32 ` Daniel Vetter 2020-06-08 0:57 ` [PATCH v2 07/18] sched: tasks: Use sequence counter with associated spinlock Ahmed S. Darwish 2020-06-08 0:57 ` [PATCH v2 08/18] netfilter: conntrack: " Ahmed S. Darwish 2020-06-08 0:57 ` [PATCH v2 09/18] netfilter: nft_set_rbtree: Use sequence counter with associated rwlock Ahmed S. Darwish 2020-06-08 0:57 ` [PATCH v2 10/18] xfrm: policy: Use sequence counters with associated lock Ahmed S. Darwish 2020-06-08 0:57 ` [PATCH v2 11/18] timekeeping: Use sequence counter with associated raw spinlock Ahmed S. Darwish 2020-06-08 0:57 ` [PATCH v2 12/18] vfs: Use sequence counter with associated spinlock Ahmed S. Darwish 2020-06-08 0:57 ` [PATCH v2 13/18] raid5: " Ahmed S. Darwish 2020-06-08 0:57 ` [PATCH v2 14/18] iocost: " Ahmed S. Darwish 2020-06-08 0:57 ` [PATCH v2 15/18] NFSv4: " Ahmed S. Darwish 2020-06-08 0:57 ` [PATCH v2 16/18] userfaultfd: " Ahmed S. Darwish 2020-06-08 0:57 ` [PATCH v2 17/18] kvm/eventfd: " Ahmed S. Darwish 2020-06-08 12:57 ` Paolo Bonzini 2020-06-08 0:57 ` [PATCH v2 18/18] hrtimer: Use sequence counter with associated raw spinlock Ahmed S. Darwish 2020-06-30 5:44 ` [PATCH v3 00/20] seqlock: Extend seqcount API with associated locks Ahmed S. Darwish 2020-06-30 5:44 ` Ahmed S. Darwish 2020-06-30 5:44 ` [PATCH v3 01/20] Documentation: locking: Describe seqlock design and usage Ahmed S. Darwish 2020-07-06 21:04 ` Peter Zijlstra 2020-07-06 21:12 ` Jonathan Corbet 2020-07-06 21:16 ` Peter Zijlstra 2020-07-07 10:12 ` Ahmed S. Darwish 2020-07-07 12:47 ` Peter Zijlstra 2020-06-30 5:44 ` [PATCH v3 02/20] seqlock: Properly format kernel-doc code samples Ahmed S. Darwish 2020-06-30 5:44 ` [PATCH v3 03/20] seqlock: Add missing kernel-doc annotations Ahmed S. Darwish 2020-06-30 5:44 ` [PATCH v3 04/20] lockdep: Add preemption enabled/disabled assertion APIs Ahmed S. Darwish 2020-07-06 20:50 ` Peter Zijlstra 2020-07-07 7:34 ` Sebastian A. Siewior 2020-06-30 5:44 ` [PATCH v3 05/20] seqlock: lockdep assert non-preemptibility on seqcount_t write Ahmed S. Darwish 2020-06-30 5:44 ` [PATCH v3 06/20] seqlock: Extend seqcount API with associated locks Ahmed S. Darwish 2020-07-06 21:21 ` Peter Zijlstra 2020-07-07 8:40 ` Ahmed S. Darwish 2020-07-07 13:04 ` Peter Zijlstra 2020-07-07 14:37 ` Peter Zijlstra 2020-07-08 9:12 ` Peter Zijlstra 2020-07-08 10:43 ` Ahmed S. Darwish 2020-07-08 10:33 ` Ahmed S. Darwish 2020-07-08 12:29 ` Peter Zijlstra 2020-07-08 14:13 ` Peter Zijlstra 2020-07-08 14:25 ` Peter Zijlstra 2020-07-08 15:09 ` Ahmed S. Darwish 2020-07-08 15:35 ` Peter Zijlstra 2020-07-08 15:58 ` Ahmed S. Darwish 2020-07-08 16:16 ` Peter Zijlstra 2020-07-08 16:18 ` Peter Zijlstra 2020-07-08 16:01 ` Peter Zijlstra 2020-06-30 5:44 ` [PATCH v3 07/20] dma-buf: Remove custom seqcount lockdep class key Ahmed S. Darwish 2020-06-30 5:44 ` Ahmed S. Darwish 2020-06-30 5:44 ` Ahmed S. Darwish [this message] 2020-06-30 5:44 ` [PATCH v3 08/20] dma-buf: Use sequence counter with associated wound/wait mutex Ahmed S. Darwish 2020-06-30 5:44 ` [PATCH v3 09/20] sched: tasks: Use sequence counter with associated spinlock Ahmed S. Darwish 2020-06-30 5:44 ` [PATCH v3 10/20] netfilter: conntrack: " Ahmed S. Darwish 2020-06-30 5:44 ` [PATCH v3 11/20] netfilter: nft_set_rbtree: Use sequence counter with associated rwlock Ahmed S. Darwish 2020-06-30 5:44 ` [PATCH v3 12/20] xfrm: policy: Use sequence counters with associated lock Ahmed S. Darwish 2020-06-30 5:44 ` [PATCH v3 13/20] timekeeping: Use sequence counter with associated raw spinlock Ahmed S. Darwish 2020-06-30 5:44 ` [PATCH v3 14/20] vfs: Use sequence counter with associated spinlock Ahmed S. Darwish 2020-06-30 5:44 ` [PATCH v3 15/20] raid5: " Ahmed S. Darwish 2020-06-30 5:44 ` [PATCH v3 16/20] iocost: " Ahmed S. Darwish 2020-06-30 7:11 ` Daniel Wagner 2020-06-30 5:44 ` [PATCH v3 17/20] NFSv4: " Ahmed S. Darwish 2020-06-30 5:44 ` [PATCH v3 18/20] userfaultfd: " Ahmed S. Darwish 2020-06-30 5:44 ` [PATCH v3 19/20] kvm/eventfd: " Ahmed S. Darwish 2020-06-30 5:44 ` [PATCH v3 20/20] hrtimer: Use sequence counter with associated raw spinlock Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 00/24] seqlock: Extend seqcount API with associated locks Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 01/24] Documentation: locking: Describe seqlock design and usage Ahmed S. Darwish 2020-07-21 1:35 ` Steven Rostedt 2020-07-21 1:37 ` Steven Rostedt 2020-07-21 5:34 ` Ahmed S. Darwish 2020-07-21 1:44 ` Steven Rostedt 2020-07-21 1:51 ` Steven Rostedt 2020-07-21 7:15 ` Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 02/24] seqlock: Properly format kernel-doc code samples Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 03/24] seqlock: seqcount_t latch: End read sections with read_seqcount_retry() Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 04/24] seqlock: Reorder seqcount_t and seqlock_t API definitions Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 05/24] seqlock: Add kernel-doc for seqcount_t and seqlock_t APIs Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 06/24] seqlock: Implement raw_seqcount_begin() in terms of raw_read_seqcount() Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 07/24] lockdep: Add preemption enabled/disabled assertion APIs Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 08/24] seqlock: lockdep assert non-preemptibility on seqcount_t write Ahmed S. Darwish 2020-07-20 18:31 ` kernel test robot 2020-07-20 18:54 ` kernel test robot 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-08-08 23:21 ` [PATCH v4 08/24] " Guenter Roeck 2020-08-08 23:23 ` Guenter Roeck 2020-08-09 18:42 ` Ahmed S. Darwish 2020-08-10 8:59 ` Greg KH 2020-08-10 9:48 ` peterz 2020-08-10 10:03 ` Greg KH 2020-08-10 9:54 ` [PATCH] Revert "seqlock: lockdep assert non-preemptibility on seqcount_t write" Ahmed S. Darwish 2020-08-10 10:05 ` Greg KH 2020-08-10 10:35 ` Ahmed S. Darwish 2020-08-10 14:10 ` Guenter Roeck 2020-08-18 22:51 ` Valdis Klētnieks 2020-08-19 0:56 ` Guenter Roeck 2020-08-19 7:00 ` Sebastian Andrzej Siewior 2020-08-19 7:34 ` Valdis Klētnieks 2020-08-19 16:15 ` Guenter Roeck 2020-08-10 19:55 ` [PATCH v4 08/24] seqlock: lockdep assert non-preemptibility on seqcount_t write Thomas Gleixner 2020-08-11 10:06 ` Greg KH 2020-07-20 15:55 ` [PATCH v4 09/24] seqlock: Extend seqcount API with associated locks Ahmed S. Darwish 2020-07-21 9:08 ` kernel test robot 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 10/24] seqlock: Align multi-line macros newline escapes at 72 columns Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 11/24] dma-buf: Remove custom seqcount lockdep class key Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 12/24] dma-buf: Use sequence counter with associated wound/wait mutex Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 13/24] sched: tasks: Use sequence counter with associated spinlock Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 14/24] netfilter: conntrack: " Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 15/24] netfilter: nft_set_rbtree: Use sequence counter with associated rwlock Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 16/24] xfrm: policy: Use sequence counters with associated lock Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 17/24] timekeeping: Use sequence counter with associated raw spinlock Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 18/24] vfs: Use sequence counter with associated spinlock Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 19/24] raid5: " Ahmed S. Darwish 2020-07-22 6:40 ` Song Liu 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 20/24] iocost: " Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 21/24] NFSv4: " Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 22/24] userfaultfd: " Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 23/24] kvm/eventfd: " Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 15:55 ` [PATCH v4 24/24] hrtimer: Use sequence counter with associated raw spinlock Ahmed S. Darwish 2020-07-29 14:33 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-07-20 16:49 ` [PATCH v4 00/24] seqlock: Extend seqcount API with associated locks Eric Biggers 2020-07-20 17:33 ` Ahmed S. Darwish 2020-08-27 11:40 ` [PATCH v1 0/8] seqlock: Introduce seqcount_latch_t Ahmed S. Darwish 2020-08-27 11:40 ` [PATCH v1 1/8] time/sched_clock: Use raw_read_seqcount_latch() during suspend Ahmed S. Darwish 2020-08-27 11:40 ` [PATCH v1 2/8] mm/swap: Do not abuse the seqcount_t latching API Ahmed S. Darwish 2020-08-27 11:40 ` [PATCH v1 3/8] seqlock: Introduce seqcount_latch_t Ahmed S. Darwish 2020-09-10 15:08 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-08-27 11:40 ` [PATCH v1 4/8] time/sched_clock: Use seqcount_latch_t Ahmed S. Darwish 2020-09-10 15:08 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-08-27 11:40 ` [PATCH v1 5/8] timekeeping: " Ahmed S. Darwish 2020-09-10 15:08 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-08-27 11:40 ` [PATCH v1 6/8] x86/tsc: " Ahmed S. Darwish 2020-09-04 7:41 ` peterz 2020-09-04 8:03 ` peterz 2020-09-07 16:29 ` Ahmed S. Darwish 2020-09-07 17:30 ` peterz 2020-09-08 6:23 ` Ahmed S. Darwish 2020-09-10 15:08 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-08-27 11:40 ` [PATCH v1 7/8] rbtree_latch: " Ahmed S. Darwish 2020-09-10 15:08 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-08-27 11:40 ` [PATCH v1 8/8] seqlock: seqcount latch APIs: Only allow seqcount_latch_t Ahmed S. Darwish 2020-09-10 15:08 ` [tip: locking/core] " tip-bot2 for Ahmed S. Darwish 2020-08-28 1:07 ` [PATCH v1 0/5] seqlock: Introduce PREEMPT_RT support Ahmed S. Darwish 2020-08-28 1:07 ` [PATCH v1 1/5] seqlock: seqcount_LOCKTYPE_t: Standardize naming convention Ahmed S. Darwish 2020-08-28 8:18 ` peterz 2020-08-28 8:24 ` Ahmed S. Darwish 2020-08-28 1:07 ` [PATCH v1 2/5] seqlock: Use unique prefix for seqcount_t property accessors Ahmed S. Darwish 2020-08-28 8:27 ` peterz 2020-08-28 8:59 ` Ahmed S. Darwish 2020-08-28 1:07 ` [PATCH v1 3/5] seqlock: seqcount_t: Implement all read APIs as statement expressions Ahmed S. Darwish 2020-08-28 8:30 ` peterz 2020-08-28 8:37 ` Ahmed S. Darwish 2020-08-28 1:07 ` [PATCH v1 4/5] seqlock: seqcount_LOCKTYPE_t: Introduce PREEMPT_RT support Ahmed S. Darwish 2020-08-28 8:57 ` peterz 2020-08-28 8:59 ` peterz 2020-08-28 9:31 ` Ahmed S. Darwish 2020-08-28 14:36 ` Ahmed S. Darwish 2020-08-28 1:07 ` [PATCH v1 5/5] seqlock: PREEMPT_RT: Do not starve seqlock_t writers Ahmed S. Darwish 2020-09-04 6:52 ` [PATCH v1 0/5] seqlock: Introduce PREEMPT_RT support peterz 2020-09-04 7:30 ` Ahmed S. Darwish 2020-09-10 15:08 ` [tip: locking/core] seqlock: seqcount_LOCKNAME_t: " tip-bot2 for Ahmed S. Darwish
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200630054452.3675847-9-a.darwish@linutronix.de \ --to=a.darwish@linutronix.de \ --cc=airlied@linux.ie \ --cc=bigeasy@linutronix.de \ --cc=daniel@ffwll.ch \ --cc=dri-devel@lists.freedesktop.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mingo@redhat.com \ --cc=paulmck@kernel.org \ --cc=peterz@infradead.org \ --cc=rostedt@goodmis.org \ --cc=tglx@linutronix.de \ --cc=will@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.