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.
