Thread (5 messages) 5 messages, 2 authors, 2014-07-20

Re: [RFC PATCH] Input: evdev - drop redundant list-locking

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2014-07-20 19:53:33

On Sun, Jul 20, 2014 at 09:00:02PM +0200, David Herrmann wrote:
Hi

On Sun, Jul 20, 2014 at 8:54 PM, Dmitry Torokhov
[off-list ref] wrote:
quoted
On Sun, Jul 20, 2014 at 08:48:12PM +0200, David Herrmann wrote:
quoted
evdev->client_list is rcu-protected. There is no need to have a
separate spinlock just for the list. Either one is good enough, so lets
drop the spinlock.

Signed-off-by: David Herrmann <redacted>
---
Hi

I stumbled across this one when doing some evdev reviews. Maybe I'm missing
something obvious and I should stop coding on Sundays. But the RCU-protection
should be enough here, right?
RCU protection is for traversing list only, writes (as is adding and removing
elements from client_list) still have to be mutually exclusive.
Oh, you mean to protect against concurrent writes? Right, but we could
just use evdev->mutex for that. I mean all paths that call
attach_client() or detach_client() already lock evdev->mutex at some
point. It would allow us to get rid of the lock.
Right, we probably could do it by pulling taking/releasing evdev->mutex into
evdev_pen and evdev_release.

Thanks.

-- 
Dmitry
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help