lkml.org 
[lkml]   [2019]   [Aug]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] locking/percpu_rwsem: Rewrite to not use rwsem
On Mon, Aug 05, 2019 at 04:02:41PM +0200, Peter Zijlstra wrote:
[...]
>
> static inline void percpu_up_read(struct percpu_rw_semaphore *sem)
> {
> + rwsem_release(&sem->dep_map, 1, _RET_IP_);
> +
> preempt_disable();
> /*
> * Same as in percpu_down_read().
> */
> - if (likely(rcu_sync_is_idle(&sem->rss)))
> + if (likely(rcu_sync_is_idle(&sem->rss))) {
> __this_cpu_dec(*sem->read_count);
> - else
> - __percpu_up_read(sem); /* Unconditional memory barrier */
> - preempt_enable();
> + preempt_enable();
> + return;
> + }
>
> - rwsem_release(&sem->rw_sem.dep_map, 1, _RET_IP_);

Missing a preempt_enable() here?

Regards,
Boqun

> + __percpu_up_read(sem); /* Unconditional memory barrier */
> }
>
[...]
[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2019-08-05 16:44    [W:0.104 / U:1.020 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site