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 92046C27C5E for ; Fri, 7 Jun 2024 02:30:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EEE016B009B; Thu, 6 Jun 2024 22:30:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E9CA86B009C; Thu, 6 Jun 2024 22:30:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D3D086B009D; Thu, 6 Jun 2024 22:30:35 -0400 (EDT) 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 B579F6B009B for ; Thu, 6 Jun 2024 22:30:35 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 1D792A029A for ; Fri, 7 Jun 2024 02:30:35 +0000 (UTC) X-FDA: 82202514030.18.4E44C66 Received: from mail-oi1-f180.google.com (mail-oi1-f180.google.com [209.85.167.180]) by imf18.hostedemail.com (Postfix) with ESMTP id 2A2981C0013 for ; Fri, 7 Jun 2024 02:30:32 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=fromorbit-com.20230601.gappssmtp.com header.s=20230601 header.b=kgW0XXv3; dmarc=pass (policy=quarantine) header.from=fromorbit.com; spf=pass (imf18.hostedemail.com: domain of david@fromorbit.com designates 209.85.167.180 as permitted sender) smtp.mailfrom=david@fromorbit.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1717727433; 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=RcYAFqsF/ckcf7QO6r1G7NHoqOY/UBNbxhGiJExnXzM=; b=RVYRshf1UuueC4fAigvikGBZz1E5pGtHlV7yGU97MS6KuZuxNFB+5OPx3mBo17/+m+/r4i hnfmheLk+MZw8QwGHkNqVASN28tfLlef6b+qoDlMR5wmicKxaHUcnjRM9hWMGp8If/3YKn tWiYHd9BnawFmEa7jNizxo6U3yY6yGY= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=fromorbit-com.20230601.gappssmtp.com header.s=20230601 header.b=kgW0XXv3; dmarc=pass (policy=quarantine) header.from=fromorbit.com; spf=pass (imf18.hostedemail.com: domain of david@fromorbit.com designates 209.85.167.180 as permitted sender) smtp.mailfrom=david@fromorbit.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717727433; a=rsa-sha256; cv=none; b=NFNEFPs3HeN2UqEkEIu6QKt4jWevwYOGhmpyyURSEsf1YfGY04OJf2X8nnN1DQTWdfpTaF vmieFAdI4IlUOVp41TwNVXPr51OBdkEyr9fPY6XSLLZNW99RXXmNiRYWWl5OPl2o4ks0Ef LOceDNFdOdK+27wuuWhoquFemOKYkLU= Received: by mail-oi1-f180.google.com with SMTP id 5614622812f47-3c9b94951cfso900099b6e.3 for ; Thu, 06 Jun 2024 19:30:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fromorbit-com.20230601.gappssmtp.com; s=20230601; t=1717727432; x=1718332232; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=RcYAFqsF/ckcf7QO6r1G7NHoqOY/UBNbxhGiJExnXzM=; b=kgW0XXv3Q7UMr9UEmf1NSzIpVq8P9vH2U7KoRigzwVd9+UsjHTo2zg/NH0T3y+wv4Z 9z1X+WB1px7Vi56YOtwp759KsMhRohcDlsFqGBZOpkgjyivj8okhinEu+S2MIpW0KCgP TQyodtzwTeLmZn6uA7wam5SzLxl0zBBhzv1kr6Yhna0YpV2GJ/+W2wJCnP5N2SjZQCbZ eGqHy0muz99qC0XKaanfiuXd8fGIxhSE2PkIVhStMMF8pkG69Qq+gGE1JxV44HXxlDq6 Tjm+d3qcP0qWFfpWKEkSp9GUvJ5LrBYvIjBxEADkBI8Aytq0w67yIW9QMnuoucp+nkms 1SSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717727432; x=1718332232; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=RcYAFqsF/ckcf7QO6r1G7NHoqOY/UBNbxhGiJExnXzM=; b=V/n6rLZ7NxwyINu3vZBtlFpEiYiKQ7GdW/5VAjndMtftdAhpZEIsHPfcKD2616m0/8 f4EB32dUa31n2qy0udxwMvOd9a1IgIjGMV4h38lT2ID7q9QiC/mEaII2UAoDUBe7oQ+u SAdvWoD72Hbwy2f5zBQVEMeHIKIXbGjU5kvxaBXYizilCd0jQDtVvUgspiUtDETr84ig qoHsW7TagIqKE7OKUDkfJqXF/+GCo5yXmcvC8/3MwxnQ9y+TDhIY/r91P2+0Z0UmpE0L RTpF+MZgLiaPKpE46jFlmO9CL5KiEKtZ4WidF7rD0bYhgLa8Ag34z7X3WeRskLBi7A7R Gm0g== X-Forwarded-Encrypted: i=1; AJvYcCWJela9ehOvreO5OQPFbxDo4TCw7dfr8HGIfm5YFETQPUMTu2n0o5cGWP2Nvj4eR04Gs9rOepntZ4F8ZTFJQKZvGhA= X-Gm-Message-State: AOJu0Yyc0AThtZiLS9aStAt7GgUSF9eSiMxDI+WXlacGskEU7Ygtrxl2 F3vk006Aa7pVjffkw5d8gEWNjEIzr10WOWUlq+ZqPMVIs8w1TzLDRXueTj4MD7A= X-Google-Smtp-Source: AGHT+IHtVc/xXs8p2LiOKX6TtS9ZuvcR36mQdLkewI301BrkE2phw2VVCM8NoQWWvK707zUUUr5Nlg== X-Received: by 2002:a05:6808:1d9:b0:3d2:334:58cd with SMTP id 5614622812f47-3d210f5094dmr1139027b6e.58.1717727431530; Thu, 06 Jun 2024 19:30:31 -0700 (PDT) Received: from dread.disaster.area (pa49-179-32-121.pa.nsw.optusnet.com.au. [49.179.32.121]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-703fd4d94c2sm1792722b3a.144.2024.06.06.19.30.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Jun 2024 19:30:30 -0700 (PDT) Received: from dave by dread.disaster.area with local (Exim 4.96) (envelope-from ) id 1sFPN5-00721B-0d; Fri, 07 Jun 2024 12:30:27 +1000 Date: Fri, 7 Jun 2024 12:30:27 +1000 From: Dave Chinner To: Christoph Hellwig Cc: Bernd Schubert , Kent Overstreet , Miklos Szeredi , Amir Goldstein , "linux-fsdevel@vger.kernel.org" , "bernd.schubert@fastmail.fm" , Andrew Morton , "linux-mm@kvack.org" Subject: Re: [PATCH RFC v2 06/19] Add a vmalloc_node_user function Message-ID: References: <20240529-fuse-uring-for-6-9-rfc2-out-v1-0-d149476b1d65@ddn.com> <20240529-fuse-uring-for-6-9-rfc2-out-v1-6-d149476b1d65@ddn.com> <984577b6-e23d-4eec-a5da-214c5b3572ba@ddn.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: 2A2981C0013 X-Stat-Signature: 5fru44sh7gq9qn5kogaf6yyt98tao59h X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1717727432-713752 X-HE-Meta: U2FsdGVkX1838ST77RnyRV6SC5L1NlSOT5TBtYPN7GjQQ9nCgfyGQX39oBHIr4FXGx5Gcy7zdouRT2EhMHVcT2d3sFGKJo321WGtYDJQxn9+aua1KzTHhe0yrY6YXtHnLu7CxWCqZUPKAz3S+RjOt6RkKqrYb3zGT0VYOEKINOZBXI7w7d6gq8MVqtV6+DjbK6wbci6OOiZpLIVElMcDqsnsJEBKj6gj8Ds29PyAe3/s9obwjlNt8lWqYCh+sdK2A+jb5avXg3PkOqeSTECvBbz1Y7N4p4IhliLYTea+w6oefI3lYn/aTaeMNCIT0H/Pc5QV2+hYiXGLitkjUggRXdW+ocWdEMQWCJMRKCVZNTrNEOwiDAc8el95fqihYp3KxUQwip5zJZlZT9kZZkBmslHn08YZlAOH0i/x6hMeYEM4DB0Jxz3diE5jcESCVGuXuOSJtFt2OB+xheB+VCjWRIXnElF/FPQ2w23kot98KPyab6WCKsDwnnH9BKU5n7mqPsuoYrovgX3KOhVHHKjejXsD2xbWvu+RnLaH5meGSjQwuhqWdwUndhSByZqzzobJiQwstZAps4/tcMKMw3owS3wtbXjb61CIRlrY4eti09sUyb9JUGaXF+GkqQvnJOhGE7fdECoLOMoCVXXg1XbhYsy3pxOc8rZgtb6e3aqehTeo3WS9/7bCJYBtEf5XsU/3qnZbTBn1lYpNSQ3wDurAA6ecrr+YqMeG12ifDY/Lnhqcz+7seSlXGWxwF6mIYDp+vWrnEQKrEPPPBNVKQnjvjlaNWeQeujh+ZuDKHZ+MEE0edCVdAKl8/rVSxduVbOItrpskScw5rY1aOINO7Q3IZXrUowhoF1u4/4TdxTfHQ6WtVjrFyyZvG8j407bQLE20VFBqiaTpqqBF3Y6O1vJTfGf5zw/UeJXiYYBlnXztbaUozW3oWjLPvt2mGIwN5W3DuqYRuGZDHFNJklwAQPB CZbQaekp HQYGb4s3iteKFEzhvTAyzOLQqdBJOCVrYsRbfJ4ODwCsil7kZVnmymNkKEUXq112mRAChE3Jc+MlHrX7rEgvjj0ZJHCx+gVqgyB+x8WcVG+TN7FUD7X44INEKfsgl5z4RBg4BenlDUyq34mf/lxK5/eHmD7NJlsg0iVlZ2RaQX90BT3knLkL7+QR7inF2yhmKnmYlokq4ES5NHl/BjJSCUWLnQuthJjxNbqcH6v7/5JTc1Ioo5b4OFq20mUNH0z1ucok4pww9OiwYNWg9AfBjidw2q99pdkwNISdHYXsh3Ke/b4czg1XS+qFNI3xpvIrPBCzoq5PVDLThsWn06UnV09Sjd71ZN7oBReixyNUVkYo9+DNAi+9jUhoqDsMm3WEIFi34Nk9amf5hT9/CtzoNwKAflaKXJLytrtcfGO0vmwPEupXTCw13+Rv6S6QrPNjKkHkfoeVYkZykO7jPb9IDN1nubgEbsq98qQeSs0z9b+Dk7ePpSg2PGyGVBu0wz9CGZqsCko9pKLqY1Ib3b8LsBLqSmu1XIedUbuLN2WJqt6riPenC7AmX4bxxnSF6UOAhh8N69cBt+QVCgMjM/WUJmcoEOA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000003, 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 Mon, Jun 03, 2024 at 09:20:10PM -0700, Christoph Hellwig wrote: > On Mon, Jun 03, 2024 at 07:24:03PM +0000, Bernd Schubert wrote: > > void *vmalloc_node(unsigned long size, int node) > > { > > return __vmalloc_node(size, 1, GFP_KERNEL, node, > > __builtin_return_address(0)); > > } > > > > > > > > > > If we wanted to avoid another export, shouldn't we better rename > > vmalloc_user to vmalloc_node_user, add the node argument and change > > all callers? > > > > Anyway, I will send the current patch separately to linux-mm and will ask > > if it can get merged before the fuse patches. > > Well, the GFP flags exist to avoid needing a gazillion of variants of > everything build around the page allocator. For vmalloc we can't, as > Kent rightly said, support GFP_NOFS and GFP_NOIO and need to use the > scopes instead, and we should warn about that (which __vmalloc doesn't > and could use some fixes for). Perhaps before going any further here, we should refresh our memories on what the vmalloc code actually does these days? __vmalloc_area_node() does this when mapping the pages: /* * page tables allocations ignore external gfp mask, enforce it * by the scope API */ if ((gfp_mask & (__GFP_FS | __GFP_IO)) == __GFP_IO) flags = memalloc_nofs_save(); else if ((gfp_mask & (__GFP_FS | __GFP_IO)) == 0) flags = memalloc_noio_save(); do { ret = vmap_pages_range(addr, addr + size, prot, area->pages, page_shift); if (nofail && (ret < 0)) schedule_timeout_uninterruptible(1); } while (nofail && (ret < 0)); if ((gfp_mask & (__GFP_FS | __GFP_IO)) == __GFP_IO) memalloc_nofs_restore(flags); else if ((gfp_mask & (__GFP_FS | __GFP_IO)) == 0) memalloc_noio_restore(flags); IOWs, vmalloc() has obeyed GFP_NOFS/GFP_NOIO constraints properly for since early 2022 and there isn't a need to wrap it with scopes just to do a single constrained allocation: commit 451769ebb7e792c3404db53b3c2a422990de654e Author: Michal Hocko Date: Fri Jan 14 14:06:57 2022 -0800 mm/vmalloc: alloc GFP_NO{FS,IO} for vmalloc Patch series "extend vmalloc support for constrained allocations", v2. Based on a recent discussion with Dave and Neil [1] I have tried to implement NOFS, NOIO, NOFAIL support for the vmalloc to make life of kvmalloc users easier. ..... Add support for GFP_NOFS and GFP_NOIO to vmalloc directly. All internal allocations already comply with the given gfp_mask. The only current exception is vmap_pages_range which maps kernel page tables. Infer the proper scope API based on the given gfp mask. ..... -Dave. -- Dave Chinner david@fromorbit.com