Actually, now that I read some docs I see that supervisor code is executed in the real CPU; they trap the call and does a trick with the program counter so they can resume virtual CPU execution when the call is completed.
The thread support (Helgrind) is for verifying correctness and not performance measurements. For threads in Memcheck is implements its own pthreads-compliant library and runs the emulator process single-threaded.
/ Jonas Walldén
Previous text:
2004-01-17 14:30: Subject: file limits
You'll also get (larger) problems with threaded programs. The results will be wrong regardless of whether you use real or emulated time for scheduling. If you use the real time, preemption will occur too often. If you use emulated time, threads doing system calls will appear to reenter the ready state too soon or too late, depeding on how much emulated time you account for the system call (it's not practical to try to compute the amount correctly).
/ Marcus Comstedt (ACROSS) (Hail Ilpalazzo!)