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 54625C636D4 for ; Tue, 14 Feb 2023 03:14:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9C6D96B0073; Mon, 13 Feb 2023 22:14:31 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9763D280002; Mon, 13 Feb 2023 22:14:31 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 83DC8280001; Mon, 13 Feb 2023 22:14:31 -0500 (EST) 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 74AF36B0073 for ; Mon, 13 Feb 2023 22:14:31 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 4134380B1C for ; Tue, 14 Feb 2023 03:14:31 +0000 (UTC) X-FDA: 80464429542.12.57580CC Received: from mail-pg1-f170.google.com (mail-pg1-f170.google.com [209.85.215.170]) by imf23.hostedemail.com (Postfix) with ESMTP id 3F3D71400F7 for ; Tue, 14 Feb 2023 03:14:27 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=bytedance-com.20210112.gappssmtp.com header.s=20210112 header.b=JC5B2GN3; spf=pass (imf23.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.215.170 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com; dmarc=pass (policy=none) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1676344467; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=YcO98EaaP2Vt6Bx7DAhKU0bvqdQdkVskAmGJ59c7fLw=; b=qCks5OF+IENipSpPU1nzbT8lWhCMSp0G3YyP7XA0HrnVH4PGUwUDnK4xYLpltpXCO6KSwP Vo0b9X7vJZa4AvW+SUcvjsQEgv60qKheYfBr/PG7HO1Q8wp92umUkYvYUfF4oZwiECbM2M lgUgxLY6GYakUrOGA8oqKmNTOBVKs30= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=bytedance-com.20210112.gappssmtp.com header.s=20210112 header.b=JC5B2GN3; spf=pass (imf23.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.215.170 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com; dmarc=pass (policy=none) header.from=bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676344468; a=rsa-sha256; cv=none; b=qmI9PHewz/3/WOeyx1pim8JByUmAoZjK1Fr4cXDLc2w1L1ljdLunmpPmvAeWWqSkvz4BYD YBVTmrsIzRKTSRd/g11tj+Ukyf22fddv9tV7Ra8hdDEFCnlfW/TlIwqwTFjYYhqu+JsrSp NSBPKyvEL8Tl1WW2V9MaKkqVlKb5X8M= Received: by mail-pg1-f170.google.com with SMTP id b22so4163028pgw.3 for ; Mon, 13 Feb 2023 19:14:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20210112.gappssmtp.com; s=20210112; t=1676344466; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=YcO98EaaP2Vt6Bx7DAhKU0bvqdQdkVskAmGJ59c7fLw=; b=JC5B2GN3HgDkaeXf31ttwVTosjyR/HxUuh6yQ669J1TUmCICIxT0I2q03+Ng2i7wSj Wy+TQnLT6msP2IGkAWu4n4oUQd5KyssSW3O2Dwe2IZBfF0mCjwvsi6qKFo2HSOPVW9Cx SDb2a1xO8ml9RgFRKIhOwLMayIJMEG9swZkhIs0wje8eTOAtowuNgTSindnK+U5r4zCG sXi4rtRLRjjNBLrQLb07GyKvLKVTscC7MZMPFeAtH0rIFX1UhRqutms7MuJaFPI6bW7o 9q0tLr3VM10M83fgz0zo38GtLOMxFrheEnsJnJjy/VIrcoVKCvBza5XnXCGVKHplhiah 6L1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1676344466; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=YcO98EaaP2Vt6Bx7DAhKU0bvqdQdkVskAmGJ59c7fLw=; b=AKTfbFGBgJSizSl6FkwSPsXQn17vvGJrHg1cW75l3A9jZ9TE40QdthI/ChJLw66aoI 85cdzYGf9n8Hzxk9SsNJN+bVqf39WvZNGz68we37NNRCbymxAzjPu69XchA2aInZiKEP JV4XXiHm0WibF2JJtOhJDCNZ/h9V8pHNSxi4zA1vjh+BaiXO+W/PuQqx4+OWw1qfllB8 Ss8ASuSfPdEsANVINs7BIcNbIM1Uo5krIh1WzhYlPT247CNWoF+G/rBEV808+acPeoKQ ZsdzUg7TSkHRA7aRdCRssumQ5vr4OCCgKI2m2bbIk2dpgCH7z3MTG3MLe1/IpKKjesQY bHfA== X-Gm-Message-State: AO0yUKXVSsAVBDXs1puxCtTEUuioQQd5YPy9yLzry3FkZqlDh4ZP0hvL NxWPXtx1Xs5uTyk8mmIwioX6og== X-Google-Smtp-Source: AK7set9Viz27eQMVUiiJE4l1hll8LjkSCr+aTtoaIhq/LKztRqhwOzomiTGrSM0LxLL46zAtl2Mf/A== X-Received: by 2002:a62:ce4c:0:b0:5a8:bbd7:d7aa with SMTP id y73-20020a62ce4c000000b005a8bbd7d7aamr648131pfg.1.1676344465750; Mon, 13 Feb 2023 19:14:25 -0800 (PST) Received: from [10.200.11.190] ([139.177.225.228]) by smtp.gmail.com with ESMTPSA id i25-20020aa787d9000000b005a8ae0c52cfsm2363248pfo.16.2023.02.13.19.14.23 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 13 Feb 2023 19:14:25 -0800 (PST) Message-ID: <89da1ae8-3062-1fd9-a389-de4791c117e3@bytedance.com> Date: Tue, 14 Feb 2023 11:14:18 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.7.2 Subject: Re: [PATCH] mm: page_alloc: call panic() when memoryless node allocation fails Content-Language: en-US To: Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20230212111027.95520-1-zhengqi.arch@bytedance.com> <20230213105318.e2a83d60c12e734d45dccf1a@linux-foundation.org> From: Qi Zheng In-Reply-To: <20230213105318.e2a83d60c12e734d45dccf1a@linux-foundation.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 3F3D71400F7 X-Stat-Signature: 9rdxj83m4m6xmej6qwkmx75t73bdyijk X-HE-Tag: 1676344467-180400 X-HE-Meta: U2FsdGVkX18hMb4YB3Y1YoPv6LMUmaef+sKoBeKWR81NWAgC3cGcEZKg5Al58ZsIOZfzazq+Veh0EOP4DhqfozKiAo10yhdSzKHxPwrnmQTjGXG5bWsXNNtAUq4GFD2HGDje/qcoRcfA3n7MM2puH0Mn7B4FteoJfakvlFg2quKTBJQ9i6oCeaECGp1j37TY0jqFRirbh3PF0bM04R0ZVX93p9qF2jjmAJ0DTfhQtlTcX/56AKTXyGWmnfnWVZaYaumzeiSoZGlLzpFS4lFwMEW0GEO8z3My/U7KKvsw+xV2gzP6r5xVCEZMsenupNKVAZQk7KI2/n+ENhqfyUDNjAepyrF+dd69R9FVCGc9r46p8DQ/cjlCola8sFHj3vX+epkcIJocCoWfS0CsifvUGztYBtsHVkHugBR18ZbidMy+R+MwzkLtrN6sg1ns/naiYSwFT5mopMt7PQG0n8X34raafLgWhWkIuvhBH07dZ/zMOZYYvG6oGZ8vnOfc8ZKN8To0VoZqXhTnIlfKVjvLgFDUPjja6GoIKWP9At92G2idpYMd0dTdpcSKPSYhmY1EFghyqPfb9xZoZcl+59XiaqHO/lt7JXPm9jsugs7BFRM6i4srT5aLhM2hqxJT1dHYGz/OQIqY/VASe0jeR+iSqFKqqC8KfrSJN7FYJ00TKSWCmy5RvBRrnNzZULSrG8/KQDN8XQO5aYF0Z3KBgeyhUhhQS8klrM0x9dBxh/k34fG8bxLJg1JIep+SEVQ6UPCb/gRux0LcDYYh21awTK/KBCwOWiQjOfOhCp+Q8NudMBYW6ZkbUd0IGbsLPSIZcaIYcXdAm7/Is8qCxi9mckW2Xj4J5aUOBGvQHuNRsyv7ohBZAziVwnYZ6ylgFjxlbZV3fZ3hY+crYZNfS1snf5eEw0lDvq5JnvOkf42jL5afm7om7PjV+dfFE+xyVtsKrWICCmVqhPXKuEuGBqG5Ddd ILZfwsG5 7cGyNPbO+AHj/Qv2C3zXUN+EpNRW2LmkG+CtkmzOsQ3np/oL6J+BDSTwdADrHwcZEtxHiPFByy1/XieeWCyvgAh2I34n1UEydYzA+jL4nt2jzofovmbCITFT6w3LB1QMg85Fmm0f8PxWq0kK29S18xrNWc0pCMRJIi3AUJyWmnCdPOwDuSg7xipI4nLUjNjBHARGSGLX69UD8TOWfkNA5yYAw2qXwT8odqBouNDEVVC6hAM7fhqntxa8oeYJI4MosWo0yg7TJTPRjkvLq4xfZ3mDReV4Y0Z6GDSXDCmB/m6mr4XfJ45Wlfm9hxFHuARmJz2HRrXNFTVd1N7ULzlOKnqW930kaaNAC2jzvbAEuGEIu7Wct0/RJ87n6P01RvCzOFsyhzbmNZJwwMazBP5koPq8vuYxreWC3N/Mv0gqy6V9heuZ2z5tMwFQEIiFRSCmPNr9Up8XUI1qd78miOeZja11lkpASGegFDiL7/3rmez0WV8T7Tx6ABy6TicaHvz6Xqrc4OMQnnAa45uvSTQcKNWCK1hLcVUT1sy3C 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: On 2023/2/14 02:53, Andrew Morton wrote: > On Sun, 12 Feb 2023 19:10:27 +0800 Qi Zheng wrote: > >> In free_area_init(), we will continue to run after pgdat of memoryless >> node allocation fails. However, in the subsequent process (such as when >> initializing zonelist), the case that NODE_DATA(nid) is NULL is not >> handled, which will cause panic. Instead of this, it's better to call >> panic() directly when the memory allocation fails during system boot. >> >> ... >> >> --- a/mm/page_alloc.c >> +++ b/mm/page_alloc.c >> @@ -8360,11 +8360,9 @@ void __init free_area_init(unsigned long *max_zone_pfn) >> >> /* Allocator not initialized yet */ >> pgdat = arch_alloc_nodedata(nid); >> - if (!pgdat) { >> - pr_err("Cannot allocate %zuB for node %d.\n", >> - sizeof(*pgdat), nid); >> - continue; >> - } >> + if (!pgdat) >> + panic("Cannot allocate %zuB for node %d.\n", >> + sizeof(*pgdat), nid); >> arch_refresh_nodedata(nid, pgdat); >> free_area_init_memoryless_node(nid); > > Have you actually hit this at runtime? If so, is there something we No, I just quickly tested the following code and found that it will immediately crash in the subsequent position (many paths do not handle this case): @@ -8368,6 +8368,7 @@ void __init free_area_init(unsigned long *max_zone_pfn) sizeof(*pgdat), nid); continue; } + continue; arch_refresh_nodedata(nid, pgdat); free_area_init_memoryless_node(nid); > can do to handle this failure more gracefully? My consideration is that if the memory of the size of the pgdat structure (so small) cannot be allocated at the boot time, there is no need to continue running. So I choose to call the panic() directly. Thanks, Qi >