[Crash-utility] [PATCH] Fix "vtop" command to display the swapinfo for arm64 kernel 5.19.0+
Guanyou Chen
chenguanyou9338 at gmail.com
Wed Sep 27 09:03:16 UTC 2023
Hi Lianbo
Git tree with patch applied:
https://github.com/Penguin38/crash/commit/d8181be93b34a2d84dcb0cc384d7baaaab067f42
Guanyou Chen <chenguanyou9338 at gmail.com> 于2023年9月26日周二 20:43写道:
> arm64/pgtable: support __HAVE_ARCH_PTE_SWP_EXCLUSIVE
>
> Let's use one of the type bits: core-mm only supports 5, so there is no
> need to consume 6.
>
> Note that we might be able to reuse bit 1, but reusing bit 1 turned out
> problematic in the past for PROT_NONE handling; so let's play safe and use
> another bit.
>
> Link: https://lkml.kernel.org/r/20220329164329.208407-5-david@redhat.com
>
> Before:
> crash> vtop 70504000
> VIRTUAL PHYSICAL
> 70504000 (not mapped)
>
> PAGE DIRECTORY: ffffff80f265c000
> PGD: ffffff80f265c008 => 800000141537003
> PMD: ffffff8101537c10 => 800000141538003
> PTE: ffffff8101538820 => 12bc3e04
>
> PTE vtop: cannot determine swap location
>
> After:
> crash> vtop 70504000
> VIRTUAL PHYSICAL
> 70504000 (not mapped)
>
> PAGE DIRECTORY: ffffff80f265c000
> PGD: ffffff80f265c008 => 800000141537003
> PMD: ffffff8101537c10 => 800000141538003
> PTE: ffffff8101538820 => 12bc3e04
>
> PTE SWAP OFFSET
> 12bc3e04 /first_stage_ramdisk/dev/block/zram0 1227838
>
> VMA START END FLAGS FILE
> ffffff80dfe7b578 70504000 707bd000 100073
>
> SWAP: /first_stage_ramdisk/dev/block/zram0 OFFSET: 1227838
>
> Signed-off-by: chenguanyou <chenguanyou at xiaomi.com>
> ---
> arm64.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/arm64.c b/arm64.c
> index 39d5f04..ea1b51b 100644
> --- a/arm64.c
> +++ b/arm64.c
> @@ -468,8 +468,16 @@ arm64_init(int when)
> }
> }
>
> -
> - if (THIS_KERNEL_VERSION >= LINUX(4,0,0)) {
> + if (THIS_KERNEL_VERSION >= LINUX(5,19,0)) {
> + ms->__SWP_TYPE_BITS = 5;
> + ms->__SWP_TYPE_SHIFT = 3;
> + ms->__SWP_TYPE_MASK = ((1UL << ms->__SWP_TYPE_BITS) - 1);
> + ms->__SWP_OFFSET_SHIFT = (ms->__SWP_TYPE_BITS +
> ms->__SWP_TYPE_SHIFT);
> + ms->__SWP_OFFSET_BITS = 50;
> + ms->__SWP_OFFSET_MASK = ((1UL << ms->__SWP_OFFSET_BITS) - 1);
> + ms->PTE_PROT_NONE = (1UL << 58);
> + ms->PTE_FILE = 0; /* unused */
> + } else if (THIS_KERNEL_VERSION >= LINUX(4,0,0)) {
> ms->__SWP_TYPE_BITS = 6;
> ms->__SWP_TYPE_SHIFT = 2;
> ms->__SWP_TYPE_MASK = ((1UL << ms->__SWP_TYPE_BITS) - 1);
> --
> 2.39.0
>
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://listman.redhat.com/mailman/listinfo/crash-utility
> Contribution Guidelines: https://github.com/crash-utility/crash/wiki
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/crash-utility/attachments/20230927/770ab711/attachment-0001.htm>
More information about the Crash-utility
mailing list