On Thu, Oct 11, 2018 at 12:14 PM Nadav Har'El <[email protected]> wrote:

> On Thu, Oct 11, 2018 at 12:10 PM Pekka Enberg <[email protected]>
> wrote:
>
>>
>>
>> On Thu, Oct 11, 2018 at 11:50 AM Nadav Har'El <[email protected]> wrote:
>>
>>>
>>> tests/misc-ctxsw.cc
>>>
>>> To run it in OSv you can do "scripts/build image=tests" and then
>>> "scripts/run.py -e tests/misc-ctxsw.so"
>>>
>>> What this test does is to create two threads (on the same core, or on
>>> two different cores) which alternate waking the other thread and then
>>> waiting (via a condition variable).
>>> Strangely I just tested this again on my laptop (which is newer than the
>>> paper), and got (for the colocated case) in OSv is around 400ns, and in
>>> Linux around 1800ns, so the difference is even more pronounced today.
>>>
>>
>> Perhaps you are seeing the effects of Meltdown mitigation in Linux
>> context switching paths?
>>
>
> Perhaps, I didn't look into this carefully, I just ran it now to make sure
> I was pointing the OP to the right test :-)
> Does meltdown mitigation have a performance cost even when switching
> between two threads belonging to the same process?
>

Yes, that's my understanding.

Linux mitigates against Meltdown with kernel page table isolation.
Userspace processes no longer have kernel memory mapped in the upper half
of the address space (to avoid side-channel attacks from reading arbitrary
mapped memory), which means that the kernel needs to switch page tables to
access kernel memory. Search for SWITCH_TO_KERNEL_CR3 for system call entry
in arch/x86/entry/entry_64.S, for example.

- Pekka

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to