On 04/17/2013 12:44 PM, Chris Friesen wrote:
Hi,
I'm trying to wrap my head around how linux handles branch tracing on
Book III-E. I think I understand how we set MSR[DE] and DBCR0[IDM|BT],
and how we handle fixing things up if an instruction being traced causes
an exception.
While poking around looking for answers to my previous questions I seem
to have stumbled over a bug in branch tracing for 64-bit Book-E.
Commit ec097c8 added support for branch tracing for 32-bit code, but
didn't do the 64-bit path. As it stands, debug_crit/debug_debug in
exceptions-64e.S only check DBSR_IC, so branch tracing will not get
fixed up and will die a horrible death (typically in a tbr exception
handler).
I was banging my head trying to figure out why this wasn't working when
I finally clued in to the fact that head_booke.h only applied to the
32-bit implementation. This might be something useful to put in a
comment up at the top of the file.
Chris
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev