lkml.org 
[lkml]   [2019]   [Oct]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v14 22/22] arm64: mm: Display non-present entries in ptdump
    Date
    Previously the /sys/kernel/debug/kernel_page_tables file would only show
    lines for entries present in the page tables. However it is useful to
    also show non-present entries as this makes the size and level of the
    holes more visible. This aligns the behaviour with x86 which also shows
    holes.

    Signed-off-by: Steven Price <steven.price@arm.com>
    ---
    arch/arm64/mm/dump.c | 25 +++++++++++++------------
    1 file changed, 13 insertions(+), 12 deletions(-)

    diff --git a/arch/arm64/mm/dump.c b/arch/arm64/mm/dump.c
    index 9d9b740a86d2..3203dd8e6d0a 100644
    --- a/arch/arm64/mm/dump.c
    +++ b/arch/arm64/mm/dump.c
    @@ -269,21 +269,22 @@ static void note_page(struct ptdump_state *pt_st, unsigned long addr, int level,
    if (st->current_prot) {
    note_prot_uxn(st, addr);
    note_prot_wx(st, addr);
    - pt_dump_seq_printf(st->seq, "0x%016lx-0x%016lx ",
    + }
    +
    + pt_dump_seq_printf(st->seq, "0x%016lx-0x%016lx ",
    st->start_address, addr);

    - delta = (addr - st->start_address) >> 10;
    - while (!(delta & 1023) && unit[1]) {
    - delta >>= 10;
    - unit++;
    - }
    - pt_dump_seq_printf(st->seq, "%9lu%c %s", delta, *unit,
    - pg_level[st->level].name);
    - if (pg_level[st->level].bits)
    - dump_prot(st, pg_level[st->level].bits,
    - pg_level[st->level].num);
    - pt_dump_seq_puts(st->seq, "\n");
    + delta = (addr - st->start_address) >> 10;
    + while (!(delta & 1023) && unit[1]) {
    + delta >>= 10;
    + unit++;
    }
    + 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);
    + pt_dump_seq_puts(st->seq, "\n");

    if (addr >= st->marker[1].start_address) {
    st->marker++;
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-10-28 15:00    [W:2.819 / U:0.108 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site