Hacker News new | ask | show | jobs
by ekr 3952 days ago
Any tips on profiling windows device drivers? I've tried xperf, but it doesn't allow you (or I haven't seen how) to change the frequency of the sampling, and can only do a system-wide profile.

I've also tried vtune, but it doesn't support stack-tracing (or things like lbr) for system-wide profiling, and it doesn't have a specific option for sampling drivers. You can attach to the System process, but then you're missing a lot of the your driver code, that runs in other contexts.

I kept thinking about implementing my own sampling profiler (using LBR for stack-tracing, and hardware performance events, like linux's oprofile/ freebsd's hwpmc), but I can't see how I could only profile my driver, and not the whole system, without hooking the Windows scheduler. I guess I will just profile the whole system and check if the program counter is inside my module.