Message ID | 20230328115150.2700016-1-chenjiahao16@huawei.com |
---|---|
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp1966698vqo; Mon, 27 Mar 2023 21:38:41 -0700 (PDT) X-Google-Smtp-Source: AKy350Zk/em2w2V4TFJw8iBgCQsZdq8f8ESOPOr6/SlDwh1rY5EumN6awSQmSZxTlVpkPiu0wJ3L X-Received: by 2002:a17:90b:4d0e:b0:240:9e3d:d532 with SMTP id mw14-20020a17090b4d0e00b002409e3dd532mr707441pjb.8.1679978320856; Mon, 27 Mar 2023 21:38:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679978320; cv=none; d=google.com; s=arc-20160816; b=CP2M8h3P+lX3ky2G2xea7pjsEG5x0r/dMr7De+VMG4SWyaXKN8R4nX1m3YTjtSn0Ae kRc9dyMyh1XDsK02gegidvMmz22dYWRMcxSMHYp2gMC+9WOMz+6M+aGA+C59A6bG8hCe cSznarC4ULy7ezl0CtydjqKdfSWrkU9MVkRUwvF018KlqtbXfCIr/LQGcPJ113illxQ2 t7UUD1oXzvYLcvSMUxWK8FwTqoiXCTF8osGZWy4vEwZmDSbAe8BQ4HuSwQAxzaoSnImn 52WluOjt8+cSGpHhbRfGsTADt6WujK7Bu80uNpdpWUfJq/66t0Rd5xZF2Cqdr9ZrAh68 YxNQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=aPnjARn6LVQunxpmr0xZf9aiqvx7Oxcn9i/eFB3EEDg=; b=CRoS/qxNIVLJC+nbyhJF4NvPnH7h5ZOuQDijveHQ0Ao8DBF9PmpeGJ9G/gaZHAPTnL QVJVjUTJ59lJS35/CBzOCl4iBJwCeCmrvqKWxlVGgmiWTY9JU7sQXC/Et4xL9d7TR9GN 1d4Nxq+TDXoV2DNzgLw9MmwxL0JJ2y8F19LOCSOVd6V1PNdhaFl0OmQFuIavcYkol6EH 18W8/axE1nAthImprG6Qo7lZNnbcphT1pQ9hF2V0ND7CHghdoPFtI1Zsy2gqnq8NDBWW 116UfOAKOhs7TIHyKhDEhAsN1iWyKWpBNpch3k5YNSUbzGnFOyRuHtNxUHSSj0wo6vpG 1r+Q== 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c20-20020a6566d4000000b005006397721fsi24740623pgw.859.2023.03.27.21.38.28; Mon, 27 Mar 2023 21:38:40 -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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232542AbjC1Dzz (ORCPT <rfc822;kartikey406@gmail.com> + 99 others); Mon, 27 Mar 2023 23:55:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32770 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232626AbjC1Dz0 (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Mon, 27 Mar 2023 23:55:26 -0400 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 740EF2D73; Mon, 27 Mar 2023 20:55:20 -0700 (PDT) Received: from dggpemm500016.china.huawei.com (unknown [172.30.72.57]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4Plwkc19mWzKvtH; Tue, 28 Mar 2023 11:52:56 +0800 (CST) Received: from huawei.com (10.67.174.205) by dggpemm500016.china.huawei.com (7.185.36.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Tue, 28 Mar 2023 11:55:18 +0800 From: Chen Jiahao <chenjiahao16@huawei.com> To: <paul.walmsley@sifive.com>, <palmer@dabbelt.com>, <conor.dooley@microchip.com>, <guoren@kernel.org>, <heiko@sntech.de>, <bjorn@rivosinc.com>, <alex@ghiti.fr>, <akpm@linux-foundation.org>, <atishp@rivosinc.com>, <bhe@redhat.com>, <thunder.leizhen@huawei.com>, <horms@kernel.org> CC: <linux-kernel@vger.kernel.org>, <linux-riscv@lists.infradead.org>, <kexec@lists.infradead.org>, <linux-doc@vger.kernel.org> Subject: [PATCH -next v2 0/2] support allocating crashkernel above 4G explicitly on riscv Date: Tue, 28 Mar 2023 19:51:48 +0800 Message-ID: <20230328115150.2700016-1-chenjiahao16@huawei.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.67.174.205] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To dggpemm500016.china.huawei.com (7.185.36.25) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-2.3 required=5.0 tests=DATE_IN_FUTURE_06_12, RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS autolearn=unavailable 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: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1761584947681849079?= X-GMAIL-MSGID: =?utf-8?q?1761584947681849079?= |
Series |
support allocating crashkernel above 4G explicitly on riscv
|
|
Message
Chen Jiahao
March 28, 2023, 11:51 a.m. UTC
On riscv, the current crash kernel allocation logic is trying to allocate within 32bit addressible memory region by default, if failed, try to allocate without 4G restriction. In need of saving DMA zone memory while allocating a relatively large crash kernel region, allocating the reserved memory top down in high memory, without overlapping the DMA zone, is a mature solution. Hence this patchset introduces the parameter option crashkernel=X,[high,low]. One can reserve the crash kernel from high memory above DMA zone range by explicitly passing "crashkernel=X,high"; or reserve a memory range below 4G with "crashkernel=X,low". Besides, there are few rules need to take notice: 1. "crashkernel=X,[high,low]" will be ignored if "crashkernel=size" is specified. 2. "crashkernel=X,low" is valid only when "crashkernel=X,high" is passed and there is enough memory to be allocated under 4G. 3. When allocating crashkernel above 4G and no "crashkernel=X,low" is specified, a 128M low memory will be allocated automatically for swiotlb bounce buffer. See Documentation/admin-guide/kernel-parameters.txt for more information. To verify loading the crashkernel, adapted kexec-tools is attached below: https://github.com/chenjh005/kexec-tools/tree/build-test-riscv-v2 Following test cases have been performed as expected: 1) crashkernel=256M //low=256M 2) crashkernel=1G //low=1G 3) crashkernel=4G //high=4G, low=128M(default) 4) crashkernel=4G crashkernel=256M,high //high=4G, low=128M(default), high is ignored 5) crashkernel=4G crashkernel=256M,low //high=4G, low=128M(default), low is ignored 6) crashkernel=4G,high //high=4G, low=128M(default) 7) crashkernel=256M,low //low=0M, invalid 8) crashkernel=4G,high crashkernel=256M,low //high=4G, low=256M 9) crashkernel=4G,high crashkernel=4G,low //high=0M, low=0M, invalid 10) crashkernel=512M@0xd0000000 //low=512M 11) crashkernel=1G@0xe0000000 //high=0M, low=0M, no enough low memory, failed Changes since [v2]: 1. Update the allocation logic to ensure the high crashkernel region is reserved strictly above dma32_phys_limit. 2. Clean up some minor format problems. Chen Jiahao (2): riscv: kdump: Implement crashkernel=X,[high,low] docs: kdump: Update the crashkernel description for riscv .../admin-guide/kernel-parameters.txt | 15 ++--- arch/riscv/kernel/setup.c | 5 ++ arch/riscv/mm/init.c | 63 +++++++++++++++++-- 3 files changed, 72 insertions(+), 11 deletions(-)