[Ksummit-discuss] [CORE TOPIC] lightweight per-cpu locks / restartable sequences
Chris Mason
clm at fb.com
Thu Jul 9 19:09:16 UTC 2015
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
More information about the Ksummit-discuss
mailing list