Michael Ellerman wrote:
"Naveen N. Rao" <naveen.n....@linux.vnet.ibm.com> writes:
My earlier assumption was that we have other scenarios when we are in realmode (specifically with MSR_RI unset) where we won't be able to recover from a trap, during function tracing (*). I did a set of experiments yesterday to verify that, but I was not able to uncover any such scenarios with my brief testing. So, we seem to be functioning just fine while tracing realmode C code, except for KVM.

Hmm. If MSR_RI is clear then that should indicate that you can't recover
from an interrupt, typically because you'd lose state in SRR0/1. So I
would expect things to go badly in that case.

Yes, so it looks like we aren't calling into any C code (that isn't already annotated with 'notrace') with MSR_RI unset. At least, with the usual interrupt handling on powernv. I tested this by putting a 'trap' in the function tracer callback after the recursion test. This forces a trap for each function that we trace non-recursively.

There may be other paths where we do so, but it isn't as pervasive as I previously thought. So, we should be able to exclude those paths using the paca field, as and when we find them.

- Naveen


Reply via email to