On Thu, Oct 11, 2018 at 12:22 PM Avi Kivity <[email protected]> wrote:
> > On 11/10/2018 12.14, Nadav Har'El 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, the kernel and userspace run in different address spaces (CR3 switch > on every kernel entry and exit). It's not a thread context switch cost, but > a syscall cost. > Right, but AFAICT, it's also an interrupt cost. So whatever the mechanism that causes the context switch to another thread, you need to switch to kernel CR3 and to the userspace thread CR3. - 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.
