2008-02-18 01:21:40

by Vince Weaver

[permalink] [raw]
Subject: finding per-process hw interrupt counts

Hello

is there a way to find out how many times a userspace program is forced to
context switch due to a hardware interrupt?

The reason for this:
I am measuring the retired instruction count of programs using performance
counters (perfmon2 patchset), and trying to find out where the
descrepancies compe from.

On x86, it seems to be:

reported_count = expected_count + 1*major_pagefaults + \
1*hardware_interrupts + known_errata + 1

I can get the pagefault info from getrusage(). The hardware_interrupts
count is my best guess at what is causing the rest, based on the LOC
field in /proc/interrupts. That's not per-process though.

Is this info available? If not, is it possible to patch the kernel to
make it so?

Thanks for any help

Vince
[email protected]