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 A6EEDC77B75 for ; Tue, 9 May 2023 18:19:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2D27A6B0071; Tue, 9 May 2023 14:19:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 283206B0072; Tue, 9 May 2023 14:19:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 14A936B0074; Tue, 9 May 2023 14:19:45 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 0307D6B0071 for ; Tue, 9 May 2023 14:19:45 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 965D41A04D0 for ; Tue, 9 May 2023 18:19:44 +0000 (UTC) X-FDA: 80771529888.03.DAAC5FE Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) by imf22.hostedemail.com (Postfix) with ESMTP id 445B4C0002 for ; Tue, 9 May 2023 18:19:40 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=ENRi9U7d; spf=pass (imf22.hostedemail.com: domain of lstoakes@gmail.com designates 209.85.210.181 as permitted sender) smtp.mailfrom=lstoakes@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1683656381; 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=Yr7aYgFfnebTNe43NSbQgISdpDw8C+mxTxNrTLAJ2Kk=; b=Dx0DRmJ4iePrjRz+nr5fsI6kHeXJxBSjw5jtQFHarRdH6RVO3EYt13S4P1vfqdR9CiFzWM 2ISmGxdE5QO+ZpQ7OgO03U1xkJMUSPq+vgytGOkx4lfsyOwTlb1IQKhRKMNCZ7iLlB5Kgu itrvuOBlHYux5Uj8A398yfGXn9FZ6uI= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=ENRi9U7d; spf=pass (imf22.hostedemail.com: domain of lstoakes@gmail.com designates 209.85.210.181 as permitted sender) smtp.mailfrom=lstoakes@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1683656381; a=rsa-sha256; cv=none; b=2u7NqHCJiSFMgCMgNRsRy4NLzd0prG2/5/yofNT8QEMLn8LVrSkpZ6KhKPyCt0GyV6SMAx 3YrLszJGXRCuzcdYBcR+UnFgL41Rgqv1auhltrBq/5jHCrHrm9PVIlq9Z5pgr9uknyPVif K/bhCi7qzdKDiLV3mk9iDWHwM9LFNfM= Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-6436e075166so4691577b3a.0 for ; Tue, 09 May 2023 11:19:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1683656380; x=1686248380; 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=Yr7aYgFfnebTNe43NSbQgISdpDw8C+mxTxNrTLAJ2Kk=; b=ENRi9U7dHBzfbj5dYi+GdPIUl/OjAXCC4Rwdfcx2K43OeLVCpBVCKuRJX22b9IYZY6 5oQFvlMJapMGSNqZLbRGyH1WX6HywEiTl9f5hBZmVyiTC1zshKefrcBeearnH1YY7OZd 8G6KsRsMwqHm6uWcrEQcVUkBh3PyXz9+3IC3IehUxfomD2hD7odbZWkYL6OEF3CTYpaW uNjkm7yDdYRsyjR1VLzNivJBRyE3vufUOadgKVtmTKdilP2tvhd2QE6+QbK0pO7XDJjA 3CEdkK4YBFBoZM/yhak9LtdlKdSZ4rSwx5wW3k3KQAlhFMFKI2z9+kuem99EYirBiY7Z 6Z3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683656380; x=1686248380; 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=Yr7aYgFfnebTNe43NSbQgISdpDw8C+mxTxNrTLAJ2Kk=; b=Vrjz5XTgU41tej6IzMaEr4lqUbLflJol0g5jtRbzueGARhwvep/4j4tIj6uvGS/xAP eacoDYwrsvzWkBvIU/4UbTSWDe/o3awpph5DiKuoO65NUfJAhVo5vmbvzrQlYpqBEWl2 xFjkCSP+b5ctb/9KfO9p8q+bzy+5Z9LXZl4UFfWPWmOWRlIX5hLc1+Xka4Jw00ntgxJF KicNbWhIq5ORLbzDwMW0WuZ/kq9bD3LPU3eaPw7myGuRgwWy747GPfo2PvRzV64O6/kx YvvNJ/rsFYmD5MSmaNixMUq7MNkVLM1Fn+Tov4fXSYMZaYs/mY1Lf7LneS5Q1Zf2n4La g3RQ== X-Gm-Message-State: AC+VfDxaiZXF5QEW7liqZYS4tfI7YKh9/GHGuQBcKWYxIeWhoHCk5Gtr L7ZeYNTVisOV1JeK/ieypH4= X-Google-Smtp-Source: ACHHUZ41jqjPjF2CraRnJ3hPLebjg5fr6OD0bBojCpKd7hrN5OidIm8BVjgmxkS7Hgbmodb7kk8pXg== X-Received: by 2002:a05:6a20:548a:b0:101:a9b4:a4b8 with SMTP id i10-20020a056a20548a00b00101a9b4a4b8mr1279435pzk.57.1683656379762; Tue, 09 May 2023 11:19:39 -0700 (PDT) Received: from localhost ([2001:4958:15a0:30:3c22:a6a6:f3a4:12ce]) by smtp.gmail.com with ESMTPSA id v6-20020a63d546000000b004fbd91d9716sm1656756pgi.15.2023.05.09.11.19.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 May 2023 11:19:39 -0700 (PDT) Date: Tue, 9 May 2023 11:19:38 -0700 From: Lorenzo Stoakes To: Kent Overstreet Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-bcachefs@vger.kernel.org, Kent Overstreet , Andrew Morton , Uladzislau Rezki , Christoph Hellwig , linux-mm@kvack.org Subject: Re: [PATCH 07/32] mm: Bring back vmalloc_exec Message-ID: References: <20230509165657.1735798-1-kent.overstreet@linux.dev> <20230509165657.1735798-8-kent.overstreet@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230509165657.1735798-8-kent.overstreet@linux.dev> X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 445B4C0002 X-Stat-Signature: w5sez9r8e6ekp9394edd41zx7xoopo3s X-HE-Tag: 1683656380-205962 X-HE-Meta: U2FsdGVkX18LQMFex3Lu1uRhJf9euU0wMpFSre3y1GGAwpWtE7Am51ZRzCacZxHFbL1+71oeygd/IJQfgce2GUfvh/LOCyB9CsmGuOIAwgBRWJXZ5HtB9Z3FoPkjjhnU2Dckb8t7X8jcSd5VpuLRb7QXJ++aEVIU0fCKkUoq00lqaas/yWY+O8GuUbFpUl44oUTyBjkBfS+DPwjjgUfLIKgQAxENAPkj87qVY+9PPK4uSzKXW3oKcTxwun3/SehcpK728M38JCC6Ye/etSjejNutiMQj7g9rWKbKcQVY92m90pwBS4YHJi4Xt9DMgaEMYl2UdOpDWJPVxtcdq9GZPsaOMSR4pc72HKOs5++HHQUpyOTY5Emz/jGf5Hhn/kUJ9dEVX/WNXT9uMx9CcmG3RnwNcos6iYflmxFQBoWc/8D4Vy7zQH5OiRCP1i1PaVD7QAx2EuEMgysqwSe3oqcqvCkUsYLdNsVtqqbKjkl/C6dDgdZT/Q9Qjp3yWbfBAOjBbJmz6h/Nr6JoPW74Z+Rpu8LIrfQT0OaX3BGX4eFd7KCiWUpCXBpTZCwzXeeqCJbGkyW8KH0GNaRbbbiZwTwJFG+4BH5vqT0DUIWE9G3MsKlOlNNBiyHWdRIu1104VQoyv+9fYdQggQ0vIJWWSLWK8iF0uUZ3zGrqm17JNDTT0PwgUiql1gCL12qN80aSzZOnXXHj4Y+TjoUcv44c1Muzs4hV8bXcM19njJ5CXvcfZaahp9tTSrq3Zob90Erh8DqRNE08SCdsrSIwFkSE/Ls8ZGhJxeUxyS+BwMiyjsAXBesakgBwysgwTy8bm2f3A1DWMCYShWznnEVQketNd/LujrAT3fI8SCgS/KGxXMMXUNznON8+acniQ1imzCDoTAPVywsfBwvoEcoGILdk9MtwG0lUn5DNeuY8IKwSy89ygLXJm2XTneOj25Kozf+6BYN8MfuVCpMBxKUU2yqend4 rUqJds5s XjxwntvKxUGezR3QX3Oa9P2HNn42Yri0U6Zvo0qwcI3GGW+ZGM42j9vl+j3zb103MfW5anKH92MaLSSGeUao47aLKLUPRvvjZsU+atY2KrqHeIh1zkMnNSINCmPJNJJz+siIuzUGlh67VX2PiyMOswtsylw9TsMZgvLAyO1VyOqMXMot6Gz1xGcKUctiEVKrE29SFufR5fzcJzyc0h9gad/JAKUgYo16HvgtHFhtPEyBjLeI6pGQrTStkzBTIYzCC3k3Yv7tzeVxoeS0kgmTb3r7SPfDvXLWuJwFvJZvKOurM11vs0POzOA4v4GAWjxy3rSi/2dTA6qZwI/TqDiql7HXCymShx7hz481R6F1LNz9ReqGbiElXSrGbFsAvEhQOeUuotSrsrEClNyMlooIwqzLN/0npJ2RuKi1uUfWHmziJY8M2Zcou1uDudde/bXGxy5SljCJJeCJrBujl907J7B4YgJzpNJdX6AA3BkrmdPcnUv4JtZA7RUdP8gWnMblwqeRDPuz6c7GADcM5n4JVU3WRtC1+4njQH11y81dXQ1j9HekbaYBQZEswSTsbsIsV/urUIxX/Web2GYWUplSv8uyL83+RjrEn5oMcH9Ushe5sjCQDPZkspYxeAkyufUjeoZMAYPve4DJnRBW6NPFDW9bIPUTXKxGMQ429XasGGo8L4UPp2udcHoyC3x9WY7FqHlQVUpNHL+/Kt05oSrvHtpUtmT8KbNcYf8FVzVR+qlWSk21DIu0gWFXnE8gVPDx2xADE 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 Tue, May 09, 2023 at 12:56:32PM -0400, Kent Overstreet wrote: > From: Kent Overstreet > > This is needed for bcachefs, which dynamically generates per-btree node > unpack functions. Small nits - Would be good to refer to the original patch that removed it, i.e. 7a0e27b2a0ce ("mm: remove vmalloc_exec") something like 'patch ... folded vmalloc_exec() into its one user, however bcachefs requires this as well so revert'. Would also be good to mention that you are now exporting the function which the original didn't appear to do. > > Signed-off-by: Kent Overstreet > Cc: Andrew Morton > Cc: Uladzislau Rezki > Cc: Christoph Hellwig > Cc: linux-mm@kvack.org Another nit: I'm a vmalloc reviewer so would be good to get cc'd too :) (forgivable mistake as very recent change!) > --- > include/linux/vmalloc.h | 1 + > kernel/module/main.c | 4 +--- > mm/nommu.c | 18 ++++++++++++++++++ > mm/vmalloc.c | 21 +++++++++++++++++++++ > 4 files changed, 41 insertions(+), 3 deletions(-) > > diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h > index 69250efa03..ff147fe115 100644 > --- a/include/linux/vmalloc.h > +++ b/include/linux/vmalloc.h > @@ -145,6 +145,7 @@ extern void *vzalloc(unsigned long size) __alloc_size(1); > extern void *vmalloc_user(unsigned long size) __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_exec(unsigned long size, gfp_t gfp_mask) __alloc_size(1); > extern void *vmalloc_32(unsigned long size) __alloc_size(1); > extern void *vmalloc_32_user(unsigned long size) __alloc_size(1); > extern void *__vmalloc(unsigned long size, gfp_t gfp_mask) __alloc_size(1); > diff --git a/kernel/module/main.c b/kernel/module/main.c > index d3be89de70..9eaa89e84c 100644 > --- a/kernel/module/main.c > +++ b/kernel/module/main.c > @@ -1607,9 +1607,7 @@ static void dynamic_debug_remove(struct module *mod, struct _ddebug_info *dyndbg > > void * __weak module_alloc(unsigned long size) > { > - return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END, > - GFP_KERNEL, PAGE_KERNEL_EXEC, VM_FLUSH_RESET_PERMS, > - NUMA_NO_NODE, __builtin_return_address(0)); > + return vmalloc_exec(size, GFP_KERNEL); > } > > bool __weak module_init_section(const char *name) > diff --git a/mm/nommu.c b/mm/nommu.c > index 57ba243c6a..8d9ab19e39 100644 > --- a/mm/nommu.c > +++ b/mm/nommu.c > @@ -280,6 +280,24 @@ void *vzalloc_node(unsigned long size, int node) > } > EXPORT_SYMBOL(vzalloc_node); > > +/** > + * vmalloc_exec - allocate virtually contiguous, executable memory > + * @size: allocation size > + * > + * Kernel-internal function to allocate enough pages to cover @size > + * the page level allocator and map them into contiguous and > + * executable kernel virtual space. > + * > + * For tight control over page level allocator and protection flags > + * use __vmalloc() instead. > + */ > + > +void *vmalloc_exec(unsigned long size, gfp_t gfp_mask) > +{ > + return __vmalloc(size, gfp_mask); > +} > +EXPORT_SYMBOL_GPL(vmalloc_exec); > + > /** > * vmalloc_32 - allocate virtually contiguous memory (32bit addressable) > * @size: allocation size > diff --git a/mm/vmalloc.c b/mm/vmalloc.c > index 31ff782d36..2ebb9ea7f0 100644 > --- a/mm/vmalloc.c > +++ b/mm/vmalloc.c > @@ -3401,6 +3401,27 @@ void *vzalloc_node(unsigned long size, int node) > } > EXPORT_SYMBOL(vzalloc_node); > > +/** > + * vmalloc_exec - allocate virtually contiguous, executable memory > + * @size: allocation size > + * > + * Kernel-internal function to allocate enough pages to cover @size > + * the page level allocator and map them into contiguous and > + * executable kernel virtual space. > + * > + * For tight control over page level allocator and protection flags > + * use __vmalloc() instead. > + * > + * Return: pointer to the allocated memory or %NULL on error > + */ > +void *vmalloc_exec(unsigned long size, gfp_t gfp_mask) > +{ > + return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END, > + gfp_mask, PAGE_KERNEL_EXEC, VM_FLUSH_RESET_PERMS, > + NUMA_NO_NODE, __builtin_return_address(0)); > +} > +EXPORT_SYMBOL_GPL(vmalloc_exec); > + > #if defined(CONFIG_64BIT) && defined(CONFIG_ZONE_DMA32) > #define GFP_VMALLOC32 (GFP_DMA32 | GFP_KERNEL) > #elif defined(CONFIG_64BIT) && defined(CONFIG_ZONE_DMA) > -- > 2.40.1 > Otherwise lgtm, feel free to add: Acked-by: Lorenzo Stoakes