From patchwork Wed Jun 14 13:17:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Song Shuai X-Patchwork-Id: 13280045 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 63DACEB64DB for ; Wed, 14 Jun 2023 13:18:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8827A6B0074; Wed, 14 Jun 2023 09:18:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 833046B0075; Wed, 14 Jun 2023 09:18:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 749DC8E0002; Wed, 14 Jun 2023 09:18:32 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 6515B6B0074 for ; Wed, 14 Jun 2023 09:18:32 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 1F555120687 for ; Wed, 14 Jun 2023 13:18:32 +0000 (UTC) X-FDA: 80901407664.09.7563D62 Received: from bg4.exmail.qq.com (bg4.exmail.qq.com [43.154.221.58]) by imf24.hostedemail.com (Postfix) with ESMTP id 6F1B8180012 for ; Wed, 14 Jun 2023 13:18:28 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=none; spf=pass (imf24.hostedemail.com: domain of songshuaishuai@tinylab.org designates 43.154.221.58 as permitted sender) smtp.mailfrom=songshuaishuai@tinylab.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686748709; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:references; bh=r4hWL23ji32lCDz23JfaFZHvZsLTOhEsNqFSL7ZH/EM=; b=TOwuhE5JCeCR3tnO2ZpK45AlO3WM/87/3tWjqHLTZzCtuYmHisxtw0h77+9kyMM0iteTAF Mwo+QBmNDgv1s4mbEjAjMAwdl69TnLG85rTKJFzf5ri2DOSfwWow1NNmARf8kN38iuWZJX F72JMhCc/d/XXvs0RIrFDZCGSjS2AhE= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686748709; a=rsa-sha256; cv=none; b=yTOT64bJPFfqVZmdJ5b+DFFhsI/+VhG7SHOWbDqBJNTUO+uBkVvO1YWZf1TX54rC/ybfDZ bUy7g5IRXXkVqC4zKFBd1S6Xh2ocIeTSZcNiKQvQ4PasulaR/22SmUC/eVyg+spNioyG/f KNm9rYGV3hEK8ENfwPjFFsKhpHwvvaQ= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=none; spf=pass (imf24.hostedemail.com: domain of songshuaishuai@tinylab.org designates 43.154.221.58 as permitted sender) smtp.mailfrom=songshuaishuai@tinylab.org; dmarc=none X-QQ-mid: bizesmtp89t1686748693tz1bp2p7 Received: from localhost.localdomain ( [58.240.82.166]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 14 Jun 2023 21:18:11 +0800 (CST) X-QQ-SSF: 01200000000000B08000000A0000000 X-QQ-FEAT: rZJGTgY0+YOEKJckuG39pki7gnHxgidzDka2DFvr3e+5oWDc4cW1ifbtlpg1V PaKRRHApQvtMF2/mV5rCE2ua/TK5fMZp5F1XsJ8cCdgKBiPWBLhMCsu79Zpic840oPALn2b oVbGbJ8JVs8414qiXHNxm82vXtQTO6BpSASSyDipGU7SYOTo6ht929MkB9yFeIyVI3MlVb6 gb80s3+VFfu9paZ2etZzJgMx6miVRN3ZyzTiryRh8TJXX6VxPPkTcrA4sz6e+OVXbFb/rpu lJ14l/StXJbfq38kfwaIIeyaZ4MA8Ci9mICfq0okcIUTlvC3WOjKh1w8X/dR8gnZZM4165x IMrsQ6BHBY4aUu5kr+GA2FVXUWF0itnxQF4yGWEMkafUjBUx7o= X-QQ-GoodBg: 0 X-BIZMAIL-ID: 17931232792479222361 From: Song Shuai To: rppt@kernel.org, akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Song Shuai Subject: [PATCH] memblock: Add error message when memblock_can_resize is not ready Date: Wed, 14 Jun 2023 21:17:46 +0800 Message-Id: <20230614131746.3670303-1-songshuaishuai@tinylab.org> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:tinylab.org:qybglogicsvrgz:qybglogicsvrgz5a-3 X-Stat-Signature: wbac1zfopmuapqo13wmm341xxn6r63tk X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 6F1B8180012 X-Rspam-User: X-HE-Tag: 1686748708-65283 X-HE-Meta: U2FsdGVkX19yxW3RnQS4msR67wd0laxvYlcQHYw/FDnisCeRQG5pI4+X0p+XfdY6Rupon8ou0Q2XRzgWyBPPDv2TDxpe+9HHPyKw+KhkeEV5HfrO76vmyI1uRpeNoaLB0oMpvTp16JtjwqlD5xD+ubaB5X/jcT51uz9/Cyt84BwrEYk5bjmG74b/aBcGIvtIsBuyYXq0qTNZ+g+IeA35/nb21N69Nhy8ec/sx6uTd253prNcfRy3mrdGcC4VnR047DKXDxedFSzTCZaqDNAD6G+r502kzOfeRue+PneoFr6zM0cTXaRYGNqbb5wvefTSkwY/ym7ppeA4XGnWXGMzEEaKg0mD4Ll4hiGJPiVNbT9cK5r/k3gt3MYBqzZDlQDGD749jj/ZKfzERkPr2umRT/2bQ10aUA5bq9UYVLz2WBx3dgB/iLFpHGHaC3We824tLq2S1b0w9TP+Figi5wlJdw7gZ5MoUaaApM3oDsrAIqxzUnTfZsSqc8MVjTTUoWsGGObYrjFaN6J1YS0B/wdSPrJ1/kpRLPO2zEclgiokIxn+ZLYwjBMgmy5jzI3hQD5/lR5X7gAe1J64eTDivQ0gZ9YwFjeidJ6trKGv2CT8ogT6AsHpsV/NTk8pzRxQr+r38SrOVTX/lEtrztiksRxPIbFRkNFRwh/iQUNxLC9n0p7/XFzoCNzCel6R6mlAZi0j5XIs3SDlIhWXM3HjKWxOxLoX9l/ShIVbFUpplPT73b/tUa/FZVf2wyH0UP7BjM7pVtf/UHnRKZ8422M0YnkAEwda7+d9E/yEZVgRDLHqcUV3BVEDhOHWgjsHAI6uFt0xGXvJjKxrLBk3R05HOZbxmhkJCEWzI8r/cxlquH0PtP1/gvUWewNQMICiFLwIoaj0RHkePprjBIAugbLdldcepuUSMuDr8XaGmXgtu5ZhPohTOuYTCu5FMtDJiqZWbf13OMSfJNYNDpOXtAMDsUw WWNvDuaW vRJzMWvGdxO3MaHiV2kN5Usqoog2bGUrXkelVmI7riF1Km6Xsyijd5NSx2DRLgGCdDdCtMC78V7GIfiTo9+UbvejcKq2vxjQdje2abx83g5WaZvr2M6adq4eSgPUXb3cxOGSPxyov3BGsDXOAkGcqndatscpMEsIkiGA624s0NREQgaETDhb7N97/d5ChB76oYfmFXl2GOUcPwv8sYShlsAmBcWQuSAutl5k0XDgvgIn2V9g= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: The memblock APIs are always correct, thus the callers usually don't handle the return code. But the failure caused by unready memblock_can_resize is hard to recognize without the return code. Like this piece of log: ``` [ 0.000000] memblock_phys_alloc_range: 4096 bytes align=0x1000 from=0x0000000000000000 max_addr=0x0000000000000000 alloc_pmd_fixmap+0x14/0x1c [ 0.000000] memblock_reserve: [0x000000017ffff000-0x000000017fffffff] memblock_alloc_range_nid+0xb8/0x128 [ 0.000000] Oops - store (or AMO) access fault [#1] ``` So add an error message for this kind of failure: ``` [ 0.000000] memblock_phys_alloc_range: 4096 bytes align=0x1000 from=0x0000000000000000 max_addr=0x0000000000000000 alloc_pmd_fixmap+0x14/0x1c [ 0.000000] memblock_reserve: [0x000000017ffff000-0x000000017fffffff] memblock_alloc_range_nid+0xb8/0x128 [ 0.000000] memblock: Can't double reserved array for area start 0x000000017ffff000 size 4096 [ 0.000000] Oops - store (or AMO) access fault [#1] ``` Signed-off-by: Song Shuai --- mm/memblock.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mm/memblock.c b/mm/memblock.c index 3feafea06ab2..ab952a164f62 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -418,8 +418,11 @@ static int __init_memblock memblock_double_array(struct memblock_type *type, /* We don't allow resizing until we know about the reserved regions * of memory that aren't suitable for allocation */ - if (!memblock_can_resize) + if (!memblock_can_resize) { + pr_err("memblock: Can't double %s array for area start %pa size %ld\n", + type->name, &new_area_start, (unsigned long)new_area_size); return -1; + } /* Calculate new doubled size */ old_size = type->max * sizeof(struct memblock_region);