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 308ECC25B74 for ; Thu, 30 May 2024 15:10:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 783D56B0095; Thu, 30 May 2024 11:10:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 733AA6B0098; Thu, 30 May 2024 11:10:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5FBE96B0099; Thu, 30 May 2024 11:10:07 -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 426686B0095 for ; Thu, 30 May 2024 11:10:07 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id AA7AE4076C for ; Thu, 30 May 2024 15:10:06 +0000 (UTC) X-FDA: 82175397612.12.990C278 Received: from mail-qk1-f170.google.com (mail-qk1-f170.google.com [209.85.222.170]) by imf20.hostedemail.com (Postfix) with ESMTP id C32921C0026 for ; Thu, 30 May 2024 15:10:03 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=toxicpanda-com.20230601.gappssmtp.com header.s=20230601 header.b=joms6lPo; dmarc=none; spf=none (imf20.hostedemail.com: domain of josef@toxicpanda.com has no SPF policy when checking 209.85.222.170) smtp.mailfrom=josef@toxicpanda.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1717081803; 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=a1h+yJpIPUnfHN2elftbTXHU8+8yB5j/+qieJyJU0zw=; b=Ujv5sys/ZnT5In8DnXusHuK5naVxEMTJspgYOdNpeqSGDTGIJywWKhyE2P5+Ynw2SaP0c7 l7cz/Mxz1+0ejv6tWA3UUOvgDHMxAI/K2S3NiIO9NDO/ael2UWyiEVd8coaCmXr1DAZpgF dH8jHSFNJR/tHjM3lMhO30GZ399LiWk= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=toxicpanda-com.20230601.gappssmtp.com header.s=20230601 header.b=joms6lPo; dmarc=none; spf=none (imf20.hostedemail.com: domain of josef@toxicpanda.com has no SPF policy when checking 209.85.222.170) smtp.mailfrom=josef@toxicpanda.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717081803; a=rsa-sha256; cv=none; b=ioRWqBcJz7XuMmfmFS683N8oVrqe2Y5/+5AR2ts1lnBU9II+OaXibVLXRhgMOQjAzySr9E h5jvA9j/tblYlAs1zD+FkJr589e/Eqhk1D6ECFPgyvyCXk3TSn1NO6kYYACNi6aVhNo8nl jZ+Q37nzQS9QJ8IH5DQ4LMzmKI8YBt0= Received: by mail-qk1-f170.google.com with SMTP id af79cd13be357-794ab20699cso494385a.2 for ; Thu, 30 May 2024 08:10:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toxicpanda-com.20230601.gappssmtp.com; s=20230601; t=1717081803; x=1717686603; 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=a1h+yJpIPUnfHN2elftbTXHU8+8yB5j/+qieJyJU0zw=; b=joms6lPokgI8AeGCdNVKRr3lpNWRaJm98lCLwxOUeYnHaasNs2o4ZkJRbzEFLe76QM UQOWMz4Z4fZ7+A0jdGLBPc0OXv02NcYYmb8wg84E3YFDGMC+JsIRfCzRIt/RJMxT5GNJ gj8yXZg2pyVkhnU5WBaUl6SFm4n0P4L4ScilOPPCn5XU6dvWskyOj/hT1IoOSX8uS1d0 4TxAq5GjykjUBqmSHjcOYVo76kMMddzA9Mj6js5T9Zk81RJWQXNpd6c3Prc269kiS1KZ Or2r3HWwuWNFUfZzYkPregKw3ZJO++UMaCPHEjpVRiq2orC7RDr1Uq4TIG4HezNDHGlh sxgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717081803; x=1717686603; 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=a1h+yJpIPUnfHN2elftbTXHU8+8yB5j/+qieJyJU0zw=; b=j/Txa3S4/nzg05CQGaYw4hqZ/Xt2Kl/fE+63T8cu3Hz2tBo2iPJw1FzNyN8iawUI+e y5JoqudxHf2hp57VXIUqv4PAmPhmkJfDHlhmn3wwZY7ZHD4yPDeqW64oxu9x8AGNyTvS w+clnbyyOFq1dT0ZprYvI57XLGimXp5xBugBpRgVM2Ob+Ecy7YfnvEpTaMLnwZTYUCjJ 1vWWtch0RUTaHMVGpnDe76uKg8Qe5b4aUSp2dJ3dFXtq9qjvuDyZp3zM3hCUusfudDIC VfXSdcPo0/IWsSBbQ8IHvTA/m1XrJu1ddtNZ1Hz6PvniaVGRdOpC2esXa4xZW5zQYDOb ANuA== X-Forwarded-Encrypted: i=1; AJvYcCW1BgTK57/NFbvNeZdCRTUf3wLKWBib4XYsQWsbzGqk03il9+h2g506Lb2bU1NKS65H4AWFsKIlruZ216ia9aBgzsI= X-Gm-Message-State: AOJu0YzptgD00Z24pFTIig2EAdZrG+U+G5v0t7cuZunmmax4CKnJNtgk Y7WEZ18wxT4aUo0S8u7hhdlXK9HAPQGsIVaA4S6pGEo78QuSWZ/Yz6EA2Yl6urY= X-Google-Smtp-Source: AGHT+IE9GPmruKEUfq6P93JSBKNuh0HAuSj2mAje54FwOuTmaQpcBN9srFhsmHk8oE+z8lmBmzAosg== X-Received: by 2002:a05:620a:28d5:b0:78d:5065:c5df with SMTP id af79cd13be357-794e9daa82cmr302588585a.18.1717081802736; Thu, 30 May 2024 08:10:02 -0700 (PDT) Received: from localhost (syn-076-182-020-124.res.spectrum.com. [76.182.20.124]) by smtp.gmail.com with ESMTPSA id af79cd13be357-794abcc0f04sm561568685a.42.2024.05.30.08.10.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 May 2024 08:10:02 -0700 (PDT) Date: Thu, 30 May 2024 11:10:01 -0400 From: Josef Bacik To: Bernd Schubert Cc: 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: <20240530151001.GC2205585@perftesting> 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> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240529-fuse-uring-for-6-9-rfc2-out-v1-6-d149476b1d65@ddn.com> X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: C32921C0026 X-Stat-Signature: gmzujkbacq8j86i474cxxoa91arez9dt X-HE-Tag: 1717081803-908184 X-HE-Meta: U2FsdGVkX1+JN7nc69rO+WAi9LQXRRwfGXfrLX92yXapBa60FBQl9S1530H95iSMP4bwTt+mn/rU5UhLcVHmppg8gYmyQLQQ9f7ukdGUB4Sj+Uy0k4DHlpWsy+4cJdNHuVG3eIznet2gxW6t6NTdpX7Rq1EtlTVSDRwFhuEy/kYZ7uCskPW7VTw86aa9eiZwKBFY9lRqPRlj2fCWaScXy3Az+wtxm619kESOpM7fkH4mVQtbS7HMsDYRJ43XDKLs1n6Zx+Fpwor4SV8Ri02k+EIBS8qMd7MqmrgqD2F4C3gbBNYOsbIkqR/aZ6t29gpwdsLZC4FF6hvP7/BB+FVW2j2wdBI7qkygPVaT17Ib5TFdHaxGpbbGg3rcj+FlaGrHr8fvvST5bk13uCnDThAiBJu+JpuyIuhRiWh4civH8M8YDEurWDsJvoS9FDdcSKbjry5vgP51/K+77nu0JfA3u+knq6A4Ol9rZCho6ZEMbOFHO2ih5AZEkl6hCAn/IdyjwnX/scSF2CGN0kD25GBgpTrhJXU2OmYHI42Y/X4dgNQNTXwPGweBP2ROJXOUlo7Qwtk7Tk1KR4p65rnG/KnxqqxT/tIoVGp6W3xS6TjTJ4em87oEXcfzWCOZIQODS+XIL0/Av7xnTdX17auk4mDhkLS4n3MLij+O4OiqoSW5lw5E0P6lnuOjxK/swuKCoYfUM2mTeXX+TRBqiao4aEBNyZjkhC74c4Jw9ZyMrZ/u0+cagywYa1SrfeoWYAv/ya39XATjcYSu1wIcb3tBV36nOaGDbDuYjqIn8jWIfXQ/u0H8uQHUoLscRvbATrmL7Rb6QJz7bZlEYo5EBy3FOq/L/TqjPHVfgwWojSfZlwTGRFcPkq6nbOC+tArimaoIcWNaunANG7ncTnBDYr71ge2UkSxguhBm6EKVKkV/JAqMV0buRVajNH32tw/H6Kv7mft/cwdCbAPX+Hr6o0dHaAA BxBQTllP bhpGk9Naw8rcYWNakjqHV4Q1JuH15X1eltzCZue+JAAxdGi1762e1BbmJkmrpHOe9ApmRs1y/yJjjpk4d1ds9LiaFOoGxUOtCF03wAXuGnjB+P6ZgFUTnAlzUYKC/HtHY6VGLZK3OubdsiPmLVF8Z8hzNuS8FWODroo165H2sJbZxuAUZfxnsIsIeU4Yrcxrjw7XT/Mmw6i5ZRsGqZdCLwxGZJWbCyKbPFTwg0Br9UTjQW/Y4hkcWyq1rhU2fZb175pTlO01QjzJFAXxnYbnygo9IpA+z3ROeaSc9rw+SuHCn0dtrRozOaBNSxqVRr7P1F3sOw0nVvpnfgV42kPotDlra7jigaOT5WUy3kcy5rSlEjukHzL/1TydvEPhbnDxqmGyOx9QtmDADIlNgSlqVFzJhx+qUjZC+1ETeB2wHMyw3VAxTKKFsmxGSV9RdRUde9TPJjSglqg2gK0hNdtt9PDRvtAWrfn5ITNFRZGyr/KbTJOaaLnqVBuTOIAkdWOtvF/rMOm5nGIuMcskwCDEDHL2D/SmzTlhgGDsIIKpj9rrAg4nOPV2mVjl70Fn4XP1WRash1e1QHwD+767qLpcYFe0bzbU4ibHtR0wh7WlxQGFeAxQ= 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 Wed, May 29, 2024 at 08:00:41PM +0200, Bernd Schubert wrote: > This is to have a numa aware vmalloc function for memory exposed to > userspace. Fuse uring will allocate queue memory using this > new function. > > Signed-off-by: Bernd Schubert > cc: Andrew Morton > cc: linux-mm@kvack.org > Acked-by: Andrew Morton > --- > include/linux/vmalloc.h | 1 + > mm/nommu.c | 6 ++++++ > mm/vmalloc.c | 41 +++++++++++++++++++++++++++++++++++++---- > 3 files changed, 44 insertions(+), 4 deletions(-) > > diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h > index 98ea90e90439..e7645702074e 100644 > --- a/include/linux/vmalloc.h > +++ b/include/linux/vmalloc.h > @@ -141,6 +141,7 @@ static inline unsigned long vmalloc_nr_pages(void) { return 0; } > extern void *vmalloc(unsigned long size) __alloc_size(1); > extern void *vzalloc(unsigned long size) __alloc_size(1); > extern void *vmalloc_user(unsigned long size) __alloc_size(1); > +extern void *vmalloc_node_user(unsigned long size, int node) __alloc_size(1); > extern void *vmalloc_node(unsigned long size, int node) __alloc_size(1); > extern void *vzalloc_node(unsigned long size, int node) __alloc_size(1); > extern void *vmalloc_32(unsigned long size) __alloc_size(1); > diff --git a/mm/nommu.c b/mm/nommu.c > index 5ec8f44e7ce9..207ddf639aa9 100644 > --- a/mm/nommu.c > +++ b/mm/nommu.c > @@ -185,6 +185,12 @@ void *vmalloc_user(unsigned long size) > } > EXPORT_SYMBOL(vmalloc_user); > > +void *vmalloc_node_user(unsigned long size, int node) > +{ > + return __vmalloc_user_flags(size, GFP_KERNEL | __GFP_ZERO); > +} > +EXPORT_SYMBOL(vmalloc_node_user); > + > struct page *vmalloc_to_page(const void *addr) > { > return virt_to_page(addr); > diff --git a/mm/vmalloc.c b/mm/vmalloc.c > index 68fa001648cc..0ac2f44b2b1f 100644 > --- a/mm/vmalloc.c > +++ b/mm/vmalloc.c > @@ -3958,6 +3958,25 @@ void *vzalloc(unsigned long size) > } > EXPORT_SYMBOL(vzalloc); > > +/** > + * _vmalloc_node_user - allocate zeroed virtually contiguous memory for userspace > + * on the given numa node > + * @size: allocation size > + * @node: numa node > + * > + * The resulting memory area is zeroed so it can be mapped to userspace > + * without leaking data. > + * > + * Return: pointer to the allocated memory or %NULL on error > + */ > +static void *_vmalloc_node_user(unsigned long size, int node) > +{ > + return __vmalloc_node_range(size, SHMLBA, VMALLOC_START, VMALLOC_END, > + GFP_KERNEL | __GFP_ZERO, PAGE_KERNEL, > + VM_USERMAP, node, > + __builtin_return_address(0)); > +} > + Looking at the rest of vmalloc it seems like adding an extra variant to do the special thing is overkill, I think it would be fine to just have void *vmalloc_nod_user(unsigned long size, int node) { return __vmalloc_node_range(size, SHMLBA, VMALLOC_START, VMALLOC_END, GFP_KERNEL | __GFP_ZERO, PAGE_KERNEL, VM_USERMAP, node, __builtin_return_address(0)); } instead of creating a _vmalloc_node_user(). Also as an aside, this is definitely being used by this series, but I think it would be good to go ahead and send this by itself with just the explanation that it's going to be used by the fuse iouring stuff later, that way you can get this merged and continue working on the iouring part. This also goes for the other prep patches earlier this this series, but since those are fuse related it's probably fine to just keep shipping them with this series. Thanks, Josef