Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp2001806ybt; Thu, 2 Jul 2020 20:56:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxsMEAq4qk6gJGDYCJlmz8R/Cil+oZItFUOUtAIRO/xcBzQA6dU7N5gM8aFO6tL50vSttTz X-Received: by 2002:a50:ec8b:: with SMTP id e11mr27284681edr.344.1593748604945; Thu, 02 Jul 2020 20:56:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593748604; cv=none; d=google.com; s=arc-20160816; b=LDXR9c1kzJi6kw4/Sr3P/Qho9Jgm3kCJhJJs4gXr8J5qr4uK3NeMyzzIhGZUio+6Fl M3SCbF+lZvjz0oKlb36zllzlNzWRBvB0aLK041PEYpY5TlL+DtTgLfF7C5IflxNmBhen i527UzcEIQcHxweRAmsNvTFYj1t5tthRjJHRX47883Xdd4wH52CMrOdEdyyobuhEb3pD jzn+8Uhd0nx0yc2OP4pRyqGAzJUrH8mUNhAehUZK8KBt+MqQ3egntikFB/uocWXrwC91 rAzjPcgjEQw4Nfm12RG/7HnPFdeGHXDJb5gCoHTmIR6kaWB3UkL2RYuGM9HdSUgbKlLV knrg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=DVieW5naT4Tv0mW0SFdH9VNA9xCrs3QCS4Z7b44zY2M=; b=fwnCvr2E8uivpT9yeW86CXTbyaa/B5hdZHVLqWg5uioMqKq8GjgNPi80+ODYmC8Sdh d8RopVoMdT68azOOVwdfXtxuGr1/98Tn9/V23vkfVg9f7s2BU1FFfYbgV5iwiqMVa+jx u8qMN35lEYhstMkAvrkscHoNYARAfhGLaqviBIXOFoc1u3IyA1UmnM/s0eLLxhmo/R6z ActbZP6zgKi+s6AzzPo1A6kLARUakWjb0qIP5Hz4aoaq+2lr7xPTSbaWvyvLBAUOXt8U pzbClMBmTuSG1sAG2nB3rk1jus7C42keUksUzs7ZAZcF02n+RtmGtC+7YLPG6d8y6KAA Tqig== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k22si7583821edx.125.2020.07.02.20.56.22; Thu, 02 Jul 2020 20:56:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726408AbgGCDyH (ORCPT + 99 others); Thu, 2 Jul 2020 23:54:07 -0400 Received: from szxga04-in.huawei.com ([45.249.212.190]:7363 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726336AbgGCDyE (ORCPT ); Thu, 2 Jul 2020 23:54:04 -0400 Received: from DGGEMS403-HUB.china.huawei.com (unknown [172.30.72.60]) by Forcepoint Email with ESMTP id D5DBBCE13F66E4650422; Fri, 3 Jul 2020 11:53:59 +0800 (CST) Received: from localhost.localdomain.localdomain (10.175.113.25) by DGGEMS403-HUB.china.huawei.com (10.3.19.203) with Microsoft SMTP Server id 14.3.487.0; Fri, 3 Jul 2020 11:53:52 +0800 From: Chen Zhou To: , , , , , , , , , , , , , , CC: , , , , , , , Subject: [PATCH v10 4/5] arm64: kdump: fix kdump broken with ZONE_DMA reintroduced Date: Fri, 3 Jul 2020 11:58:15 +0800 Message-ID: <20200703035816.31289-5-chenzhou10@huawei.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200703035816.31289-1-chenzhou10@huawei.com> References: <20200703035816.31289-1-chenzhou10@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.175.113.25] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org commit 1a8e1cef7603 ("arm64: use both ZONE_DMA and ZONE_DMA32") broken the arm64 kdump. If the memory reserved for crash dump kernel falled in ZONE_DMA32, the devices in crash dump kernel need to use ZONE_DMA will alloc fail. This patch addressed the above issue based on "reserving crashkernel above 4G". Originally, we reserve low memory below 4G, and now just need to adjust memory limit to arm64_dma_phys_limit in reserve_crashkernel_low if ZONE_DMA is enabled. That is, if there are devices need to use ZONE_DMA in crash dump kernel, it is a good choice to use parameters "crashkernel=X crashkernel=Y,low". Signed-off-by: Chen Zhou --- kernel/crash_core.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kernel/crash_core.c b/kernel/crash_core.c index a7580d291c37..e8ecbbc761a3 100644 --- a/kernel/crash_core.c +++ b/kernel/crash_core.c @@ -320,6 +320,7 @@ int __init reserve_crashkernel_low(void) unsigned long long base, low_base = 0, low_size = 0; unsigned long total_low_mem; int ret; + phys_addr_t crash_max = 1ULL << 32; total_low_mem = memblock_mem_size(1UL << (32 - PAGE_SHIFT)); @@ -352,7 +353,11 @@ int __init reserve_crashkernel_low(void) return 0; } - low_base = memblock_find_in_range(0, 1ULL << 32, low_size, CRASH_ALIGN); +#ifdef CONFIG_ARM64 + if (IS_ENABLED(CONFIG_ZONE_DMA)) + crash_max = arm64_dma_phys_limit; +#endif + low_base = memblock_find_in_range(0, crash_max, low_size, CRASH_ALIGN); if (!low_base) { pr_err("Cannot reserve %ldMB crashkernel low memory, please try smaller size.\n", (unsigned long)(low_size >> 20)); -- 2.20.1