From mboxrd@z Thu Jan 1 00:00:00 1970 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 E748FEB64D8 for ; Wed, 14 Jun 2023 16:07:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 648E96B0074; Wed, 14 Jun 2023 12:07:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5FAD18E0002; Wed, 14 Jun 2023 12:07:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4E7348E0001; Wed, 14 Jun 2023 12:07:47 -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 3F2B46B0074 for ; Wed, 14 Jun 2023 12:07:47 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id F2D54406E8 for ; Wed, 14 Jun 2023 16:07:46 +0000 (UTC) X-FDA: 80901834132.09.30F91C2 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf20.hostedemail.com (Postfix) with ESMTP id 19D521C001F for ; Wed, 14 Jun 2023 16:07:43 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=id9xKMWZ; spf=pass (imf20.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686758864; a=rsa-sha256; cv=none; b=sH96Td7D1pV2VUyDPJ7POKeVG0TzqK9pyxR5yDQStffFi+1B7OjyB7nbLG+BdttpcuRZ5w RIZK6x+7fVF2nHUYPzbdbxf7YBorg6uj8p03fcnBep+mnYVBlbHAwv0+8HG2Zfm43iPBQo 3vkMstk1Owp2DTiHzYQ11a8TIxRnIDw= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=id9xKMWZ; spf=pass (imf20.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686758864; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=5AWwRPWR/+xt7E+t03owIjZb114+gLINP101WYwEX+8=; b=TdY9vK7h/zX/mflQJSdTzfd8EFKbNB79GyLAvvrA5LYs6e4KstOAaPHTtfTu+FPfjiOoyS VgNnGD0Fma1LiIpw7ME/dH2YZ4QtzFLHZf3VEm4Itvofc9OeyrdYdP3rvepQZX3y/x/N6B M+tgwoYrb33Ecal4Dk7zM2trrk/Yxhw= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 02CA0640DB; Wed, 14 Jun 2023 16:07:43 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1C99AC433C8; Wed, 14 Jun 2023 16:07:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1686758862; bh=OV3jfhvD00wR731+Canfp/ZLczj9zpLC9E1ABGGYALA=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=id9xKMWZKrqsIjjsKY4sPmy/UUNEAZPrtKia1/TUhVCQqzJGbe6eVODhg28YsDaIk LczjsjYql35+HdM2kcEN/MFBe9B3XcoWawx5ItWpqV0NnD4QjjPQjdWTSdVURwprjV h+X+rkLuR/7AulWfoglXkVSp+vpWdZFN07MWFIZFsF58UYzybiAOAXhszPWcyzcZSi Q8/9LnUiHasvzCGONlOrHrqjEY1/4S5D0pDIT/vfYU/0pv6bhxdDIQZHJl4SvLjeDs vjKe51kRqbI8Keah4xc7xrSfF5YkZ1N332xlrit+vz1exFDdYL74Nqvh3BJJi9xy60 AyeBMIZhLyEQw== Date: Wed, 14 Jun 2023 19:07:10 +0300 From: Mike Rapoport To: Song Shuai Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] memblock: Add error message when memblock_can_resize is not ready Message-ID: <20230614160710.GH52412@kernel.org> References: <20230614131746.3670303-1-songshuaishuai@tinylab.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230614131746.3670303-1-songshuaishuai@tinylab.org> X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 19D521C001F X-Stat-Signature: d9y73h37mtdwbzkfrxafppoxqweota9h X-Rspam-User: X-HE-Tag: 1686758863-2962 X-HE-Meta: U2FsdGVkX18jnY3LXjQJh24LYJC4EqE8zTN7vd/gBQYPavAnLenjQQd0gXGp0pYTv1+nj6YxLMW2dmXJhKAo1xLHtXOWyshqjKcimXsQOFZHLZ06PTE9/eXzuCHq8JIeSM+A5Jd23s1QfKPU8dwmCfnxIYpj3j8eYSbOcIIsOsV7w1ZU5Q+Y+3jSc510Zbus1WXhfAlg0ZAaEvU3GtJqP/GG/JLRLA74DUO6qTkT3hugeXNwmHrW0JMyNIQ985zVqequtyPRA1HjzNHBzekTrzbTOzadVQqtmEkZUwaeTjY1RkVUzt0mp31WGfOG0/aZqovjtjaFW18GTaNeePg6Rgegb1y646rR5KIMVuKUV/GkDAty+shdiC6WaKrKRuFNbahgrVohfyrXd83Q7wDHAQlFHq31hb62Ksa/E87AyKVTv0FVLL7mhAv90eFOyb6/YZpWAqZvG/5Sk27aZMbSXC8Xcagd6TkcMIH3mSMHopxVvMT6hu9k57exAQbiFXbOFz1aL6FzaRGphoUwEzCCbJWT24U4mQf4MPSCMjNXn3SPHD/j0FRcudINZ4oBHQusGACJJ96ng3yNffCOe2U/S83WVHzQR5vvXlWM/7NGnQm0cvsaVEMWX2DaoWi2tqjAYBqqKGHUN7hoPT/bFmQSEhcaQij2DYeMdyggVE+FB1K9up1QL754GD62ioFWsN7SCdtjO3QaKs036skV3nlxO4VI0bdF9taIGN+9hQry7xTX4EzrFdRyGK/9ZfY0s8uoe2bxSIArx00zf5G6n39QqteGStIgguYgaVnBYgp8b2AcoOGYVY3Mm3oJT4OBILmYut5JqDNIMz4jkPLaYFU1QiqHzfprNSHSATgqIi/QOwpUwgD2b1UVm3QThTKg3gSnpsT792FvEWYsY2sFD9XRTPdbSmiPwzyuEo1I/8hIR4/wXB8cBhBMIV92B27P2c053VVE40K3GNPP9wXAJGT NFFNpuJ7 PLZ9GpyMlsO9G1mtnennm1yjcBIeQip9KbvCTWkTSCWIy3hTNUI03JCiQ4m+vfwRn9GqwVyOqlaNXRh77JS3/qyy/tjtYE8F8+ZmwM9N5XEdoGFwqvIy9jgXPX7y48tltUQdMKNPU2uwSSAz+qlck/mTTxYGuuHbX6rCFFHlNB13DzkAHWj2X9gqjhfGhfkaaiQcS3J1F5FZkw6Cr7cDGqkxCD3P7wED9Yb7JGgKK3ianab6PXDFXdtJIGbgXfAUouJuyXrjV0q+yI6B6GbRn91eCP4ywMulOAdzoe1ARto0HBkR/SZ41a0l8agI8FA0auVnYvqIWSrfZkTvV1xcFrt6I4ow8czrjp3ZkPFWcpAmvi93WKHuA8TtVHGIaUDKYFbuTv+EhbKqZAFw= 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: Hi, On Wed, Jun 14, 2023 at 09:17:46PM +0800, Song Shuai wrote: > 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: Please make it clear that failure is in memblock_double_array(), e.g. But when memblock_double_array() is called before memblock_can_resize is true, it is hard to understand the actual reason for the 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] 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); Most of the time memblock uses %llu and cast to u64 to print size, please make this consistent. > return -1; > + } > > /* Calculate new doubled size */ > old_size = type->max * sizeof(struct memblock_region); > -- > 2.20.1 > > -- Sincerely yours, Mike.