<div dir="ltr"><div>Thank you for the update, Chen.</div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Sep 26, 2023 at 8:44 PM Guanyou Chen <<a href="mailto:chenguanyou9338@gmail.com">chenguanyou9338@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">arm64/pgtable: support __HAVE_ARCH_PTE_SWP_EXCLUSIVE<br><br></div></blockquote><div><br></div><div>We can add the kernel commit to patch log as I mentioned here:</div><div><a href="https://listman.redhat.com/archives/crash-utility/2023-September/011010.html">https://listman.redhat.com/archives/crash-utility/2023-September/011010.html</a></div><div><br></div><div><span style="color:rgb(0,0,0)">570ef363509b ("arm64/pgtable: support __HAVE_ARCH_PTE_SWP_EXCLUSIVE")</span> </div><div><br></div><div>Otherwise, for the patch: Ack.<br></div><div><br></div><div>BTW: maybe Kazu can help improve the patch log when merging(if the patch is also fine to him).</div><div><br></div><div>Thanks</div><div>Lianbo</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Let's use one of the type bits: core-mm only supports 5, so there is no<br>need to consume 6.<br><br>Note that we might be able to reuse bit 1, but reusing bit 1 turned out<br>problematic in the past for PROT_NONE handling; so let's play safe and use<br>another bit.<br><br>Link: <a href="https://lkml.kernel.org/r/20220329164329.208407-5-david@redhat.com" target="_blank">https://lkml.kernel.org/r/20220329164329.208407-5-david@redhat.com</a><br><br>Before:<br>crash> vtop 70504000<br>VIRTUAL     PHYSICAL<br>70504000    (not mapped)<br><br>PAGE DIRECTORY: ffffff80f265c000<br>   PGD: ffffff80f265c008 => 800000141537003<br>   PMD: ffffff8101537c10 => 800000141538003<br>   PTE: ffffff8101538820 => 12bc3e04<br><br>  PTE     vtop: cannot determine swap location<br><br>After:<br>crash> vtop 70504000<br>VIRTUAL     PHYSICAL<br>70504000    (not mapped)<br><br>PAGE DIRECTORY: ffffff80f265c000<br>   PGD: ffffff80f265c008 => 800000141537003<br>   PMD: ffffff8101537c10 => 800000141538003<br>   PTE: ffffff8101538820 => 12bc3e04<br><br>  PTE                     SWAP                  OFFSET<br>12bc3e04  /first_stage_ramdisk/dev/block/zram0  1227838<br><br>      VMA           START       END     FLAGS FILE<br>ffffff80dfe7b578   70504000   707bd000 100073<br><br>SWAP: /first_stage_ramdisk/dev/block/zram0  OFFSET: 1227838<br><br>Signed-off-by: chenguanyou <<a href="mailto:chenguanyou@xiaomi.com" target="_blank">chenguanyou@xiaomi.com</a>><br><div>---<br> arm64.c | 12 ++++++++++--<br> 1 file changed, 10 insertions(+), 2 deletions(-)<br><br>diff --git a/arm64.c b/arm64.c<br>index 39d5f04..ea1b51b 100644<br>--- a/arm64.c<br>+++ b/arm64.c<br>@@ -468,8 +468,16 @@ arm64_init(int when)<br>            }<br>        }<br><br>-<br>-       if (THIS_KERNEL_VERSION >= LINUX(4,0,0)) {<br>+       if (THIS_KERNEL_VERSION >= LINUX(5,19,0)) {<br>+           ms->__SWP_TYPE_BITS = 5;<br>+           ms->__SWP_TYPE_SHIFT = 3;<br>+           ms->__SWP_TYPE_MASK = ((1UL << ms->__SWP_TYPE_BITS) - 1);<br>+           ms->__SWP_OFFSET_SHIFT = (ms->__SWP_TYPE_BITS + ms->__SWP_TYPE_SHIFT);<br>+           ms->__SWP_OFFSET_BITS = 50;<br>+           ms->__SWP_OFFSET_MASK = ((1UL << ms->__SWP_OFFSET_BITS) - 1);<br>+           ms->PTE_PROT_NONE = (1UL << 58);<br>+           ms->PTE_FILE = 0;  /* unused */<br>+       } else if (THIS_KERNEL_VERSION >= LINUX(4,0,0)) {<br>            ms->__SWP_TYPE_BITS = 6;<br>            ms->__SWP_TYPE_SHIFT = 2;<br>            ms->__SWP_TYPE_MASK = ((1UL << ms->__SWP_TYPE_BITS) - 1);<br>-- <br>2.39.0</div></div>
</blockquote></div></div>