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 4AD9FE64AB5 for ; Tue, 3 Dec 2024 14:37:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D3D0A6B00AA; Tue, 3 Dec 2024 09:37:01 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CECDE6B00AC; Tue, 3 Dec 2024 09:37:01 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B66B56B00AD; Tue, 3 Dec 2024 09:37:01 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 946816B00AA for ; Tue, 3 Dec 2024 09:37:01 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 25EFBA0A32 for ; Tue, 3 Dec 2024 14:37:01 +0000 (UTC) X-FDA: 82853899296.07.27286B6 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf29.hostedemail.com (Postfix) with ESMTP id 9AAD6120016 for ; Tue, 3 Dec 2024 14:36:39 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=mpYsqH6y; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=IBmWl1Gx; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=N+J5mDmR; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=14YzFBcv; spf=pass (imf29.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.131 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1733236610; 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=blsq4WzsUPf8s8FM67uXWrb8aFubNujefzu173v3mZ4=; b=U+HdfYYsyFML/9cpsYCP9k7QeIMrrqe/g68Odl0HjdWC0kuj/2HDmwQYMoRxhYABhiDOL9 sRBDFgswGthrhxEmlWmKkkv6q2YQPQTzz8qx8Dp+5/1upFrNSiVpE20prANr93S4K/NNNV XsHzn0dTYb+jTfFREYFyYClr4pYVYHY= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=mpYsqH6y; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=IBmWl1Gx; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=N+J5mDmR; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=14YzFBcv; spf=pass (imf29.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.131 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733236610; a=rsa-sha256; cv=none; b=1IDFcvw1vqf8PohmFTLGnnLO5ypiUEA7mdlExTSC96/+iNdoIGTXaSeBVUfYDtWkBVwsz9 rV/1vkyw8C4ZoJw6fHguPFTWTNoqWkshvd7pJS3ecio1uH0qWKuCl82wgzlPiAYbggdT2q IELXT7eE8J8hwgp/hJFjIvTceHShSls= Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 122301F445; Tue, 3 Dec 2024 14:36:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1733236617; h=from:from:reply-to: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; bh=blsq4WzsUPf8s8FM67uXWrb8aFubNujefzu173v3mZ4=; b=mpYsqH6yIoNfTupFM7f2/4kU8SWGu0tFNTXUpwJjOYlOTeXXlJcpTG1ycS687Aw+ydThLk q4APJEhp469/cqEJD1jVM0UVtuHUVc+5T8sllJ6Gw791HbgoUBKGjmru0148K12Y0ua/yl w+8sOpY1KaKVYESa0U/DiXt7DA6AdBA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1733236617; h=from:from:reply-to: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; bh=blsq4WzsUPf8s8FM67uXWrb8aFubNujefzu173v3mZ4=; b=IBmWl1GxBX6K6GsUtZitbbHRP5HiiNYhQz/TUIo6sDgDOn/MiGFA+tlnF7azFVSLAc8+p2 rTU7iUs/5o6wIYCw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1733236616; h=from:from:reply-to: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; bh=blsq4WzsUPf8s8FM67uXWrb8aFubNujefzu173v3mZ4=; b=N+J5mDmRu94/sssudMp4OIK6GoDuJxtMzqft9IofAy9qrNWERFu8xkHgsxT6S5CgQ8ohDm pXufJTxkjhuuGcJDywOJU3hHKEOOxFZ7ycWtlL7Twp7DQOGDkCOxDnyvOHTyuG0jin8Tg2 IPJ0/so4t1aY3SvE/jNtMgaTucO9s1c= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1733236616; h=from:from:reply-to: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; bh=blsq4WzsUPf8s8FM67uXWrb8aFubNujefzu173v3mZ4=; b=14YzFBcvuMO+7fVU4/qUGzO+tZqAko9YOrBIjfeG5mb/TPMK7dhJiA9j9XjVv7Bc8U1bZI yxna4vnyaSPrGRBw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id E63B1139C2; Tue, 3 Dec 2024 14:36:55 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id /kCiN4cXT2eTNgAAD6G6ig (envelope-from ); Tue, 03 Dec 2024 14:36:55 +0000 Message-ID: Date: Tue, 3 Dec 2024 15:36:55 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH RESEND v2 5/6] mm/page_alloc: forward the gfp flags from alloc_contig_range() to post_alloc_hook() Content-Language: en-US To: David Hildenbrand , linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, linuxppc-dev@lists.ozlabs.org, Andrew Morton , Oscar Salvador , Zi Yan , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Naveen N Rao , Madhavan Srinivasan References: <20241203094732.200195-1-david@redhat.com> <20241203094732.200195-6-david@redhat.com> From: Vlastimil Babka In-Reply-To: <20241203094732.200195-6-david@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam05 X-Stat-Signature: y48zpz5zt5b37yh5kwcmbgbiy3a5uk9c X-Rspamd-Queue-Id: 9AAD6120016 X-Rspam-User: X-HE-Tag: 1733236599-978124 X-HE-Meta: U2FsdGVkX19VDg3K94qPAY2J1GW/UtSqvs1lp6loQWNfw3pTWDogTda+glGqz7ebq11NcSIPrknRVBFfRWBuQJf2rJwvojmWAHh+SRFypl7WwgrF4U1wKXwXkjk3EturYOX5Zw7d7gRxb1UNLsqq/5nhl2Hnoojr6kvRsCZyrHHRuuELaHix6r4O/RjGQe6D3BtDwRvMuDbwtPbd+bzaU274KoupzfAUYeG7ar2t0Laka7MAZR+PM3BFXr+krppVpzvKKBEIWKfBQuwKZfEYkgAwiAA7gZ5Xw6AufJepIVKp7fLc02fCXKuaa3xer5MYUJxlQpjO1a38R0FfV9qKHwjgSNEJw1Rv//LZigZsie7CDwgwOwXpzt0h9KA7EynnHxirJ+BJ1oACAksosSkdLOZOpAHdmvVo//HUdjVQP4WvAFBJpr8OIx1SNcMg1A0pwV8yQcAklfFUPFPslfUGKjcCJp/IknTY2S/NngQRdmUu26ky57KdiC7+YUO6HiuCQ2OJKXF2v67LqTcHA9fMX+oh/HLIUc8RIXV+YU8A9V3mlZY0sVJVqDNIZKFXFkL0OgjGKCfl7SohZV+HVVGub8BRj1O0hj+cfXp88KLbvseuVoB6xX/zPVOnacifyokeDzyw+KsiaoBGdU4WIign27Ye/p3boSLCCvNx74Bl6M0Ndhva9wVreC0pP7VYHHwIpbAhzCO2JlDxn/Hkk5MV05yHGkgQW2pHc9npXxyUbx9xEeHyJ7wngl7KHVJ+gB26aJXQ1O2gX288pFU7TnayO3Sv17+nLq/n61kcO2NnhHx1eLpvmKZmZd44JkMTvKP2DrlMfNOSwn0xzSsDYsVmzRcF9RFBDoYGmAqPCQJ6TR3pgI7sKS1tHgZG5OqTodNmNSxgfO6L9SCWy+x6sm1cWPQwuiKwlt6m6IG9gUVB4Gyuo+FYQ6h44QhFxScBg3O85pvVX0+jeAbWmlMHaWL yjlw5QxM DIcI4kQzwa3pJMgAxqmzdzKMajlZdwlzs8hcqQ829RNF07u59bCfijLLYv/b95OJLsBEPlsnr785LyEcXlNq/IvPEuMgivzaI8z/TnrFXpLsi09TT70Ue4EURRU9eNlP6+0YTMAZ5G5mGyFHM6xJN9iJmXBSUl8WOvDScwsoq8gSf8jVTX1NHfAekJlE3AYFFj98W/wsIRs9AjwANwncmFoRTU13HUfhIZ17dL+h7V8GmrqkoKxf3aVNgzYbzIv37nftKgdXqtzF/08KRvrDTFhIlrVJoNjJz17dzhjpjVgIVROHIjP+CsHCz+Mn6ltPpTs9WKok2Fg2hjPSz4cU3wRQU3hw++5zMu7uG+rqf/GHYJW8= 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: List-Subscribe: List-Unsubscribe: On 12/3/24 10:47, David Hildenbrand wrote: > In the __GFP_COMP case, we already pass the gfp_flags to > prep_new_page()->post_alloc_hook(). However, in the !__GFP_COMP case, we > essentially pass only hardcoded __GFP_MOVABLE to post_alloc_hook(), > preventing some action modifiers from being effective.. > > Let's pass our now properly adjusted gfp flags there as well. > > This way, we can now support __GFP_ZERO for alloc_contig_*(). > > As a side effect, we now also support __GFP_SKIP_ZERO and__GFP_ZEROTAGS; > but we'll keep the more special stuff (KASAN, NOLOCKDEP) disabled for > now. > > It's worth noting that with __GFP_ZERO, we might unnecessarily zero pages > when we have to release part of our range using free_contig_range() again. > This can be optimized in the future, if ever required; the caller we'll > be converting (powernv/memtrace) next won't trigger this. > > Signed-off-by: David Hildenbrand Reviewed-by: Vlastimil Babka > --- > mm/page_alloc.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 54594cc4f650..71d70bc0ad79 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -6364,7 +6364,7 @@ static int __alloc_contig_migrate_range(struct compact_control *cc, > return (ret < 0) ? ret : 0; > } > > -static void split_free_pages(struct list_head *list) > +static void split_free_pages(struct list_head *list, gfp_t gfp_mask) > { > int order; > > @@ -6375,7 +6375,7 @@ static void split_free_pages(struct list_head *list) > list_for_each_entry_safe(page, next, &list[order], lru) { > int i; > > - post_alloc_hook(page, order, __GFP_MOVABLE); > + post_alloc_hook(page, order, gfp_mask); > set_page_refcounted(page); > if (!order) > continue; > @@ -6393,7 +6393,8 @@ static void split_free_pages(struct list_head *list) > static int __alloc_contig_verify_gfp_mask(gfp_t gfp_mask, gfp_t *gfp_cc_mask) > { > const gfp_t reclaim_mask = __GFP_IO | __GFP_FS | __GFP_RECLAIM; > - const gfp_t action_mask = __GFP_COMP | __GFP_RETRY_MAYFAIL | __GFP_NOWARN; > + const gfp_t action_mask = __GFP_COMP | __GFP_RETRY_MAYFAIL | __GFP_NOWARN | > + __GFP_ZERO | __GFP_ZEROTAGS | __GFP_SKIP_ZERO; > const gfp_t cc_action_mask = __GFP_RETRY_MAYFAIL | __GFP_NOWARN; > > /* > @@ -6541,7 +6542,7 @@ int alloc_contig_range_noprof(unsigned long start, unsigned long end, > } > > if (!(gfp_mask & __GFP_COMP)) { > - split_free_pages(cc.freepages); > + split_free_pages(cc.freepages, gfp_mask); > > /* Free head and tail (if any) */ > if (start != outer_start)