From patchwork Sat Jun 24 03:26:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Song Shuai X-Patchwork-Id: 13291593 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 2C1CEEB64DA for ; Sat, 24 Jun 2023 03:26:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5845E8D0002; Fri, 23 Jun 2023 23:26:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 533F98D0001; Fri, 23 Jun 2023 23:26:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 422D98D0002; Fri, 23 Jun 2023 23:26:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 31F038D0001 for ; Fri, 23 Jun 2023 23:26:41 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id EE619141006 for ; Sat, 24 Jun 2023 03:26:40 +0000 (UTC) X-FDA: 80936204202.14.3A0618C Received: from bg4.exmail.qq.com (bg4.exmail.qq.com [43.154.221.58]) by imf05.hostedemail.com (Postfix) with ESMTP id C16B6100009 for ; Sat, 24 Jun 2023 03:26:36 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=none; spf=pass (imf05.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=1687577199; 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=UuOUrBcvIfADrqnWcgN9ycSDu4pdLqcClcbYy47YLQI=; b=y8AO9eTOriFjUjBskcLcRn30bEEXLniO/Y+gk/jBK6UUNAF5tK0iCTGX5iOFSK8O2aGs1w wr6gkFwQEsOvXZ4iET0cQ8LPcV7K10IeXL2825bpQ3gXlr7rIy/J1+dbqZb4BbDn8Ax8i4 xR76MFpjgnQwouYp7IHI47DD6+nsGGg= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687577199; a=rsa-sha256; cv=none; b=PGPR7uyu/kr0H4VZFjoCwLlC+tCl+OmmJEIP4C9P5+Md65veQ27zM6PmW7mb7yv2KxwUO9 BK78H1Ws0F8qie4dTPlB2xzyUTJY1tkZ7W0kcgjUU1O86rzT27Ant58ETlHSkA4npUEKZl eru+WAyw4gD0Zsr1mtKoNHHhP5FO4Ug= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=none; spf=pass (imf05.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: bizesmtp73t1687577181tb6gbdfh Received: from localhost.localdomain ( [58.240.82.166]) by bizesmtp.qq.com (ESMTP) with id ; Sat, 24 Jun 2023 11:26:20 +0800 (CST) X-QQ-SSF: 01200000000000B0B000000A0000000 X-QQ-FEAT: ZdHcY4j9T+LMhqKHibX+gEym75LAizUeDwYPbOc+hBMYZZB/hIeGJqbOmbemd GsBRNduMYrhwB+Xycx9/oc+AAULh/ZqzZFZiHvkWNiRlIbIz9vJo5vlY0JUL6pb9mqEiAD5 kCkzc7DWNUOMMZzRoPnkMR9fzdjkXRTUWyMc3o6vsVYx1Ti99jvbu5x0q2Szc1TiQ51TnfJ HfJPWZlVwFAQRgdDxDxvtIExDf2AWqdBgfWQ+dO20QXI//G9Cek12DyLYSAMYLKbFvBh6+7 F93bCs6F4+YtB0sUj8DH0gr3LX119iyO7F5ZNfWr5ZwwYk0DmYzRIK0xitJAe3JVGMrvIiW rFGqVFNNqufSVbVbgU= X-QQ-GoodBg: 0 X-BIZMAIL-ID: 14577591654747292187 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: report failures when memblock_can_resize is not set Date: Sat, 24 Jun 2023 11:26:07 +0800 Message-Id: <20230624032607.921173-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-Rspamd-Queue-Id: C16B6100009 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: 7tnd7zyrn98d4x3stidcbwq4a754zjgi X-HE-Tag: 1687577196-443196 X-HE-Meta: U2FsdGVkX18TUd3FgLUdQaPWE2JOA7UvzIaWmqLzOtVJFbxgx1BVr2B3RjcTTx3uXwIfT2iKjCO/WeQDL9yy19HG3T/rc3Va71OR0Z8hZOrc6nsv4I5slPUZzf/LcDbdJ8h3PN1d6qHxrDzRa5ccJjYhqyt9aZQNoaqmNbwoiZqd4YLVnr2qBZLGSFibLeAYfqGY6fT6lEXyspZdSamUbMAc9IHAQ+0sPaYaDjJ9LdYvjOUtk+H0PtjqaAqro0LARQuHdVwmIRKA2LXZ3NqDYcN7bmlSVgObAV7j2Jj5gIEtAa/AElNDtEkdsgUnx2RlPH0MKzhp0wCuDm28hh2PF7SbjscDZ6aOBr6PCmGAspOSebE9FGrCjrnPbZbgaJKw/EFoQuoNIhFjJGdMByXA/LsVkdicgeugjaU/1YU7+QKqNDICJOIOTQCZuSrqDqC7lUPC2QhZ/X0uL3FoBTDQreqaNV1pwFbrSN+z2qpkXcb2IiQ6skzDOKJ64BGnhG0pocTFR4C+Zzd5t1qxvyeS+z3hwm1trlcnTu+tYdYJg6HVWroTLEUC9ZmiUAV6uiaVjxGlwr3OYn6HFIGYo5vVyjNY18zw3zYqfspG3guxZ3Uq2t4g7M3jUvn1hdGUK2atMA5q+iaeE6jXNEvaCZkRayA9UQwCG7odcyjm3cVmUhdryOHQG6txK9aZbo/BAq/4W7VsiVF7i0Ii6B/l3M3sY2UzoYADPAclFiDcyqAFlBjSLrnrbMPWGopw7t8sxY50+AUztsbpYgXeaZ5+wmsadhkqURaxRNFsx2t9Hl/TwCxdxvqJvPHkUlJQsrOvLepNeRS4Az5plUSXfE4Bwc6y7ef52dVQ0zxCXktgz4qVkJ3mOvRTDwqBNa6nuUR52sAGYeQoihCL6+VMeUDjEUqqULm/mZ2Mmqp1OFHpFCjFInUWBysVrez+yELuohMQur6WHDpsZslCLm2nTu8Dwjk cbsaw5Oy erFRdZDEwamRsI3q0OM8dQgG4WHyy4ylYfFX6sqkF2jdG6301awPR8okgc7ppKI4Tx6TJl3fo+wunUCkbqwDF5GqxIYZm5eAoHw3I8jCFCl1gOEbwUmDdLRS+8EenCpkSt5gHV+3FhipwyxTLvItvhaa/XvJRdIsFy//P61Uimcg7ff1Cx/YpI2G65TwcDIzU3077LMBKdBolhVqyME1QRcVlmZ9axqfeZ33GiWfAd0JgnGNFo3iu5NZoqWjtCmPJS+eMlTAWm8fGiBWuHzMJqBGlUMl4zMo7Ie/d 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 callers of memblock_reserve() do not check the return value presuming that memblock_reserve() always succeeds, but there are cases where it may fail. Having numerous memblock reservations at early boot where memblock_can_resize is unset may exhaust the INIT_MEMBLOCK_REGIONS sized memblock.reserved regions array and an attempt to double this array via memblock_double_array() will fail and will return -1 to the caller. When this happens the system crashes anyway, but it's hard to identify the reason for the crash. Add a panic message to memblock_double_array() to aid debugging of the cases when too many regions are reserved before memblock can resize memblock.reserved array. Link: https://lore.kernel.org/linux-kernel/20230614131746.3670303-1-songshuaishuai@tinylab.org/ Signed-off-by: Song Shuai --- mm/memblock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/memblock.c b/mm/memblock.c index 3feafea06ab2..1b8e902490e5 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -419,7 +419,7 @@ static int __init_memblock memblock_double_array(struct memblock_type *type, * of memory that aren't suitable for allocation */ if (!memblock_can_resize) - return -1; + panic("memblock: cannot resize %s array\n", type->name); /* Calculate new doubled size */ old_size = type->max * sizeof(struct memblock_region);