From patchwork Tue Oct 18 08:17:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xianting Tian X-Patchwork-Id: 4004 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4ac7:0:0:0:0:0 with SMTP id y7csp1837825wrs; Tue, 18 Oct 2022 01:22:56 -0700 (PDT) X-Google-Smtp-Source: AMsMyM62wKwgUCzSTIpqtYahq6egBSGf0y2txZfFuG+Uh/a4vT6fxoQaqxwdNpSx4YdmuMmU76+S X-Received: by 2002:a17:906:4fd1:b0:787:434f:d755 with SMTP id i17-20020a1709064fd100b00787434fd755mr1389607ejw.356.1666081376426; Tue, 18 Oct 2022 01:22:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666081376; cv=none; d=google.com; s=arc-20160816; b=03uCBqABXVYxa2MI3HlY2lSB9QG229i+nXQv3WmR87ioyHo0eHschx9nbkFipvL4bh o6WD9ZIC6sBm3s/JHd0az8omr7E1s9K8L757dcGvutCzNvSyYISxCRRrOeGzcNLZVL5O ykdEjwKH+/x6wMdOAcZgth0yIfIbH1YEddNFiQFW8MtAvLQ6kdV2f4/hJo21coWRNJdX UyXeqKwJag0KNuiXIt6mm7+pgSapH+ddrEQsgXNRCrtPyzaVYYjLN9WS1vO4yuCztwJd DQDsQtDsbSh3WpgMbK/7r7DvziHXtwLpQD/DBnVmbOvfpTVow3zhxaIp2gX8r8r82I7J nCag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=pvqY8k3nYDHiMRLwZjG6oFw0zusZEFRCqh1z5sVJcHI=; b=UsjOSx6fHxzlZi7W1wG205UPzyPDmMHCWLEFgH8zBVIsl1Fc37nBXUv156ti42zU4I wXyGrmVce/5TGKomHh+7qAf+/B1CN5Aigwjyn3aUo8F2aBxZoy6x1glrESd7tukcQSXl XBaXofGmuBWStwVSW8YZ1sqLs9sENDpOjooktiED/q+naN6mE+L1vp4RIEWVlyHFdZBV UfjBWijiIqmNAlqpgWEWAxurG3fljTj/BRLO8g+JuD0T8h+kgFU9/TUJQX0Az8zKoKAF OF9js4J96PxSeDACuhddmWpdySHP6UkfxIlOuri2VZhsFbWgxxWxM4mZnRTLI+RWLyhH +1zA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h4-20020a0564020e0400b00453b9f11bb1si10529617edh.206.2022.10.18.01.22.31; Tue, 18 Oct 2022 01:22:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230200AbiJRISY (ORCPT + 99 others); Tue, 18 Oct 2022 04:18:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58522 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230170AbiJRISR (ORCPT ); Tue, 18 Oct 2022 04:18:17 -0400 Received: from out30-44.freemail.mail.aliyun.com (out30-44.freemail.mail.aliyun.com [115.124.30.44]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 47905923F6; Tue, 18 Oct 2022 01:18:13 -0700 (PDT) X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R141e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018045192;MF=xianting.tian@linux.alibaba.com;NM=1;PH=DS;RN=24;SR=0;TI=SMTPD_---0VSTz0b1_1666081088; Received: from localhost.localdomain(mailfrom:xianting.tian@linux.alibaba.com fp:SMTPD_---0VSTz0b1_1666081088) by smtp.aliyun-inc.com; Tue, 18 Oct 2022 16:18:09 +0800 From: Xianting Tian To: paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, anup@brainfault.org, heiko@sntech.de, guoren@kernel.org, mick@ics.forth.gr, alexandre.ghiti@canonical.com, bhe@redhat.com, vgoyal@redhat.com, dyoung@redhat.com, corbet@lwn.net, Conor.Dooley@microchip.com, bagasdotme@gmail.com Cc: kexec@lists.infradead.org, linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, crash-utility@redhat.com, heinrich.schuchardt@canonical.com, k-hagio-ab@nec.com, hschauhan@nulltrace.org, yixun.lan@gmail.com, Xianting Tian Subject: [PATCH V3 1/2] RISC-V: Add arch_crash_save_vmcoreinfo support Date: Tue, 18 Oct 2022 16:17:54 +0800 Message-Id: <20221018081755.6214-2-xianting.tian@linux.alibaba.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221018081755.6214-1-xianting.tian@linux.alibaba.com> References: <20221018081755.6214-1-xianting.tian@linux.alibaba.com> X-Spam-Status: No, score=-9.9 required=5.0 tests=BAYES_00, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, UNPARSEABLE_RELAY,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747012945293566074?= X-GMAIL-MSGID: =?utf-8?q?1747012945293566074?= Add arch_crash_save_vmcoreinfo(), which exports VM layout(MODULES, VMALLOC, VMEMMAP and KERNEL_LINK_ADDR ranges), va bits and ram base for vmcore. Default pagetable levels and PAGE_OFFSET aren't same for different kernel version as below. For pagetable levels, it sets sv57 by default and falls back to setting sv48 at boot time if sv57 is not supported by the hardware. For ram base, the default value is 0x80200000 for qemu riscv64 env and, for example, is 0x200000 on the XuanTie 910 CPU. * Linux Kernel 5.18 ~ * PGTABLE_LEVELS = 5 * PAGE_OFFSET = 0xff60000000000000 * Linux Kernel 5.17 ~ * PGTABLE_LEVELS = 4 * PAGE_OFFSET = 0xffffaf8000000000 * Linux Kernel 4.19 ~ * PGTABLE_LEVELS = 3 * PAGE_OFFSET = 0xffffffe000000000 Since these configurations change from time to time and version to version, it is preferable to export them via vmcoreinfo than to change the crash's code frequently, it can simplify the development of crash tool. Signed-off-by: Xianting Tian --- arch/riscv/kernel/Makefile | 1 + arch/riscv/kernel/crash_core.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 arch/riscv/kernel/crash_core.c diff --git a/arch/riscv/kernel/Makefile b/arch/riscv/kernel/Makefile index db6e4b1294ba..4cf303a779ab 100644 --- a/arch/riscv/kernel/Makefile +++ b/arch/riscv/kernel/Makefile @@ -81,6 +81,7 @@ obj-$(CONFIG_KGDB) += kgdb.o obj-$(CONFIG_KEXEC_CORE) += kexec_relocate.o crash_save_regs.o machine_kexec.o obj-$(CONFIG_KEXEC_FILE) += elf_kexec.o machine_kexec_file.o obj-$(CONFIG_CRASH_DUMP) += crash_dump.o +obj-$(CONFIG_CRASH_CORE) += crash_core.o obj-$(CONFIG_JUMP_LABEL) += jump_label.o diff --git a/arch/riscv/kernel/crash_core.c b/arch/riscv/kernel/crash_core.c new file mode 100644 index 000000000000..8d7f5ff108da --- /dev/null +++ b/arch/riscv/kernel/crash_core.c @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: GPL-2.0-only + +#include +#include + +void arch_crash_save_vmcoreinfo(void) +{ + VMCOREINFO_NUMBER(VA_BITS); + VMCOREINFO_NUMBER(phys_ram_base); + + vmcoreinfo_append_str("NUMBER(PAGE_OFFSET)=0x%lx\n", PAGE_OFFSET); + vmcoreinfo_append_str("NUMBER(VMALLOC_START)=0x%lx\n", VMALLOC_START); + vmcoreinfo_append_str("NUMBER(VMALLOC_END)=0x%lx\n", VMALLOC_END); + vmcoreinfo_append_str("NUMBER(VMEMMAP_START)=0x%lx\n", VMEMMAP_START); + vmcoreinfo_append_str("NUMBER(VMEMMAP_END)=0x%lx\n", VMEMMAP_END); +#ifdef CONFIG_64BIT + vmcoreinfo_append_str("NUMBER(MODULES_VADDR)=0x%lx\n", MODULES_VADDR); + vmcoreinfo_append_str("NUMBER(MODULES_END)=0x%lx\n", MODULES_END); +#endif + + if (IS_ENABLED(CONFIG_64BIT)) { +#ifdef CONFIG_KASAN + vmcoreinfo_append_str("NUMBER(KASAN_SHADOW_START)=0x%lx\n", KASAN_SHADOW_START); + vmcoreinfo_append_str("NUMBER(KASAN_SHADOW_END)=0x%lx\n", KASAN_SHADOW_END); +#endif + vmcoreinfo_append_str("NUMBER(KERNEL_LINK_ADDR)=0x%lx\n", KERNEL_LINK_ADDR); + vmcoreinfo_append_str("NUMBER(ADDRESS_SPACE_END)=0x%lx\n", ADDRESS_SPACE_END); + } +} From patchwork Tue Oct 18 08:17:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xianting Tian X-Patchwork-Id: 4003 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4ac7:0:0:0:0:0 with SMTP id y7csp1837789wrs; Tue, 18 Oct 2022 01:22:48 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6q51y0bxbcqV3lRleH7uaaQZkJfNxLCqzOMPCL2i8PFnTURqxOhWOe41Nc+n7OzugJHEDh X-Received: by 2002:a17:906:7055:b0:78b:9148:6b41 with SMTP id r21-20020a170906705500b0078b91486b41mr1392801ejj.629.1666081367958; Tue, 18 Oct 2022 01:22:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666081367; cv=none; d=google.com; s=arc-20160816; b=BAjSl3nbAte/diwi1l90xxoYLQobqY9KcyEwws9qwCDOM3zxt3rGcBK+StvgRZL1tp PsWI8NVT58AGuK77kg4bhSTzmG4tmECiLKobhcNazXFK214otzCRGbkc+0nxES1B6L2V WVbWnheahCAWh9MqAplLxG4m/Dv5QsudMUVWJqtt/4p8nwPDfcoie7g72HDW2Mj3Icos monAyGEG/A97/XmMj+yWHCQ7eN9uyYiQopi3ngoPAM5TwYMYsaDSFeSzSP6ReYVjxIeS vTAqcL5zCCz8LSlXd5+y6SzFMOgJ6u3ANjo4aymLxuKDAPV9GzIQ+0qvsuNv90BhVPIm w8Qw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=RICNK07XPnmGb317VlXhZ2uUVVA9jfHnMr+N2n+m70E=; b=tedozQZlwWkXGL0NU8MmGaNG3M8RIThs/iCJRglTihWjrJQ26+fLuzhfnac5nlLYL8 ZqDNFhpBAUb8lNSYyZPJCM6gaYvUHULmJ8NmgfsyZoz4RJKql/DcQsJVbqvkIUszKVhn b2adVUW4q76/GnYAGqqEheMHYaQLMzuVAdzLO/S+RXH7s3MoLDfwfrBnUh5Xhce4jdLD LITdg8uOYo1feYOZFk7x+K7TpPyC95rKQYs4n+cA6YwJrpIWDktbOJ9nR86jXK7D0Ce7 zfvf7gWNaFadAm3AgewiqGw3nF099iEvOlpHLtZG61uRbvQmWHBXjK3lzONBzlQSGQKJ a33g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id go13-20020a1709070d8d00b0078e31b05896si8399637ejc.766.2022.10.18.01.22.22; Tue, 18 Oct 2022 01:22:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230406AbiJRISV (ORCPT + 99 others); Tue, 18 Oct 2022 04:18:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58524 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230200AbiJRISR (ORCPT ); Tue, 18 Oct 2022 04:18:17 -0400 Received: from out30-45.freemail.mail.aliyun.com (out30-45.freemail.mail.aliyun.com [115.124.30.45]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EBE8E923F8; Tue, 18 Oct 2022 01:18:15 -0700 (PDT) X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R201e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046059;MF=xianting.tian@linux.alibaba.com;NM=1;PH=DS;RN=24;SR=0;TI=SMTPD_---0VSTz0bP_1666081089; Received: from localhost.localdomain(mailfrom:xianting.tian@linux.alibaba.com fp:SMTPD_---0VSTz0bP_1666081089) by smtp.aliyun-inc.com; Tue, 18 Oct 2022 16:18:10 +0800 From: Xianting Tian To: paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, anup@brainfault.org, heiko@sntech.de, guoren@kernel.org, mick@ics.forth.gr, alexandre.ghiti@canonical.com, bhe@redhat.com, vgoyal@redhat.com, dyoung@redhat.com, corbet@lwn.net, Conor.Dooley@microchip.com, bagasdotme@gmail.com Cc: kexec@lists.infradead.org, linux-doc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, crash-utility@redhat.com, heinrich.schuchardt@canonical.com, k-hagio-ab@nec.com, hschauhan@nulltrace.org, yixun.lan@gmail.com, Xianting Tian Subject: [PATCH V3 2/2] Documentation: kdump: describe VMCOREINFO export for RISCV64 Date: Tue, 18 Oct 2022 16:17:55 +0800 Message-Id: <20221018081755.6214-3-xianting.tian@linux.alibaba.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221018081755.6214-1-xianting.tian@linux.alibaba.com> References: <20221018081755.6214-1-xianting.tian@linux.alibaba.com> X-Spam-Status: No, score=-9.9 required=5.0 tests=BAYES_00, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2, SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747012936501212114?= X-GMAIL-MSGID: =?utf-8?q?1747012936501212114?= The following interrelated definitions and ranges are needed by the kdump crash tool, which are exported by "arch/riscv/kernel/crash_core.c": VA_BITS, PAGE_OFFSET, phys_ram_base, MODULES_VADDR ~ MODULES_END, VMALLOC_START ~ VMALLOC_END, VMEMMAP_START ~ VMEMMAP_END, KASAN_SHADOW_START ~ KASAN_SHADOW_END, KERNEL_LINK_ADDR ~ ADDRESS_SPACE_END Document these RISCV64 exports above. Signed-off-by: Xianting Tian Reviewed-by: Bagas Sanjaya --- .../admin-guide/kdump/vmcoreinfo.rst | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/Documentation/admin-guide/kdump/vmcoreinfo.rst b/Documentation/admin-guide/kdump/vmcoreinfo.rst index 6726f439958c..96efcb03bd7d 100644 --- a/Documentation/admin-guide/kdump/vmcoreinfo.rst +++ b/Documentation/admin-guide/kdump/vmcoreinfo.rst @@ -595,3 +595,33 @@ X2TLB ----- Indicates whether the crashed kernel enabled SH extended mode. + +RISCV64 +======= + +VA_BITS +------- + +The maximum number of bits for virtual addresses. Used to compute the +virtual memory ranges. + +PAGE_OFFSET +----------- + +Indicates the virtual kernel start address of the direct-mapped RAM region. + +phys_ram_base +------------- + +Indicates the start physical RAM address. + +MODULES_VADDR|MODULES_END|VMALLOC_START|VMALLOC_END|VMEMMAP_START|VMEMMAP_END|KASAN_SHADOW_START|KASAN_SHADOW_END|KERNEL_LINK_ADDR|ADDRESS_SPACE_END +---------------------------------------------------------------------------------------------------------------------------------------------------- + +Used to get the correct ranges: + + * MODULES_VADDR ~ MODULES_END : Kernel module space. + * VMALLOC_START ~ VMALLOC_END : vmalloc() / ioremap() space. + * VMEMMAP_START ~ VMEMMAP_END : vmemmap space, used for struct page array. + * KASAN_SHADOW_START ~ KASAN_SHADOW_END : kasan shadow space. + * KERNEL_LINK_ADDR ~ ADDRESS_SPACE_END : Kernel link and BPF space.