1 ===================== 2 DAWR issues on POWER9 3 ===================== 4 5 On older POWER9 processors, the Data Address W 6 cause a checkstop if it points to cache inhibi 7 has no way to distinguish CI memory when confi 8 systems, the DAWR is disabled. 9 10 Affected processor revisions 11 ============================ 12 13 This issue is only present on processors prior 14 found in /proc/cpuinfo:: 15 16 processor : 0 17 cpu : POWER9, altivec supporte 18 clock : 3800.000000MHz 19 revision : 2.3 (pvr 004e 1203) 20 21 On a system with the issue, the DAWR is disabl 22 23 Technical Details: 24 ================== 25 26 DAWR has 6 different ways of being set. 27 1) ptrace 28 2) h_set_mode(DAWR) 29 3) h_set_dabr() 30 4) kvmppc_set_one_reg() 31 5) xmon 32 33 For ptrace, we now advertise zero breakpoints 34 PPC_PTRACE_GETHWDBGINFO call. This results in 35 software emulation of the watchpoint (which is 36 37 h_set_mode(DAWR) and h_set_dabr() will now ret 38 guest on a POWER9 host. Current Linux guests i 39 they will silently not get the DAWR. 40 41 kvmppc_set_one_reg() will store the value in t 42 actually set it on POWER9 hardware. This is do 43 migration from POWER8 to POWER9, at the cost o 44 DAWR on the migration. 45 46 For xmon, the 'bd' command will return an erro 47 48 Consequences for users 49 ====================== 50 51 For GDB watchpoints (ie 'watch' command) on PO 52 will accept the command. Unfortunately since t 53 support for the watchpoint, GDB will software 54 making it run very slowly. 55 56 The same will also be true for any guests star 57 host. The watchpoint will fail and GDB will fa 58 emulation. 59 60 If a guest is started on a POWER8 host, GDB wi 61 and configure the hardware to use the DAWR. Th 62 speed since it can use the hardware emulation. 63 guest is migrated to a POWER9 host, the watchp 64 POWER9. Loads and stores to the watchpoint loc 65 trapped in GDB. The watchpoint is remembered, 66 migrated back to the POWER8 host, it will star 67 68 Force enabling the DAWR 69 ======================= 70 Kernels (since ~v5.2) have an option to force 71 72 echo Y > /sys/kernel/debug/powerpc/dawr_enab 73 74 This enables the DAWR even on POWER9. 75 76 This is a dangerous setting, USE AT YOUR OWN R 77 78 Some users may not care about a bad user crash 79 (ie. single user/desktop systems) and really w 80 allows them to force enable DAWR. 81 82 This flag can also be used to disable DAWR acc 83 cleared, all DAWR access should be cleared imm 84 machine once again safe from crashing. 85 86 Userspace may get confused by toggling this. I 87 enabled/disabled between getting the number of 88 PTRACE_GETHWDBGINFO) and setting the breakpoin 89 inconsistent view of what's available. Similar 90 91 For the DAWR to be enabled in a KVM guest, the 92 enabled in the host AND the guest. For this re 93 POWERVM as it doesn't allow the HCALL to work. 94 dawr_enable_dangerous file will fail if the hy 95 writing the DAWR. 96 97 To double check the DAWR is working, run this 98 99 tools/testing/selftests/powerpc/ptrace/ptrac 100 101 Any errors/failures/skips mean something is wr
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.