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 C0F22C4332F for ; Fri, 9 Dec 2022 13:51:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 472FF8E0003; Fri, 9 Dec 2022 08:51:49 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4223E8E0001; Fri, 9 Dec 2022 08:51:49 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2EA3D8E0003; Fri, 9 Dec 2022 08:51:49 -0500 (EST) 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 1CF6B8E0001 for ; Fri, 9 Dec 2022 08:51:49 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id D0DB98032F for ; Fri, 9 Dec 2022 13:51:48 +0000 (UTC) X-FDA: 80222905896.27.19C94D8 Received: from mail-oa1-f42.google.com (mail-oa1-f42.google.com [209.85.160.42]) by imf29.hostedemail.com (Postfix) with ESMTP id 30A7F120008 for ; Fri, 9 Dec 2022 13:51:45 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=O72D1IKR; spf=pass (imf29.hostedemail.com: domain of xandermoerkerken@gmail.com designates 209.85.160.42 as permitted sender) smtp.mailfrom=xandermoerkerken@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=1670593906; 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=/uSxCv4WF0QaHKgDSogZbErR2Lw6zQ7VMbcq35VL21s=; b=yaZNkZpdLSQlMtDRcnh3dsoooxEGc+t4y7ylWMnei/8xyGtefYgQDrlqqvNIS90SjqLST2 FcHgV7Mz90j4u7pdnM0L1bIo+LIwpUHajgUWL2OXuSyPUWsoR27D9iOU0s0nZlZlrVScUa Nm75hjyBoimqnyceM9jVznfsnAbi7PE= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=O72D1IKR; spf=pass (imf29.hostedemail.com: domain of xandermoerkerken@gmail.com designates 209.85.160.42 as permitted sender) smtp.mailfrom=xandermoerkerken@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1670593906; a=rsa-sha256; cv=none; b=Mq8HJaX9X+uWNTT/u2ETZSHwFm2uzwFzcsbNXBALnC8H9cTyldhh7Ky9IotFpSiwaih3t+ aWUTClUtG6lFUjajTz1nUk7jjy0efuuQTeT4t6X/vaRCvbOmqdG8suAo1qsCG2CgPRMpTV 3Qb8LPGQ/1dqzUxUwm4pfgLriR6UpUo= Received: by mail-oa1-f42.google.com with SMTP id 586e51a60fabf-142b72a728fso5687098fac.9 for ; Fri, 09 Dec 2022 05:51:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; 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=/uSxCv4WF0QaHKgDSogZbErR2Lw6zQ7VMbcq35VL21s=; b=O72D1IKRQjG8i26wTTOnP3gkT0ETa3ClYQiNOxsNMogeoc/uP3ZMpi4uiTpsu24hES 4X9j4TgiB1wuiE3gNtJ30vLLostu3eKBuOGb66PE1xkabaWokM0J8cOF+v+qBxoEpgo8 tUVoB3/Qaj6+VgMAP7oI9xl5516MHSvxjx5Kj1AymRFRN8P7Ce9kStmE9T6mlzKEI/6s 4BzlGtE61cYTVz1i6RoKYSBQAGsfIvyu3t/+aOx421RmQ2ljc1n/IPHIYVPakoz6otO0 V4oQRhEWxAA90TkbY44ztxpo98I2FY1VRA7xtf3HbXFobw9rRTX8GXlXQX0B/9JXDgf0 a91Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=/uSxCv4WF0QaHKgDSogZbErR2Lw6zQ7VMbcq35VL21s=; b=uFZ5Qc4wAR1+OIv8ZbTbAbngoJQMt0SvAe/BTwCWnWTt34IQe5RIHw3k5PUirH/Yit vGckOPqtRJHZU22lmOSU7uXh+sDFoZ4VNzRS6ZHl5Q31Q2iToqUNfLijwJc5zJpOBVR8 2VDsGwH4RQY8iUYfFSfe9ozRNbpNcSawthATCciuAeEeKhAoqgjB4lbof2k401PPUrI8 90Qi60ENyxpif0WCjji1VN2Yb/FqrFjOnWK2UbwE8KdJKaQkYTT1XGb2xmJ2ot39VvMW JvUeM+vnamdpNPs912fg2Ph/9m6d9IPiGltS2/mEaBpdiAkXHTEdHNi/acyDl+Wk2ZaC 5sRA== X-Gm-Message-State: ANoB5pkRs64GHorSozfho0Lx/tFzfVxIMRkL+Lam2dtGJnM2/Gq7H0bS cqD0cWjlGUUavxqzp0eOpytOcPmHF/a44fALqsAsALmroms= X-Google-Smtp-Source: AA0mqf4FkPB/DMRGov6c2W44wjH5B4USukcrgs+vn292N7Bh6s0GsCLQ0ago9NLAJ3WVaDvLTTEUJgbi0Njynv50/GQ= X-Received: by 2002:a05:6870:f592:b0:144:543:c801 with SMTP id eh18-20020a056870f59200b001440543c801mr20734854oab.201.1670593905207; Fri, 09 Dec 2022 05:51:45 -0800 (PST) MIME-Version: 1.0 References: <20221209131052.64235-1-xander.moerkerken@omron.com> In-Reply-To: From: Xander Date: Fri, 9 Dec 2022 14:51:19 +0100 Message-ID: Subject: Re: [PATCH] Added ability to vmalloc executable memory To: Christophe Leroy Cc: Mark Rutland , "akpm@linux-foundation.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Xander Moerkerken Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 30A7F120008 X-Rspam-User: X-Stat-Signature: fppfuczg5z8zh1akzswrs1iz8zsqx7rx X-HE-Tag: 1670593905-952233 X-HE-Meta: U2FsdGVkX19LC/Doh+T8Tvumkt0HaF6ueIr6j0lRW5wB7uO02a2Yt4nK0O31TWo4trlttompWax/43omgiQzko/eXDQ8J3meXaEl+xXOcezmw6K6j0lMhfeJ23/rn2WIf+9KdTKvNn4fcBTs3eg5ETeM2xePydOZHoQoqJ4upszK0V39QSa7sKvYF5kw3zmZT9xjvmPTv1UX+MOwUp46jxzr3E18dMBJwmNrd1w1gXtw+zDLrh1HECd0FVZIIGTSQGeccxtqRHWPtIzBIqFYbvgbJZy1TVH407UNcJeSlGARzIiXzt2KigNTLhtkXtc0kJ5IgW9jE60F7wMdKCxF2oIK+ZbCoY1pOhpp8apsb/cvh8a8rTSLISP3dK7uN4om66p87yqfcMYoPR8yAdOqxRZJPANf62BuygLtLJUgTEf9FVxweLldETnBaUJ+hm1V0KSf+v4iPjRkU4wrKATmlYjCgxfuAtbPVPdZN1GWYDv7f6f+6hi5+kqSAfDVefE02sqJZRCkEiWfDBO99WVBDH8hb0Pj2eoPHHMZpdGtZnsRFmwLz3atfo84aox+B4rkp+znMWTnszcflG0dDob9OFk+2H3iuxKrwWgkBdbxdJ/WnhQsgmE5B/dN9Ppi0dvhzBNkd7IPzosRjQowBw61bNSCjYT/5N01rhSNsosTSvZ7Di3InJcYkD77DWArTzaJ8IFed8J1GtmNpQ7tTQ0nCvX6exIoBQlI1KFr793cZY4vmn7gDCvjzpWRsY7JMvaNa9M5aYrdroPG8hQdjOvhhlldPYJpQpxeOsJYbSvU6xBWzwIYt9vBCRU/PjonxAPnRenGX5ucLTLRlTwU0clQ8gwsExHBzJFIex8Zb1ThE8XgZBhGSA8S0NBNWZf30WCebiVxDLh5otbTDjN8kDM5jGTrEUSevJYiOgYkbUpe22pkOPhpYJR9dlqEPDpVab9xvx30AmEqlubfdY9JQhM dEqfpX9I wbf1J8wwF1X35jkvHpjZSnLjh9Oj8trLeWJoFRL6aiiR7aHmll22g8XS/mwHW3MN9+n11RGq46uoUCo7RuX55XyP2EQ== 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, 9 Dec 2022 at 14:46, Christophe Leroy wrote: > > > > Le 09/12/2022 =C3=A0 14:38, Xander a =C3=A9crit : > > > > The pgprot parameter got removed because, according to the commit log, > > for no other apparent reason than it being called with 'PAGE_KERNEL' as > > an argument in the whole kernel. Therefore it got removed. > > This removed the ability to allocate virtual memory with executing righ= ts. > > My use case comes from ioremap(). > > I think this is useful for others too. > > > > I don't see why this pgprot parameter got removed but this is the > > alternative to reverting it to the older 5.7 function. > > Please avoid top-posting, and use only plain text. > > I think you don't answer to Mark's question. > > You are adding a new function that no driver uses apparently. If you are > working on some piece of code that needs this new fonction, you can send > this patch as part of a patch series including that code. > > By the way, when you need executable memory, the fonction to use is > module_alloc(), that's the only function that garanties real executable > memory on all platforms. For instance, on some powerpc, setting the X > bit is not enough to get executable memory in vmalloc space. > > Christophe > Loud and clear, thanks for the feedback. > > > > On Fri, 9 Dec 2022 at 14:17, Mark Rutland > > wrote: > > > > On Fri, Dec 09, 2022 at 02:10:52PM +0100, Xander Moerkerken wrote: > > > From: Xander Moerkerken > > > > > > > > Since release 5.8-rc1 the pgprot got removed from __vmalloc > > > because the only usage was PAGE_KERNEL as argument. > > > However, this removes the ability to input other arguments > > > such as 'PAGE_KERNEL_EXEC', which can be used to allocate > > > memory in which you can execute. For this reason a new > > > function is introduced called '__vmalloc_exec'. > > > > > > Signed-off-by: Xander Moerkerken > > > > > > What is this going to be used for? There's no user from this patch > > alone, as a > > module or otherwise. > > > > Mark. > > > > > --- > > > include/linux/vmalloc.h | 1 + > > > mm/vmalloc.c | 8 ++++++++ > > > 2 files changed, 9 insertions(+) > > > > > > diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h > > > index 096d48aa3437..10c46513b6b2 100644 > > > --- a/include/linux/vmalloc.h > > > +++ b/include/linux/vmalloc.h > > > @@ -147,6 +147,7 @@ extern void *vzalloc_node(unsigned long size= , > > int node) __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); > > > +extern void *__vmalloc_exec(unsigned long size, gfp_t gfp_mask) > > __alloc_size(1); > > > extern void *__vmalloc_node_range(unsigned long size, unsigned > > long align, > > > unsigned long start, unsigned long end, > > gfp_t gfp_mask, > > > pgprot_t prot, unsigned long vm_flags, int > > node, > > > diff --git a/mm/vmalloc.c b/mm/vmalloc.c > > > index ccaa461998f3..8fd01ed7082b 100644 > > > --- a/mm/vmalloc.c > > > +++ b/mm/vmalloc.c > > > @@ -3294,6 +3294,14 @@ void *__vmalloc(unsigned long size, gfp_t > > gfp_mask) > > > } > > > EXPORT_SYMBOL(__vmalloc); > > > > > > + > > > +void *__vmalloc_exec(unsigned long size, gfp_t gfp_mask) > > > +{ > > > + return __vmalloc_node_prot(size, 1, gfp_mask, PAGE_KERNEL_= EXEC, > > > + NUMA_NO_NODE, > > __builtin_return_address(0)); > > > +} > > > +EXPORT_SYMBOL(__vmalloc_exec); > > > + > > > /** > > > * vmalloc - allocate virtually contiguous memory > > > * @size: allocation size > > > -- > > > 2.37.2 > > > > >