[PATCH v4 3/5] arm64: indent ptdump by level, aligning attributes
Maxwell Bland
mbland at motorola.com
Tue Jun 18 07:42:08 PDT 2024
Outputs each level of the page table with two additional spaces for
parsers, distinction, and readability while maintaining the alignment of
region size and attributes.
Signed-off-by: Maxwell Bland <mbland at motorola.com>
---
arch/arm64/mm/ptdump.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/arch/arm64/mm/ptdump.c b/arch/arm64/mm/ptdump.c
index 8f0b459c13ed..2ec16b523043 100644
--- a/arch/arm64/mm/ptdump.c
+++ b/arch/arm64/mm/ptdump.c
@@ -336,6 +336,10 @@ static void note_page(struct ptdump_state *pt_st, unsigned long addr, int level,
addr >= st->marker[1].start_address) {
const char *unit = units;
unsigned long delta;
+ unsigned int i;
+
+ for (i = 0; i < st->level; i++)
+ pt_dump_seq_printf(st->seq, " ");
if (st->current_prot) {
note_prot_uxn(st, addr);
@@ -362,6 +366,10 @@ static void note_page(struct ptdump_state *pt_st, unsigned long addr, int level,
st->start_address, addr);
}
+ /* Align region information regardlesss of level */
+ for (i = st->level; i < 4; i++)
+ pt_dump_seq_printf(st->seq, " ");
+
delta >>= 10;
while (!(delta & 1023) && unit[1]) {
delta >>= 10;
@@ -369,6 +377,7 @@ static void note_page(struct ptdump_state *pt_st, unsigned long addr, int level,
}
pt_dump_seq_printf(st->seq, "%9lu%c %s", delta, *unit,
pg_level[st->level].name);
+
if (st->current_prot && pg_level[st->level].bits)
dump_prot(st, pg_level[st->level].bits,
pg_level[st->level].num);
--
2.39.2
More information about the linux-arm-kernel
mailing list