From patchwork Mon Mar 20 20:42:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chen Jiahao X-Patchwork-Id: 6894 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1197557wrt; Mon, 20 Mar 2023 05:54:31 -0700 (PDT) X-Google-Smtp-Source: AK7set9X0M+HUp7vmedYQMw7g9lcvfdU1lB62/OwNHXoM4mIWm8foH0MJLOxe+KKzxZWR33ANTBq X-Received: by 2002:a17:90a:1c4:b0:23d:3549:82b7 with SMTP id 4-20020a17090a01c400b0023d354982b7mr19397207pjd.46.1679316870754; Mon, 20 Mar 2023 05:54:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679316870; cv=none; d=google.com; s=arc-20160816; b=OyonC8bcfXpDvzIVVm7WKPHx3bmoMEdJrURJe0S6f82SzvXicwX/MYBEaSxzgHf3vM 0oLtELkDEjNWAUAZs3Ns5RutmPfgsO4qz3ELUDNGUGBp71zR76dpq0BMCG+28THaAYg+ TSXlWfbK9ooaGg83cfj3Phe9uVT75R2/PliyPjAMRK001ZF7OVk2plR+wJzAU5jcVbdo KYG19b91clTJeHdIQet3ovBl29jmQ7HABwIJKwigtMIIawQYML7Es+D21RKvdNwnaK0I 54jpR6oJj3RTdOkffyv64gH69GPpKICj4R+BFQoQpt245DLuFZ9995xRCsaU/ZjDW8Sg K1jg== 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=K2s6T0+daZhQKQvQI05gwDPApWGcRLj3eGCFrMRcu1U=; b=lErNfHL8JAq3c8aCvLTTi8f0tuZ0jEEgsW1Q/TCWy/xfJOiLqZKzjPtfGqjzNvXJ8C 9MLfp5IuZw9APBQyqaa/TC9OP+21WAAv0PMT3fqlwoVWQpxS/o3w5Ehq5S7LExu1MEkk boGFeLSWvqVWrXhkNroe0agUAGPwFpoe8XW1tgtJA6gF9TG00bwfTSjCmR/fP7Ap67Kt CwtaAPrGTNgaBwq8A/NSuKDKIg6VLE1ccrW2IFZzBKHwG2rrThVdJKeESZN6q6Bj4G/t TUFY8NndJ6gUaVfXpIkn8xuum014B7GSAdmQotcH82EJeFE1nnh5SJX7fQ5r97t1xJJT tgBA== 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 q25-20020a637519000000b005037c23ffb4si10486560pgc.571.2023.03.20.05.54.16; Mon, 20 Mar 2023 05:54:30 -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 S231466AbjCTMq1 (ORCPT + 99 others); Mon, 20 Mar 2023 08:46:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53630 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230395AbjCTMqY (ORCPT ); Mon, 20 Mar 2023 08:46:24 -0400 Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2AD2C126DB; Mon, 20 Mar 2023 05:46:02 -0700 (PDT) Received: from dggpemm500016.china.huawei.com (unknown [172.30.72.55]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4PgDss0NYZz17MgP; Mon, 20 Mar 2023 20:42:57 +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; Mon, 20 Mar 2023 20:46:00 +0800 From: Chen Jiahao To: , , , , , , , , , , CC: , , , Subject: [PATCH -next 0/2] support allocating crashkernel above 4G explicitly on riscv Date: Tue, 21 Mar 2023 04:42:42 +0800 Message-ID: <20230320204244.1637821-1-chenjiahao16@huawei.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 X-Originating-IP: [10.67.174.205] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To dggpemm500016.china.huawei.com (7.185.36.25) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,DATE_IN_FUTURE_06_12, RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS 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?1760891367229262896?= X-GMAIL-MSGID: =?utf-8?q?1760891367229262896?= 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. 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 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 | 56 ++++++++++++++++++- 3 files changed, 66 insertions(+), 10 deletions(-)