This patchset improves dump_tlb.c to use proper hazard macros (for which new macros are added for tlb reads), and to take into account the global bit, the EHINV invalid bit, RI & XI bits, and XPA. Patch 1 also adds a MIPS specific SysRq operation ('x') to dump the TLBs on running CPUs. This is mainly for debug purposes, however I've included it for completeness as an RFC patch, in case others find it helpful. Patches 2 & 4 add and make use of tlbr related hazard macros (which are technically distinct, though identically implemented, to tlbw hazards). Patch 3 adds EntryLo defines used in later patches (particularly patch 6). Patches 5-8 improve the TLB entry matching so as to more closely match which entries hardware treats as matching (taking the global and EHINV bits into account), and does some refactoring while at it. Patches 9-10 improve the TLB printing to handle RI & XI bits (which show up in the physical address at the moment), and XPA (where the top of the physical address needs to be read from EntryLo registers with mfhc0). Changes in v2: - New patch 3 (Maceij) including reordered MIPS_ENTRYLO_RI/XI definitions from patch 7 of v1 (patch 9 in v2). - New patch 6 (Maciej), using mipsregs.h EntryLo bit definitions. - Patch 7: Check both global bits and add comment (Ralf). - Patch 7: Fix typo s/absense/absence/ (Maciej). - Patch 7: Use MIPS_ENTRYLO_G definition (Maciej). - Patch 7: Update r3k_dump_tlb.c too (Maciej - please test). - Dropped patch 9 (v1) (a typo which Ralf has already got upstream). James Hogan (10): MIPS: Add SysRq operation to dump TLBs on all CPUs MIPS: hazards: Add hazard macros for tlb read MIPS: mipsregs.h: Add EntryLo bit definitions MIPS: dump_tlb: Use tlbr hazard macros MIPS: dump_tlb: Refactor TLB matching MIPS: dump_tlb: Make use of EntryLo bit definitions MIPS: dump_tlb: Take global bit into account MIPS: dump_tlb: Take EHINV bit into account MIPS: dump_tlb: Take RI/XI bits into account MIPS: dump_tlb: Take XPA into account arch/mips/include/asm/hazards.h | 52 ++++++++++++++++++ arch/mips/include/asm/mipsregs.h | 22 ++++++++ arch/mips/kernel/Makefile | 1 + arch/mips/kernel/sysrq.c | 77 +++++++++++++++++++++++++++ arch/mips/lib/dump_tlb.c | 110 +++++++++++++++++++++++++-------------- arch/mips/lib/r3k_dump_tlb.c | 13 ++--- drivers/tty/sysrq.c | 1 + 7 files changed, 231 insertions(+), 45 deletions(-) create mode 100644 arch/mips/kernel/sysrq.c Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx> Cc: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx> Cc: Steven J. Hill <Steven.Hill@xxxxxxxxxx> Cc: David Daney <ddaney@xxxxxxxxxxxxxxxxxx> Cc: linux-mips@xxxxxxxxxxxxxx -- 2.3.6