Re: [PATCH v4 1/2] rcu: uninline rcu_lock_acquire() and rcu_lock_release()

From: Peter Zijlstra
Date: Tue Jul 01 2014 - 07:41:56 EST


On Mon, Jun 30, 2014 at 06:18:49PM +0200, Oleg Nesterov wrote:
> +static inline void __rcu_lock_acquire(struct lockdep_map *map, unsigned long ip)
> {
> + lock_acquire(map, 0, 0, 2, 0, NULL, ip);
> }

> +extern void rcu_lock_acquire(void);
> +extern void rcu_lock_release(void);
> +extern void rcu_lock_acquire_bh(void);
> +extern void rcu_lock_release_bh(void);
> +extern void rcu_lock_acquire_sched(void);
> +extern void rcu_lock_release_sched(void);

> diff --git a/include/linux/srcu.h b/include/linux/srcu.h
> index a2783cb..5c06289 100644
> --- a/include/linux/srcu.h
> +++ b/include/linux/srcu.h
> @@ -219,7 +219,7 @@ static inline int srcu_read_lock(struct srcu_struct *sp) __acquires(sp)
> {
> int retval = __srcu_read_lock(sp);
>
> - rcu_lock_acquire(&(sp)->dep_map);
> + __rcu_lock_acquire(&(sp)->dep_map, _THIS_IP_);
> return retval;
> }

Would an srcu_lock_acquire() not make sense here?

In any case, not wrong per se, just a consistency thing that stood out.

Attachment: pgp6ab20_mQ_4.pgp
Description: PGP signature