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 F3A72C433FE for ; Fri, 4 Nov 2022 17:37:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2D1F86B0071; Fri, 4 Nov 2022 13:37:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2823F6B0073; Fri, 4 Nov 2022 13:37:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 170366B0074; Fri, 4 Nov 2022 13:37:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 056E36B0071 for ; Fri, 4 Nov 2022 13:37:54 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id A69B18156F for ; Fri, 4 Nov 2022 17:37:53 +0000 (UTC) X-FDA: 80096467626.08.59A9370 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) by imf30.hostedemail.com (Postfix) with ESMTP id 44CAA80002 for ; Fri, 4 Nov 2022 17:37:53 +0000 (UTC) Received: by mail-pl1-f178.google.com with SMTP id d20so4466387plr.10 for ; Fri, 04 Nov 2022 10:37:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=9WJVNtgyt9yQIAQP4rGtMlIS+jIsXpnGPsRO7taD5C0=; b=maWU6xxaIgdZI6etWPmNC9wyUJnic8/26HvAqDHTw2egJeR4aQ7meZcPEurtYlCHyR wJ2i3kqsaduQJea56AO1pSMUp0DUmn53+6s89V7vq0KIvfwXKls0g+YGZ1ScH97iOOnX XTsDdXfcw0ZtmkUXw/ZvHkE1E2lGO8jZueWHFjfyKBFKzxXONjBMELcVleHc9lizV4xr WJ0QQj7Fp+zLA/vdzTb2yRkTI5p6TySvYbCdtKGiyLXrel+cd584xtVNBzHk7+jd/nOc yaPSJsJex8qrYiG+AMQYbgDmP4uDfRETQKHQW0b0fTY9G9rs0HupZpYVazF5bZPdcPAF 8nHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=9WJVNtgyt9yQIAQP4rGtMlIS+jIsXpnGPsRO7taD5C0=; b=6CNjdfOcXOyUdLBJiQ1ny30vXa0eDo2ebdqJZiSbKrt2eathRYRXHr54Z/jQ73o/Wv KnYBmV+/YynEhibtmhyU3AGG8Lym/3nTZxzPG1xgH3Rhkejf7xJJhbHlZ5Hs3+AV9OfK 55Vc+TfbvMVaZT4irREuiDgCFS5oeNfPpJbqlah8gRTIlLvCyVgNj7X22Kl2WjOaiT9v 4TPUe0OWAajE6zad9E1DcWF+3ROwuJqJuIPkS7vL9ZlgYU2JLb0Sc79mmpwix4PFMp9G QzD6tmgCX7ue9FVv76B6wTsfVY/hBcCCNoZD1fxDLlxHRMEDfUL7bAYB1rJdBFMV3Wlt oZ3Q== X-Gm-Message-State: ACrzQf3EevUzBeOHk8fqZaBr7YrFqbUtF403Wrl2emMzuO0tHXwzZKfB Y78zAGyk/V2Q+Rda+zhZnJMp1Z37jrYrPKx2z94= X-Google-Smtp-Source: AMsMyM4aZ2Mu3gPp9wEirY7n+iM73dkatT2xVVDSugb86smFkyUY3Y0zdRRZ0DONUznEqQS/KkwXQbHtiKkHMV8zWcY= X-Received: by 2002:a17:90a:558c:b0:213:8cf1:2ac2 with SMTP id c12-20020a17090a558c00b002138cf12ac2mr41822574pji.67.1667583471878; Fri, 04 Nov 2022 10:37:51 -0700 (PDT) MIME-Version: 1.0 References: <20221103213641.7296-1-shy828301@gmail.com> In-Reply-To: From: Yang Shi Date: Fri, 4 Nov 2022 10:37:39 -0700 Message-ID: Subject: Re: [v2 PATCH 1/2] mm: khugepaged: allow page allocation fallback to eligible nodes To: Michal Hocko Cc: zokeefe@google.com, akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=maWU6xxa; spf=pass (imf30.hostedemail.com: domain of shy828301@gmail.com designates 209.85.214.178 as permitted sender) smtp.mailfrom=shy828301@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1667583473; a=rsa-sha256; cv=none; b=736EsG274WMsseAlCq9NQnacvYm+whe7nzgjpHO35OJNVcIJTpUA/DYgAV4M663dL2tcsX pPnuY229mSlLjTeVjHhB5PqjQYK4WvDRPJHeCXNX4Y/TQvfNXM9h/wIpW1hhgjK1xOKY9i 2SWjWfdGmDkmg8Blyj2vtT99cc7LF3g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1667583473; 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=9WJVNtgyt9yQIAQP4rGtMlIS+jIsXpnGPsRO7taD5C0=; b=VxL9NpJDP53TBAtz6bpa7NWXTktm7kfylAjMcOQoC5+H7z1HsKtN/g2d2a85U/gOYBa015 Z8z6IqV/iVu61QE9uUmdfrvtqFPoRcCqrq8uePzxHlqJ5/2GDhlU2gbQg+ZXzGT5IkIT97 s2HXVZRmDJxo5ACoSHwh6h/tEdf2JlE= X-Rspam-User: Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=maWU6xxa; spf=pass (imf30.hostedemail.com: domain of shy828301@gmail.com designates 209.85.214.178 as permitted sender) smtp.mailfrom=shy828301@gmail.com; dmarc=pass (policy=none) header.from=gmail.com X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 44CAA80002 X-Stat-Signature: pofb5sequcc6tn3qf4k15ieon4nkxb6d X-HE-Tag: 1667583473-58276 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 Fri, Nov 4, 2022 at 1:32 AM Michal Hocko wrote: > > On Thu 03-11-22 14:36:40, Yang Shi wrote: > [...] > > So use nodemask to record the nodes which have the same hit record, the > > hugepage allocation could fallback to those nodes. And remove > > __GFP_THISNODE since it does disallow fallback. And if nodemask is > > empty (no node is set), it means there is one single node has the most > > hist record, the nodemask approach actually behaves like __GFP_THISNODE. > > > > Reported-by: syzbot+0044b22d177870ee974f@syzkaller.appspotmail.com > > Suggested-by: Zach O'Keefe > > Suggested-by: Michal Hocko > > Signed-off-by: Yang Shi > > --- > > mm/khugepaged.c | 32 ++++++++++++++------------------ > > 1 file changed, 14 insertions(+), 18 deletions(-) > > > > diff --git a/mm/khugepaged.c b/mm/khugepaged.c > > index ea0d186bc9d4..572ce7dbf4b0 100644 > > --- a/mm/khugepaged.c > > +++ b/mm/khugepaged.c > > @@ -97,8 +97,8 @@ struct collapse_control { > > /* Num pages scanned per node */ > > u32 node_load[MAX_NUMNODES]; > > > > - /* Last target selected in hpage_collapse_find_target_node() */ > > - int last_target_node; > > + /* nodemask for allocation fallback */ > > + nodemask_t alloc_nmask; > > This will eat another 1k on the stack on most configurations > (NODE_SHIFT=10). Along with 4k of node_load this is quite a lot even > on shallow call chains like madvise resp. khugepaged. I would just > add a follow up patch which changes both node_load and alloc_nmask to > dynamically allocated objects. The collapse_control is allocated by kmalloc dynamically for MADV_COLLAPSE path, and defined as a global variable for khugepaged (khugepaged_collapse_control). So it is not on stack. > > Other than that LGTM. I thought we want to keep __GFP_THISNODE but after > a closer look it seems that this flag is not really compatible with > nodemask after all. node_zonelist() will simply return a trivial zone > list for a single (preferred node) so no fallback to other nodes is Yes, exactly. > possible. My bad to not realize it earlier. It is fine, never mind. > -- > Michal Hocko > SUSE Labs