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 E7D6CC25B74 for ; Fri, 10 May 2024 10:55:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 122E36B00B0; Fri, 10 May 2024 06:55:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0D37A6B00B1; Fri, 10 May 2024 06:55:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EDC016B00B2; Fri, 10 May 2024 06:55:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id CF6156B00B0 for ; Fri, 10 May 2024 06:55:04 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 35DCE160486 for ; Fri, 10 May 2024 10:55:04 +0000 (UTC) X-FDA: 82102178928.22.1416341 Received: from mail-vk1-f178.google.com (mail-vk1-f178.google.com [209.85.221.178]) by imf14.hostedemail.com (Postfix) with ESMTP id 7294E100009 for ; Fri, 10 May 2024 10:55:01 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Iwl5Gf73; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf14.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.178 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1715338501; 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=1wlupgt5KecgpQVJqF2FhR9ZPlaju+6jPVqD7qRDHUs=; b=v4thBP4bDASxTWz5NH4P7eYX1yoE+YhWqEJTPfrsWOxe/zMHqRd6Gwu8ywr9HAO7Qus9qD wEOwtMg7Ezye79Olv2qCrQQmW/hU8BChIOwte06eARjK+dj8igkc9WRlUvjIN5i2SVEgPx CI7014cmu9TzFfe6gCVTqOxOfJ1MnW0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1715338501; a=rsa-sha256; cv=none; b=F8Gj4xAIf6xFAFWMx3EdkAe+gmtSaZzz6+tiP4dYNqypydIJB3O5phIwGVAa5Y7uokSMWX +syZzViFA0vcq9pT7eYbK+WNDExSOlk0QEfS53JPfVMFm0SkPud532Gq4NS3VUeplNwOeQ i1PpP1cRRayqvToBR4SUWV48HcEpgsA= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Iwl5Gf73; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf14.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.221.178 as permitted sender) smtp.mailfrom=21cnbao@gmail.com Received: by mail-vk1-f178.google.com with SMTP id 71dfb90a1353d-4df3ad5520aso787071e0c.0 for ; Fri, 10 May 2024 03:55:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715338500; x=1715943300; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=1wlupgt5KecgpQVJqF2FhR9ZPlaju+6jPVqD7qRDHUs=; b=Iwl5Gf73YJ68kofwJGQmgmtg180F1I17767PyNSH1OqY2pmj1sBGTXo8U/3EJg5Y7N vDb4XBM2760AxHuqfgoL2/3UjeLelfZFreesSWlZFkPodI3bG0AAWEpofo9bp/JMTL3+ v04Blcp92eevSd69BOO3RQqRQ1de4OE0e/Dt65+7FVZUvxBMuKz1dARh4IJtJidOO/52 j7VYPfnvs7SRsoyv4wu2yVh+9U72MAj88xKIs+ohfo3q5qAtTe9u88c/OErWr4CNQdbH 7TTK2wrV4uCrXVGLpPMGd8pMa4LQBDXRWE0SjyPWmzjsSep0bhtG3SKXwzS2Es9zf5XP ZBDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715338500; x=1715943300; h=content-transfer-encoding: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=1wlupgt5KecgpQVJqF2FhR9ZPlaju+6jPVqD7qRDHUs=; b=JV54MhE/J//+aO681koL0mc72dCvDFH8QOoV5hoKB+L3VwfnGYpfRPidowM+jRmv1Q 6g7cb4KfdaG5nl0fkG7av08u1PRkpoD36IMt6bCVjP5Zb+rW6b3dF6ZaIfJstRNDLjZi K2M57TyaiqwlGCN8coc9o2Ck7gRK492TdyBQB2pnbo0h3H9iiW5/cShDUVTnT3rEfvtc aPeEvKrLnbC4yN3Vw+UVmLsCjOzyzAp77x+yaXnLKhAUdyudj/ZbviHJX1yIfz3afJYV l6sMWBHqTZvbpQaUjRqmZJRYRM+M+vLWbCqmjaE7UVcfJRMsfg7CWi+bTd48BH/aOSQ2 +W0w== X-Forwarded-Encrypted: i=1; AJvYcCVuy9b0GBkv9jX6OKBI5nPYVvZMV8Y6mdpBv+JuLW3CNDuz8bN4KN6KEFCH6zX/fTxdndZuas4MUb4e/KEttECJKfs= X-Gm-Message-State: AOJu0YyTWp3muhDcghgSG4kN/rzo4ZG+V/K6cJgv95UzWtB1SYTLoo7y x/5Z4OdDe5sJe7OWUX4wAdgavWHohzEJG7ijyfCNe3kNNb1MXfCgmpJ8nvtzCN3NiIMsQ2+VRaM tZb/p0N5+RSUd6lE4l/m+1P4w7Wc= X-Google-Smtp-Source: AGHT+IFR2+tVUJwKSg0yCQqekFJUJKlDpXohzwpk4X8JX2XpMN0jt0HmJOqMsnO+dytDXoRDBxrkKutlKBCdH2sJhjY= X-Received: by 2002:a05:6122:411b:b0:4df:2b08:f217 with SMTP id 71dfb90a1353d-4df882c2bf7mr2526033e0c.6.1715338499019; Fri, 10 May 2024 03:54:59 -0700 (PDT) MIME-Version: 1.0 References: <20240510100131.1865-1-hailong.liu@oppo.com> In-Reply-To: <20240510100131.1865-1-hailong.liu@oppo.com> From: Barry Song <21cnbao@gmail.com> Date: Fri, 10 May 2024 22:54:47 +1200 Message-ID: Subject: Re: [PATCH v2] mm/vmalloc: fix vmalloc which may return null if called with __GFP_NOFAIL To: hailong.liu@oppo.com Cc: akpm@linux-foundation.org, urezki@gmail.com, hch@infradead.org, lstoakes@gmail.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, xiang@kernel.org, chao@kernel.org, mhocko@suse.com, stable@vger.kernel.org, Oven Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 7294E100009 X-Stat-Signature: ayqmp98uu9ih4f8zneptezridxede9mi X-Rspam-User: X-HE-Tag: 1715338501-345380 X-HE-Meta: U2FsdGVkX18aEcS6cD27vQOsWrCRrRkzwvMdbRSIhY2dIlw3zUgdwOd6oilvsRc4RaWE9OYTj9PNQXvVQbYfOF8muyB1qDzlrRtXayChYLS9+YdJHula52DOye4+zqbouQa7UoSJO3kh6g5bHIOJishWWic9T3FJgM+S3/zu6fuIgoaI3S7aM/nLIDMPo1LV5oVHJE2xkLE4LDg6Dc43vuMM/uVAFexy/02knsyFJl+EMskVdkBiBqBeBPeGAUj+u7qKZk+UbzDI0DPjYPNrk8EC5x+sRD+JWpFoxE0uTwVScwJ0hnJV8/i9NYhRC1MjK6aB9/heflpgqBH1IIc+hyqHRPLfdwXrPAme9C/TZGC9tqQTDF7gPT7WvMi/9w3WJay/fOTgvypBFe7DG0yPbNtaLuexN50BFF4w4K76TcZztKKSISORpuXiD/SqRGOO1soAmcTZxcHu+kqGQTmNotT3amtqfiB98mK429uZZnSfIyo5kE+9g2hiwU5fc/hbbXnsdEzBYlLPHHnuK1lT67F76dZVn6QfZjy4iiS2/g2ELzSMmpNlRyvCxozSuyqbamMvrypNCL2J/PETuSF2k+oLmfWIlLmx5PMfXYCcAhTdnv90v5GJ6v4hTRZLCl0sAcOvDMOlF3GuKF58DHNchv44I5Sa9lr9BKtroJfLGhgm/0HSU9RTMwnS1cd6mdc2mu6aUf4MTjdwHll679WvDIKTZgp34Mye2oYBEnn1sglHTz9HgGstgZIndlrvWKMCnQleevXKOOZxasV5PwUQD7dzAEP42bcPLGQaEKPSUPBc3foLVOxTA155AQVnQ+Zi8h9LV/TPI0KhRRIbFkFeau6usolI1QRjGwL8M34ZYrV6S2h7ABGrP2eFOicrqggOR5ODBhJMxW0p0oRVA3IVXzbDIOhg0wXeO0ceGxYQBi/qbj6MMQijSniBz5ud0ujSSzJlIBYhbW+MRKBssSU fcAzv4ms 7WcbcFA2oZRnlJ/ZAeV8MN5TsRMeqTejG5W8mzsFhD99EtDfJ63UtpeFRtf+9WaY3q+nTmB4wNFwAis7J80IPt24u6oupb7maa7awuRrvV6XYSZ09HlqsYcs/qmopWf6OQCYtQQM3scwiagXnRk+2i6xdybwUFz9d84cuEdv4XS68vLpNe2953+bQyP95XCvS5gt8wXubsH/Ia9HU7jrAtPxwaDeUm9iNOanD2kyMs7/PVrhXO41++8g0d1WcVE3OjbnJUtgxqAXyGKXFCmu3rpvIVJ0GqGUN6l1f7R68N7h0ZbWQFy0P+M92Q2ApnSUPHPUd0tnrMojQLw1cx+gBKMDqC+m34DBV34GwDnS8QjiO9k+svRdcnzCAGCLM96bfuwgPzw+Qo3spjSUVByYrlFP094xx/IIvPETsJMN2cITp59CVe2Kz9bgd5qzHXG4A6QcEqmve9P7/kktuFm6qg8RLFiV0iwgoaVTtzIGNYf63k5kH65lcecSl0oQ4rmyAorP+iaWwreYDgjedCJkoszt49bkhzuJU5pSADo7wY/EBXG1EA/3tGMdvo288k7mH/mI2IsZawtGpIZwyxMqpeiKbt2X3PCeb7bia 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 Fri, May 10, 2024 at 10:01=E2=80=AFPM wrote: > > From: "Hailong.Liu" > > commit a421ef303008 ("mm: allow !GFP_KERNEL allocations for kvmalloc") > includes support for __GFP_NOFAIL, but it presents a conflict with > commit dd544141b9eb ("vmalloc: back off when the current task is > OOM-killed"). A possible scenario is as follows: > > process-a > __vmalloc_node_range(GFP_KERNEL | __GFP_NOFAIL) > __vmalloc_area_node() > vm_area_alloc_pages() > --> oom-killer send SIGKILL to process-a > if (fatal_signal_pending(current)) break; > --> return NULL; > > To fix this, do not check fatal_signal_pending() in vm_area_alloc_pages() > if __GFP_NOFAIL set. > > Fixes: 9376130c390a ("mm/vmalloc: add support for __GFP_NOFAIL") > Cc: > Acked-by: Michal Hocko > Suggested-by: Barry Song <21cnbao@gmail.com> > Reported-by: Oven > Signed-off-by: Hailong.Liu Reviewed-by: Barry Song > --- > mm/vmalloc.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/mm/vmalloc.c b/mm/vmalloc.c > index 125427cbdb87..109272b8ee2e 100644 > --- a/mm/vmalloc.c > +++ b/mm/vmalloc.c > @@ -3492,7 +3492,7 @@ vm_area_alloc_pages(gfp_t gfp, int nid, > { > unsigned int nr_allocated =3D 0; > gfp_t alloc_gfp =3D gfp; > - bool nofail =3D false; > + bool nofail =3D gfp & __GFP_NOFAIL; > struct page *page; > int i; > > @@ -3549,12 +3549,11 @@ vm_area_alloc_pages(gfp_t gfp, int nid, > * and compaction etc. > */ > alloc_gfp &=3D ~__GFP_NOFAIL; > - nofail =3D true; > } > > /* High-order pages or fallback path if "bulk" fails. */ > while (nr_allocated < nr_pages) { > - if (fatal_signal_pending(current)) > + if (!nofail && fatal_signal_pending(current)) > break; > > if (nid =3D=3D NUMA_NO_NODE) > ---