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 C0558C4708D for ; Wed, 7 Dec 2022 23:17:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6318E8E0003; Wed, 7 Dec 2022 18:17:24 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5BAC48E0001; Wed, 7 Dec 2022 18:17:24 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 45CFD8E0003; Wed, 7 Dec 2022 18:17:24 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 3770B8E0001 for ; Wed, 7 Dec 2022 18:17:24 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 14C901C50AB for ; Wed, 7 Dec 2022 23:17:24 +0000 (UTC) X-FDA: 80217073608.28.3495ED1 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf19.hostedemail.com (Postfix) with ESMTP id 372F01A0018 for ; Wed, 7 Dec 2022 23:17:19 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=td0iS5R9; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf19.hostedemail.com: domain of song@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=song@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1670455040; 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=3ApZZx3BWGPLJGpevuAK0YIjgKrECzJJ5pDd+4SuS+U=; b=FaWmmnpJF4Okk8t8et7vVz1JQ5/PYuujzpcKRm6fy7zeQ8z2YFjd8glix0qm3COJvaF2gq 6muhalGt0fvGIILy16t7XosUER5aB+4gmBYAr20uvQcM59xW5xudrWwLpHcyxjY1PkybOu ikIoLkqeXqmTcCGWc3VSl7NCaJmGmns= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=td0iS5R9; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf19.hostedemail.com: domain of song@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=song@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1670455040; a=rsa-sha256; cv=none; b=rjcGLvMc3iNCE5ShpCitrnu3wEHPgJf8RsqxRBgqBj8z9BY91HLiPME1lLgYqLHJrjhznW EwEFb5vZn/9Ufc0FP9J2egnjs6p29OjONg88OYUdCyZCjiX8HEZBjQCVVc9gnzmP7SmBDS jVdme6JFI4dxlSy3EoUknr0fGgqltCA= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 09EDDB82195 for ; Wed, 7 Dec 2022 23:17:18 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8B1ACC43147 for ; Wed, 7 Dec 2022 23:17:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1670455035; bh=I17H0Rv10c7SFfmHzW4ugauS88tg02V0YJpQ9blZJJ4=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=td0iS5R96KeR0silw1ZgdHl2e99z6jPfXfmUrLZvEniXi2zCtX5MNUof/PZ2/kwpg HoWSO3Xvu9iNtVtJJnIeyZ5FcIwNoIuO6KExHFD6MnAse3AVRHyJu+GPeyTmW+KJPc huLSwPkAZMQyT9Wp5y8rkF5P+lxLNHktcwvjs97UVpWAzS5cQyEeCmMj1hWcxYq5Mx HR0g+kN1/MOiDjm/YJyBpmp6DXviEbHKjT4yFOsXxE+qyBoCLlOtBhC/5eLYpo21mp t5k06MgjmMTaBFeYvdYuA3FyCB5Tn7zqXdpjzStmsrRfJbMKc8PkiZZZ/r+bT9URbV nd/TOwQNRtdZQ== Received: by mail-ed1-f51.google.com with SMTP id s5so26978290edc.12 for ; Wed, 07 Dec 2022 15:17:15 -0800 (PST) X-Gm-Message-State: ANoB5pkn0kYjql1qi4PHRcZGdUVjETDJx2HDkmrkveeOtygaHSSUE6rT XO5jMXIMJYmd98+QzQFQ3HBOJJDkZG6+h/GOGaA= X-Google-Smtp-Source: AA0mqf6AvV+Rp9RW4dJ37ynzRUZILOa2gPhawNu2nR8hKHL+QAo0JE3mWzZEbRVBbhj7BhHKEn/yQ76U+t4ovB/Qty8= X-Received: by 2002:a50:ff08:0:b0:461:dbcc:5176 with SMTP id a8-20020a50ff08000000b00461dbcc5176mr71361150edu.53.1670455033618; Wed, 07 Dec 2022 15:17:13 -0800 (PST) MIME-Version: 1.0 References: <87v8mvsd8d.ffs@tglx> <87k03ar3e3.ffs@tglx> <878rjqqhxf.ffs@tglx> <87v8mndy3y.ffs@tglx> <87k033dja7.ffs@tglx> In-Reply-To: <87k033dja7.ffs@tglx> From: Song Liu Date: Wed, 7 Dec 2022 15:17:00 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH bpf-next v2 0/5] execmem_alloc for BPF programs To: Thomas Gleixner Cc: bpf@vger.kernel.org, linux-mm@kvack.org, peterz@infradead.org, akpm@linux-foundation.org, x86@kernel.org, hch@lst.de, rick.p.edgecombe@intel.com, aaron.lu@intel.com, rppt@kernel.org, mcgrof@kernel.org, Dinh Nguyen Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 372F01A0018 X-Stat-Signature: ybgek7p9ir1s4nzq9yuwf9wu5iwr1ze3 X-HE-Tag: 1670455039-262235 X-HE-Meta: U2FsdGVkX19XMVS5YR37fDW9pL7pKQc1VMOWPjjVREndfXfBjFTDhVncl+lCT9XPP5u/p4qTOydjkuBG072UXifzOrH3Q7mBJICxP5K0TfHFTf0kdwnz1tqmSO/MWOrwSJRWX0am1pK0FLtQoRutEj1+fr9sXBEC7UIiSqnby+aOOdr1ohNYMRpTKUakA6BJPGrARnjOCe6IpnT7nLLPC4GIKV1GHB2sKW/eNWU8onSkYzCcA88KPIaUqmtypfrceCmiNlt6drCSpuS3MHxh2ajjdgNpEA/E8oW3KSXo3IxZH7RdC1YPKOMcuJlRI31rbrklENaWyBxVC8nputhFgqDZUo7iC5MslrH/F2H/R7lnhKDKhsfBbTYJl4VtyUU99vZ5c5huLPMWwcWB/jMdf32AXo52B7OLOljUvhG4Y7cBCp3jYVXJpwzYgxiYTczbwWGLDaFcC5o1067BDxnT2/+4uBPKEnRveFrAv/7f3NGvXbTt17e1LUfPKyHM0drQghHhz5tfwvGedt1McQLbelSq0dj9utw42cshpn0RsuSrd/KsNFVZXxyGNDqOYT8tySdJIMXcOPnprl1NpVjp9QiFV4zZCqBDdchv6sa2LaqXRGaCwbPC4bpzay5JvRSl9u17Zy/V41A0znllCmsXiInPo4SB7xW2i68BxWaJT8sVHoACBNd/PWK/zkYzw3ehJyQApScXTi6UpKgNvpPkdjuGjj9ZeHvkzxYsjZ3q3nxPjKzUWQ2ZCkMvooYDWKGUZQiKzVIR9ubllSE/mIZ3DhfwLuThTmWk6a1YlzaS76iPQ+Zzv6mKsrqSKG+vrscJZMZK33RKyik0ObVRaMSnaNWIlhJq7ClcQFlqw09JNFr1JVHp1giet07c9jQs6u6SLrdPJoCy7gDIh08CBv+Lw18HkgwA0Dme1Rs2hHLtOXV6XnFFfk1p/BRZJkjNp1GYTtTv9t1zqio0fDHcgdY gfOKsyxO NYZOZeNR863KQ1htBzr+9Iy4E+esYEHNx3LAVDrVwlCfYewjgu0MeYGWXFLH8XLxWra2ulCCBXG8FatEevCJ42+ekpOIfCqXbcrUi+Uyle8m+dMY= 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 Wed, Dec 7, 2022 at 12:57 PM Thomas Gleixner wrote: > > Song! > > On Wed, Dec 07 2022 at 11:26, Song Liu wrote: > > On Wed, Dec 7, 2022 at 7:36 AM Thomas Gleixner wrote: > >> > I think we can handle all these with a single module_alloc() and a few > >> > module_arch_* functions(). > >> struct mod_alloc_type { > >> unsigned int mapto_type; > >> unsigned int flags; > >> unsigned int granularity; > >> unsigned int alignment; > >> unsigned long start[MOD_MAX_ADDR_SPACES]; > >> unsigned long end[MOD_MAX_ADDR_SPACES]; > >> pgprot_t pgprot; > >> void (*fill)(void *dst, void *src, unsigned int size); > >> void (*invalidate)(void *dst, unsigned int size); > >> }; > > > > Yeah, this is a lot better than arch_ functions. > > Remember the order of things to worry about: #3 :) > > > We probably want two more function pointers here: > > > > int (*protect)(unsigned long addr, int numpages); > > int (*unprotect)(unsigned long addr, int numpages); > > > > These two functions will be NULL for archs that support text_poke; > > while legacy archs use them for set_memory_[ro|x|rw|nx]. Then, I > > think we can get rid of VM_FLUSH_RESET_PERMS. > > Depends. You can implement > > fill() > memcpy(...); > set_memory_ro(); > > and > > invalidate() > set_memory_rw(); > memset(); > > as global helpers which can be used by the architecture for the init > struct or used as default for certain types. Ah, that's right. Legacy archs should always use PAGE_SIZE granularity, so fill() and invalidate() are sufficient. > > > I think I am ready to dive into the code and prepare the first RFC/PATCH. > > Please let me know if there is anything we should discuss/clarify before that. > > I think we covered most of it by now, so sure a POC is probably due, but > please yell when you find a gap in step #1 - #3 which we did not cover > yet. Thanks! Let me see what I can get. Song