Messages in this thread | | | Date | Thu, 9 Jul 2015 15:09:16 -0400 | From | Chris Mason <> | Subject | Re: [Ksummit-discuss] [CORE TOPIC] lightweight per-cpu locks / restartable sequences |
| |
On Thu, Jul 09, 2015 at 11:32:45AM -0700, Andy Lutomirski wrote: > Several people have suggested that Linux should provide users with a > lightweight mechanism that allows light-weight fancy per-cpu > operations. This could be used to implement free lists or counters > without any barriers or atomic operations, for example. > > There are at least three approaches floating around. Paul Turner > proposed a single block of userspace code that aborts if it's > preempted -- within that block, percpu variables can be used safely. > Mathieu Desnoyers proposed a more complex variant. I proposed a much > simpler approach of just offering percpu gs bases on x86, allowing > cmpxchg (as opposed to lock cmpxchg) to access percpu variables. > > None of these should be hard to implement, but it would be nice to > hash out whether the kernel should support such a mechanism at all > and, if so, what it would look like.
[ added Jens and Shaohua ]
We've started experimenting with these to cut overheads in a few critical places, and while we don't have numbers yet I really hope it won't take too long.
I think the topic is really interesting and we'll be able to get numbers from production workloads to help justify and compare different approaches.
-chris
| |