• Mark Rutland's avatar
    arm64: mm: dump: log span level · 48dd73c5
    Mark Rutland authored
    
    
    The page table dump code logs spans of entries at the same level
    (pgd/pud/pmd/pte) which have the same attributes. While we log the
    (decoded) attributes, we don't log the level, which leaves the output
    ambiguous and/or confusing in some cases.
    
    For example:
    
    0xffff800800000000-0xffff800980000000           6G       RW NX SHD AF        BLK UXN MEM/NORMAL
    
    If using 4K pages, this may describe a span of 6 1G block entries at the
    PGD/PUD level, or 3072 2M block entries at the PMD level.
    
    This patch adds the page table level to each output line, removing this
    ambiguity. For the example above, this will produce:
    
    0xffffffc800000000-0xffffffc980000000           6G PUD       RW NX SHD AF        BLK UXN MEM/NORMAL
    
    When 3 level tables are in use, and we use the asm-generic/nopud.h
    definitions, the dump code treats each entry in the PGD as a 1 element
    table at the PUD level, and logs spans as being PUDs, which can be
    confusing. To counteract this, the "PUD" mnemonic is replaced with "PGD"
    when CONFIG_PGTABLE_LEVELS <= 3. Likewise for "PMD" when
    CONFIG_PGTABLE_LEVELS <= 2.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Huang Shijie <shijie.huang@arm.com>
    Cc: Laura Abbott <labbott@fedoraproject.org>
    Cc: Steve Capper <steve.capper@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    48dd73c5