On 7/10/19 11:57 AM, Christophe Leroy wrote:
Le 10/07/2019 à 06:54, Ravi Bangoria a écrit :
quoted
On Powerpc64, watchpoint match range is double-word granular. On
a watchpoint hit, DAR is set to the first byte of overlap between
actual access and watched range. And thus it's quite possible that
DAR does not point inside user specified range. Ex, say user creates
a watchpoint with address range 0x1004 to 0x1007. So hw would be
configured to watch from 0x1000 to 0x1007. If there is a 4 byte
access from 0x1002 to 0x1005, DAR will point to 0x1002 and thus
interrupt handler considers it as extraneous, but it's actually not,
because part of the access belongs to what user has asked. So, let
kernel pass it on to user and let user decide what to do with it
instead of silently ignoring it. The drawback is, it can generate
false positive events.
Why adding some #ifdefs based on CONFIG_8xx ?
I don't know how 8xx behaves so I'm keeping the current behavior(ignore
extraneous exception) for 8xx.
I see your commit log mentions 'Powerpc64'. What about BOOK3S/32 ?
Hmm, I should not have mention 64 there. Yes, the change should cover both
Books3S/64 and Book3S/32.