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 C6143EB64D9 for ; Mon, 19 Jun 2023 20:18:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F08738D0002; Mon, 19 Jun 2023 16:18:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EB89C8D0001; Mon, 19 Jun 2023 16:18:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D80268D0002; Mon, 19 Jun 2023 16:18:32 -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 CA4788D0001 for ; Mon, 19 Jun 2023 16:18:32 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 98672140318 for ; Mon, 19 Jun 2023 20:18:32 +0000 (UTC) X-FDA: 80920610064.12.B3A5745 Received: from mail-pg1-f178.google.com (mail-pg1-f178.google.com [209.85.215.178]) by imf30.hostedemail.com (Postfix) with ESMTP id A33B580005 for ; Mon, 19 Jun 2023 20:18:30 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=ML1POuSF; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf30.hostedemail.com: domain of nadav.amit@gmail.com designates 209.85.215.178 as permitted sender) smtp.mailfrom=nadav.amit@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1687205910; 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=UmEEut0OCJI0jheFei8v4KFIgPFEx+9Zr0oYZPTVJvw=; b=7K++qD/5Vy3iH/XhL14NKNZnlffC5WDsSDg7FJC266YaXODsxGnmpz+Y2045Q3qzexIOEW 3ssCUTY60LsNXSXyP1OUJjuZfbQUQZOf7BBVi0mbkI/oOI3B4C7VD+aOmQGl7dhDqgnwep vL44+Tss9A74FHhaEZV9ncHBPOaVh10= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=ML1POuSF; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf30.hostedemail.com: domain of nadav.amit@gmail.com designates 209.85.215.178 as permitted sender) smtp.mailfrom=nadav.amit@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687205910; a=rsa-sha256; cv=none; b=uo6+J90LJ+qE9hc7s97/Ex/1DBpt6tnOf/psN7+Qcnk4pAaDHxwNcgRqxB43+F5yUM9rcm vSUcDXTxoxc6Lop+3SZHKDhkWKish7aet+z4ftMkzF8eXCKKOAda56fEokvqRSVQlyGfnI YSGyd9uHHbitwRc8oHA4L3vBdnk+3/g= Received: by mail-pg1-f178.google.com with SMTP id 41be03b00d2f7-53fbf2c42bfso3185178a12.3 for ; Mon, 19 Jun 2023 13:18:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687205909; x=1689797909; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=UmEEut0OCJI0jheFei8v4KFIgPFEx+9Zr0oYZPTVJvw=; b=ML1POuSF5TNYpNiqkU7Wmm/FZLBDFoP32DY+WPylpmv43DoaA/AoXnTGG2wwzhld3j kjkKToRZCKl1S0ycKV+IUNrHAQ8Dvck3h+D7ZuCxy/PFvkOP44vPViwvWsYYl0BBuNgy b/5HPeUCxmK/jPGro6a0V6gtwlQJxSWG+MjbaRDV7mR48t508gCxLWi7cw8WSlTAdLEO 3p+win9LgLE5lOsK+rw7eJ7na0iRAHUh7i2pWPNrn0k/YllS2kfgOgB31VmT4hCseChr k2Wm+WLNvD9nhPcsjkRc0OVcXyGOSUiyWGCOpqitL1ReK2kli6NusXAAxFAtCrHDui7k NzgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687205909; x=1689797909; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UmEEut0OCJI0jheFei8v4KFIgPFEx+9Zr0oYZPTVJvw=; b=B04sDrzeLV1wVYGBrWHS4ewQb37P1A2Q55BGAlr6Hu9mwR7YM9mwpkzA0ZjItCH3qX 41EDJZPO1lZMsQ7yBbae37hxM9CGyB9R7iksk6kRnPG6Fvi77LR2RaSm6dRc0ujeGaUK D9YyVAFRakJzGmJgR7IylZi1sHfsqtq+bikjqcmSUXn/B9u/U2jZZEemX4uc5VTwn3Gl Z9OPBKrJlmUAyFsV14RG9r/nekg8p/IV8Ft1O05vJlfDlnulMApyu4gH952mV18v5hFh fotVqqC83XzVnU51OmIEF5H9pD2daKhE9Ublg3la83QqReNkKTX0NnyNe5cB0zGAiiZu vo2Q== X-Gm-Message-State: AC+VfDxDPZtSQY7ATAE7eCdrqvh73FLIyz04htCYMFsyGRu0v83mtz5A U4wDuIYVjsmzUwjXeWSgC3XnlgZk7o/raA== X-Google-Smtp-Source: ACHHUZ4MAGz/Bbdlo+4DcmVI4O990mBmojRaVLNYuDWhcs7i7MC/1uf1G62Dkn3iaVvHJNN3c8J+8g== X-Received: by 2002:a05:6a21:78a9:b0:10a:cb95:5aa3 with SMTP id bf41-20020a056a2178a900b0010acb955aa3mr14231287pzc.7.1687205909086; Mon, 19 Jun 2023 13:18:29 -0700 (PDT) Received: from smtpclient.apple ([66.170.99.1]) by smtp.gmail.com with ESMTPSA id k18-20020a637b52000000b005538bf7e3d6sm87568pgn.88.2023.06.19.13.18.26 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Jun 2023 13:18:28 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.600.7\)) Subject: Re: [PATCH v2 02/12] mm: introduce execmem_text_alloc() and jit_text_alloc() From: Nadav Amit In-Reply-To: Date: Mon, 19 Jun 2023 13:18:15 -0700 Cc: Mike Rapoport , Mark Rutland , Kees Cook , Linux Kernel Mailing List , Andrew Morton , Catalin Marinas , Christophe Leroy , "David S. Miller" , Dinh Nguyen , Heiko Carstens , Helge Deller , Huacai Chen , Kent Overstreet , Luis Chamberlain , Michael Ellerman , "Naveen N. Rao" , Palmer Dabbelt , Puranjay Mohan , Rick P Edgecombe , "Russell King (Oracle)" , Steven Rostedt , Thomas Bogendoerfer , Thomas Gleixner , Will Deacon , bpf , linux-arm-kernel@lists.infradead.org, linux-mips@vger.kernel.org, linux-mm , linux-modules@vger.kernel.org, linux-parisc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-s390 , linux-trace-kernel@vger.kernel.org, linuxppc-dev , loongarch@lists.linux.dev, netdev@vger.kernel.org, sparclinux@vger.kernel.org, the arch/x86 maintainers Content-Transfer-Encoding: quoted-printable Message-Id: <7F566E60-C371-449B-992B-0C435AD6016B@gmail.com> References: <20230616085038.4121892-1-rppt@kernel.org> <20230616085038.4121892-3-rppt@kernel.org> <20230618080027.GA52412@kernel.org> To: Andy Lutomirski , Song Liu X-Mailer: Apple Mail (2.3731.600.7) X-Rspam-User: X-Stat-Signature: 5zqhaz38m8oauyaieh4mda9rwrteyspq X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: A33B580005 X-HE-Tag: 1687205910-434910 X-HE-Meta: U2FsdGVkX1+4M8c8wZjrNsAzke8fUy+yFBy8GraDMQNGFpiiTvOMlfkQdN1ZUBjKzgVUuEBrB7qgSBN1BWSgOFs0zGBoebJqjBe0FpydQhaEnLo6WpesupdYGOpKyKMKsqZcZrolPUGGvRMi1vQvYKXFYT7zUzRx8/S4JeLImD00lWYcICTMyLrjtGrmixfqmFWTxaCWtu7DjaYNKCK7HjQjcGh+eXR/XN92isM4sPDUVtCVCVW3ZRD1lw0ot8K8Y1yv0sJh+BOvXcBGe+aZtFLT34trdEnWuVmfASD+Qm5y4YceUaAEI6VPC47qE78UfRP7DJIoku9c8K/JetS0qz+kwcOmNz2JUcQQJwRvCNE4gfbxoDkw7jyrb2Z40ihBTAcqeKAQ4pFfnliogS/s9Hw6A2cwBK2ZtDVXZu/pQTiqR6vbS16aqMG3TwRe5nhO/umPjzrWuSIY9cTj6ho9Z2sjRBlRbN4a8A7kXmuU2tpSij1VR3cSA1uppcB5n5/ZGjqZL3q5DKvMYjhhD7nUyraBh73U39Y9buxD5ssE1yslarSWShoZKeStfr6s/WF6D04BB+4UwS+WyyA02f9CJkZ0U0me3Ja6y1FuYhrwcKL/meQrTcv6s6PtsJG44kU3PSMbgIF8t73/MqfwPnF1XddwVXM8Df0x5a6j3kIrLGQVoUQrHvue0xJ+2725YeiuB0ikqgpSG05MDEsnNvHJ1QNS9oLhaYiXTZYzKr8bzJ3yb7To6pb8ZSJVRMPP/x//h01CP28sUUKrtu5jjIh5zhqVSNMwKCMsjrR685ceg8t+GP/AAdZA6C8VJMsKN5vW0e9HKe2pfGr65W6MgqZYa6wSf7SuAvRJShxorM6xpPEAgOyNvlHsYqCgoFYRlM75p3RpUZ+oI1tuJ+1R9NA1/qTfx+7J9lGqaMlEvdQ0PBtrNN8X8mGNNa2gxu4CK8rwOjGf4hBDHFrfZyG+L/M wNq/19oO CRriNWYJZL9k7CVP1bwT5GAIb9Y9no9ud4rXMdkQGEJfGiRQXSoNLMX73dhSbzRBOUAyqZWDp7EOQcOXXmgOQDJzhBLpnizIglvNa2L+/Tz/kFLNuZFF9YK6ZJZBdughliO+HQvp4dD1b89ReY9slCE0SSJEJIrf11NBxwXbSaFRE2Zm+wX1LWturtTm1VlawA+ObpOZMRErxCWF2gGtZmyuKp3NmRFe5NGx8uubQDP289QD+LrGsolURqNSs9OjNdhkSc0NfxakJkYqEvuvgNoHEbqjSLRunLniWb/C0t7JYpDxQgSUPleZra2ELs/WjOM3JUSRY5nEyrtbfEM4RqahcFjAvnZmDtG5M+axk/r/u4aB0BDjWtgL45IUcHFz/2qg/tR6a37TPKG3vcacei1e3YXlni5D+Hgd1gJitDBsL3j/9HFS++eZxkCYrR7pYlvFJOHh+9ie1h2UVymGzhc+g4enK5HsA8DOHNmMFb64uzeS/wSrFkOgQnd8oewX1qT+8+Fr9buyquGwGZlBHQJBNWa6LuqyD2mxJ2zDjh5inf95xLgEGJJA2zG208swPSDOI9GmWc7fO2tn4oNXSuKJLgA== 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 Jun 19, 2023, at 10:09 AM, Andy Lutomirski wrote: >=20 > But jit_text_alloc() can't do this, because the order of operations = doesn't match. With jit_text_alloc(), the executable mapping shows up = before the text is populated, so there is no atomic change from = not-there to populated-and-executable. Which means that there is an = opportunity for CPUs, speculatively or otherwise, to start filling = various caches with intermediate states of the text, which means that = various architectures (even x86!) may need serialization. >=20 > For eBPF- and module- like use cases, where JITting/code gen is quite = coarse-grained, perhaps something vaguely like: >=20 > jit_text_alloc() -> returns a handle and an executable virtual = address, but does *not* map it there > jit_text_write() -> write to that handle > jit_text_map() -> map it and synchronize if needed (no sync needed on = x86, I think) Andy, would you mind explaining why you think a sync is not needed? I = mean I have a =E2=80=9Cfeeling=E2=80=9D that perhaps TSO can guarantee = something based on the order of write and page-table update. Is that the = argument? On this regard, one thing that I clearly do not understand is why = *today* it is ok for users of bpf_arch_text_copy() not to call = text_poke_sync(). Am I missing something?