RE: [PATCH 1/4] staging: lustre: obdclass: change spinlock of key to rwlock

From: David Laight
Date: Thu May 03 2018 - 09:49:21 EST


From: James Simmons
> Sent: 02 May 2018 19:22
> From: Li Xi <lixi@xxxxxxx>
>
> Most of the time, keys are never changed. So rwlock might be
> better for the concurrency of key read.

OTOH unless there is contention on the spin lock during reads the
additional cost of a rwlock (probably double that of a spinlock)
will hurt performance.

...
> - spin_lock(&lu_keys_guard);
> + read_lock(&lu_keys_guard);
> atomic_inc(&lu_key_initing_cnt);
> - spin_unlock(&lu_keys_guard);
> + read_unlock(&lu_keys_guard);

WTF, seems unlikely that you need to hold any kind of lock
over an atomic_inc().

If this is just ensuring that no code holds the lock then
it would need to request the write_lock().
(and would need a comment)

David