send_sig_info() from switch_to()?

From: Mikael Pettersson
Date: Wed Nov 03 2004 - 18:39:56 EST


Is it possible to do the equivalent of send_sig_info()
to current from within switch_to()? My attempts to do
so have all lead to hard kernel hangs, so I guess not,
but I though I'd ask anyway.

There is a HW-issue with delayed interrupts from performance
counter overflows on x86 and x86-64, which, if not handled,
can result in a interrupt being delivered to the wrong task.
(It's only been observed with certain high-rate events.)
I can work around this in the perfctr kernel extension by
masking the interrupt early in switch_to()'s suspend path
and manually detecting if any counters have overflowed.
Normal HW-detected overflows are routed to user-space via a
send_sig_info() in the interrupt handler. The problem is that
calling send_sig_info() from within switch_to() to signal
SW-detected overflows seems to cause kernel hangs. (I've tried
it both in the suspend path and in the resume path.)

Any ideas?

/Mikael
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/