forked from tsuna/contextswitch
-
Notifications
You must be signed in to change notification settings - Fork 0
Little micro-benchmark for Linux to test the cost of context switching and system calls
License
JasonXing/contextswitch
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Little micro-benchmarks to assess the performance overhead of context switching. timesyscall: Benchmarks the overhead of a system call. timectxsw: Benchmarks the overhead of context switching between 2 processes. timetctxsw: Benchmarks the overhead of context switching between 2 threads. timectxswws: Benchmarks the overhead of context switching between 2 processes using a working set of the size specified in argument. timetctxsw2: Benchmarks the overhead of context switching between 2 threads, by using a shed_yield() method. If you do taskset -a 1, all threads should be scheduled on the same processor, so you are really doing thread context switch. Then to be sure that you are really doing it, just do: strace -ff -tt -v taskset -a 1 ./timetctxsw2 Now why sched_yield() is enough for testing ? Because, it place the current thread at the end of the ready queue. So the next ready thread will be scheduled. I also added sched_setscheduler(SCHED_FIFO) to get the best performances.
About
Little micro-benchmark for Linux to test the cost of context switching and system calls
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- C 80.5%
- Shell 12.8%
- Makefile 6.7%