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 32DEBEB64DC for ; Tue, 20 Jun 2023 22:43:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9FB578D0002; Tue, 20 Jun 2023 18:43:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9AA888D0001; Tue, 20 Jun 2023 18:43:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 84B0A8D0002; Tue, 20 Jun 2023 18:43:18 -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 719C88D0001 for ; Tue, 20 Jun 2023 18:43:18 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 3C787C0205 for ; Tue, 20 Jun 2023 22:43:18 +0000 (UTC) X-FDA: 80924603676.19.CA26483 Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.179]) by imf07.hostedemail.com (Postfix) with ESMTP id 523DB40005 for ; Tue, 20 Jun 2023 22:43:16 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=pU1baukB; spf=pass (imf07.hostedemail.com: domain of nadav.amit@gmail.com designates 209.85.215.179 as permitted sender) smtp.mailfrom=nadav.amit@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=1687300996; 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=eaYNclQnysW8nQnar7C7SNLx+8CEj4DfdAfuicOOpRI=; b=6yg1lZOTzgrD4x1Ou9KUIeK+f5fsOwF/6SeZfM4x4DY7e8/C7I7dpfss7NngpHVZ5HTclb IqSQYX4cystVMNAiand2BmSYMcCvODdVWjFJFeCOidAxiB23BDFLVPZGcwDbDqnVY36mAs Mh3MBG+MNmERhCpe2rUPYSVJtQSMHPc= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687300996; a=rsa-sha256; cv=none; b=DnH0z2OsH3MFpTKsYUgrZ4tYAg1TzKr+cktVXrG/+cBQQ898canztjroSdz2RbhmljEqHV vBC7pDWZe1tCukVyVOWMUCPlMvGF4+XNeOqw9v8VG6mAYxHCbxUEZ/YjZmjI5SR4bBhnR+ ljPuquUKScBCwtZNs5smIHU6v+maNTQ= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=pU1baukB; spf=pass (imf07.hostedemail.com: domain of nadav.amit@gmail.com designates 209.85.215.179 as permitted sender) smtp.mailfrom=nadav.amit@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pg1-f179.google.com with SMTP id 41be03b00d2f7-54f73f09765so2567459a12.1 for ; Tue, 20 Jun 2023 15:43:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687300995; x=1689892995; 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=eaYNclQnysW8nQnar7C7SNLx+8CEj4DfdAfuicOOpRI=; b=pU1baukBRjTQQYBYuAPLDBi9RVpOsHukczl2Ko8po1D4gQBMI0/cOfoaiNwcnEpfWh bDbuAjk0QZ2Vk76QXFAoH5Tk3W4uLsT9ofwXrbUXeUyStOdqNLgEXtQ5GV/UNz4dxwjk YJjsnZa+UdaznDag0Q8AmQDqOlv+fzYe3M47LPBmBUaNiItAyJLrbbJ47gGJxFMjzMNJ wCzeKf+/KIlPTVos5YnwVnjNAjwdR60eeKUjL5dOr59EJ80yvJF/yECtOlFCJyahyyuc DDHLe8WOkzJshBC6Ci8bo9LR0vrRAfdTDJNEGxuehRtDew27gSVsIyD5Svu+Gy2Cgk9z 5Szg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687300995; x=1689892995; 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=eaYNclQnysW8nQnar7C7SNLx+8CEj4DfdAfuicOOpRI=; b=FTn8IGaKy8205sv7EPg68CoJXIgjCQFwwa+wG5d3bwiIc67OtDPu/cr9WSR7730WLQ 7aRdvlRfglDKvRVA74npUDMrmptBJVH3au/3Zb5MTkfDFMYKrj/Frk5a7NsJCOkXksv0 fanq44rZE+YAsd54GhzrN2vtlaXlzzWdpXA0Wk1aguR3Ob7LBPjiMsg14aqIhC8Z9LYQ 916eAs4mEkDp1WQ1BaA//s04ww5CodJd8EXlSeUWxJupFNc6baiUxLh9Opd0doQgRkYI 5bpFhMpJRq8gSkGPRnpLR+7Ea9m/yLFKINTnk6OMX/OGDc6g9bDs7iZnsXJ0d9qEx/cm oSiQ== X-Gm-Message-State: AC+VfDyDfgXnTl/t9DsROVaQC/gqFgjT7iHs+vnn15IAMt0EycTSlwyA dqe/plKn0lW4Rj2xePEEIB8= X-Google-Smtp-Source: ACHHUZ6PT3wFSpXI54qDT4ka+RjCbfE7gmAYYq8N9vr80n2sSwbgap4WDNDBvflyXbo3TigjY3kbiQ== X-Received: by 2002:a17:90a:d90b:b0:256:dbfb:9b5e with SMTP id c11-20020a17090ad90b00b00256dbfb9b5emr8004910pjv.29.1687300994854; Tue, 20 Jun 2023 15:43:14 -0700 (PDT) Received: from smtpclient.apple ([66.170.99.1]) by smtp.gmail.com with ESMTPSA id il8-20020a17090b164800b0025b83c6227asm1956348pjb.3.2023.06.20.15.43.13 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Jun 2023 15:43:14 -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 07/32] mm: Bring back vmalloc_exec From: Nadav Amit In-Reply-To: Date: Tue, 20 Jun 2023 15:43:02 -0700 Cc: Dave Hansen , Kent Overstreet , Mark Rutland , Linux Kernel Mailing List , linux-fsdevel@vger.kernel.org, "linux-bcachefs@vger.kernel.org" , Kent Overstreet , Andrew Morton , Uladzislau Rezki , "hch@infradead.org" , linux-mm , Kees Cook , the arch/x86 maintainers Content-Transfer-Encoding: quoted-printable Message-Id: References: <20230509165657.1735798-1-kent.overstreet@linux.dev> <20230509165657.1735798-8-kent.overstreet@linux.dev> <20230619104717.3jvy77y3quou46u3@moria.home.lan> <20230619191740.2qmlza3inwycljih@moria.home.lan> <5ef2246b-9fe5-4206-acf0-0ce1f4469e6c@app.fastmail.com> <20230620180839.oodfav5cz234pph7@moria.home.lan> <37d2378e-72de-e474-5e25-656b691384ba@intel.com> To: Andy Lutomirski X-Mailer: Apple Mail (2.3731.600.7) X-Rspamd-Queue-Id: 523DB40005 X-Rspam-User: X-Stat-Signature: h5ntnaon8ekfg43b8acwixrtsbgzdjx6 X-Rspamd-Server: rspam03 X-HE-Tag: 1687300996-118795 X-HE-Meta: U2FsdGVkX1/ODWDGDcZxpqySqhDXZzTaiA+dmwvJDJSnOP2tp8Jdb5Ycl6Ali6dT0odl/FZ3hWz/AG6Py92+7KqFgXCZXJE5vn3hJ1USje7ssJIod8jcQhu2jgWYz0Qt1qHQRvzBbWm3mfvkaUYdmvxW2ZYE+GRzzwjRuDKDvzZKtFeFNR2bonD59GHpksFTVbANFvXlMCccfuVQhzlx0ku4wd7ilvXcyB74JhyroZyNv43GKtCqLLBdtDaEhycRs5Q+HG1EMBGarX1kN4xzDFmwpkWoqdwrSBqE6K4NNyYK+70/o8S2vnZYacAbBnMWR4O/yoeLACZgii8IPcVlpN+fwqXC2dCs+4jyqfzc4ldzlioe8fsFDLfYB/7mo3mi7Hj5FeGT1LwWpru7CSnDk9pJxRcskquO3nSqLrkUnqMbI+OaWPNKFDhRuqUDaam5tX7RACGj4bMdJw/ARdeDtKeGC6IximjvHyaCmxXVU8IdB41QO3upZ7CrhTKYMNnggVhcbZKRgxPoAusCRKcruW9gXeUhKYoicLsJyn36JbE1c7fIk9g4c36MqLSNmkxPdCauGZ7P2F346t2hJuYS8z2UdyZiLyzw0E5wGGn37o7NCPSD5Ur4D+4eVPe2oFMnTqeXPu026O1Gb3ck/YjGVoz1/ZyLgFOVz3NqMPu6gb1kiI/TLKcwqSWG/pBA/9cU64pCs/ogD5a1K7BKhT0c0HNiKFwNn/baj8vln3zYy0MqjOYHLw/h692jOhQICAmgOolEP8SQk8Bw8VtFdh8RR8Pjictos7hN1JJxl7OeczAKKT5KxSnK9oT6FawVqcUIWIqJNf92GB72vEMr8nYJsa0MUU9LE5cl8AgmQjiDMcYGKoRIfEsO+pvAPFf5UVcyIxHAv0FhIaoJHr/AvbC4Y4jhPF2DzkquvlyTpM/UQQv2huofWKXpK0ODMbQ2/Oh41c9vWu16o5+BnERUruj NMwRluAP Pdp/zuwzgGBSC1ZzxtXxacGd9PL4r7TO13Uz9T0jZy+/q9TLzRH34NrU6lkjijRZFc6xkc5dgirKprQdcXTU3IBSE5Va+XV0BKMtiNkx0mmeEVXZwYb6JXbIUpnvoWDugb97Mp0sQRa7DkV9hwkD0eHS/UiucCKRKIsn/Osh/H3lWGoV1ga7dnvdD0T+qTdZKwuPgEBWuUPrPgdE/mpIbsD7m5n4Ya9dFIB6ac7dCTbJtZE0xJ2rOjKkvVr8Oqlijvz0Jk20NowHkDSI4lilzJILt1aHdBxYMd1wjWEcF0LTX8uXlLrPtQBzNSgG7X9UiUXEzQjFVjJ7NItNAHCaK2OXxfQV0vnZfMMycGCQEIxRxQcuKO6t/55dzhYAnYbWhrEkjldajPFdCO65+muJav199Xkh+PNVZlR1x+EIOgdznmF08/fhh8AQt2SRY8+6C5hXMw/IiQ+B8KDqHqDB2B8tJObhyh+ScjJOXzVW3clMC264MeJZ6+WiYFGDr8GGSR37MOd4OR/zAPNI4GGIopZvnWB8lPdOru45VX70k3X4ONuJfNX4cA1gpkIuWxmtWGk2Yc7yDqH+1SjRszKLvY7JwxA7jN45b234MX8qb0yHUgOW1k9yZEnZuDzL+kS6ETRufyndOA4R1whoz5xEF14wyK2vj6PC/Dm5BwBdKCoqYkr5TvFLZjh+SahpOxqPy3UloolrJMYHyG9bfaFJa6ifSmvZlza1Txv53iCQa+u43tbeqWAYQTjmrqfUapvUqYdXCCQhbl6W923s= 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 20, 2023, at 3:32 PM, Andy Lutomirski wrote: >=20 >> // out needs to be zeroed first >> void unpack(struct uncompressed *out, const u64 *in, const struct=20 >> bitblock *blocks, int nblocks) >> { >> u64 *out_as_words =3D (u64*)out; >> for (int i =3D 0; i < nblocks; i++) { >> const struct bitblock *b; >> out_as_words[b->target] |=3D (in[b->source] & b->mask) <<=20 >> b->shift; >> } >> } >>=20 >> void apply_offsets(struct uncompressed *out, const struct = uncompressed *offsets) >> { >> out->a +=3D offsets->a; >> out->b +=3D offsets->b; >> out->c +=3D offsets->c; >> out->d +=3D offsets->d; >> out->e +=3D offsets->e; >> out->f +=3D offsets->f; >> } >>=20 >> Which generates nice code: https://godbolt.org/z/3fEq37hf5 >=20 > Thinking about this a bit more, I think the only real performance = issue with my code is that it does 12 read-xor-write operations in = memory, which all depend on each other in horrible ways. If you compare the generated code, just notice that you forgot to = initialize b in unpack() in this version. I presume you wanted it to say "b =3D &blocks[i]=E2=80=9D.