Messages in this thread | | | From | Andy Lutomirski <> | Date | Tue, 14 Jul 2015 13:00:59 -0700 | Subject | Re: [Ksummit-discuss] [CORE TOPIC] lightweight per-cpu locks / restartable sequences |
| |
On Mon, Jul 13, 2015 at 7:01 AM, Christoph Lameter <cl@linux.com> wrote: > On Mon, 13 Jul 2015, Peter Zijlstra wrote: > >> Now the 'problem' is finding these special regions fast, the easy >> solution is the same as the one proposed for userspace, one big section. >> That way the interrupt only has to check if the IP is inside this >> section which is minimal effort. >> >> The down side is that all percpu ops would then end up being full >> function calls. Which on some archs is indeed faster than disabling >> interrupts, but not by much I'm afraid. > > Well one could move the entire functions that are using these ops into the > special sections. That is certainly an area requiring much more thought.
Hmm.
> >> > optimize the x86 variants if interrupts also can detect critical sections >> > and restart at defined points. >> >> I really don't see how we can beat %GS prefixes with any such scheme. > > We may be able to avoid RMV sequences which allows the processor to better > schedule operations.
True, but cmpxchg is, surprisingly, pretty fast.
Crazy thought: At the risk of proposing something ridiculous, what if we had per-cpu memory mappings? We could do this at the cost of up to 2kB of memcpy whenever we switch mms. Expensive but maybe not a showstopper.
--Andy
| |