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 7FD09C3DA4A for ; Sat, 27 Jul 2024 16:36:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 10C6E6B0089; Sat, 27 Jul 2024 12:36:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 094D36B008A; Sat, 27 Jul 2024 12:36:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E294B6B0093; Sat, 27 Jul 2024 12:36:36 -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 C06B96B0089 for ; Sat, 27 Jul 2024 12:36:36 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 5E7D0120167 for ; Sat, 27 Jul 2024 16:36:36 +0000 (UTC) X-FDA: 82386085992.05.536EB66 Received: from mail-pf1-f178.google.com (mail-pf1-f178.google.com [209.85.210.178]) by imf25.hostedemail.com (Postfix) with ESMTP id 46167A000D for ; Sat, 27 Jul 2024 16:36:34 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=kernel-dk.20230601.gappssmtp.com header.s=20230601 header.b=uLjs2Zfm; spf=pass (imf25.hostedemail.com: domain of axboe@kernel.dk designates 209.85.210.178 as permitted sender) smtp.mailfrom=axboe@kernel.dk; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1722098126; 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=bxkmnElLQNAUxcM/BklF2G68AwDNEOmWYd3cOJQHM1E=; b=KMpk8ZrzM7pswGNW8q9//AjjHhfG8j30YgLKrzpZbFifeIF3qWDnmLI0WFS5AyhJ+sIcg4 mg4AS1e48/qKIpZsdAb8NMlL7tEWVepr1m+QODMyy2sT+t+HwZRkaDjdXsXVyZyRwF7N0/ fjMECWB6PNdArj6C7onR/dUOev0Qo1g= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=kernel-dk.20230601.gappssmtp.com header.s=20230601 header.b=uLjs2Zfm; spf=pass (imf25.hostedemail.com: domain of axboe@kernel.dk designates 209.85.210.178 as permitted sender) smtp.mailfrom=axboe@kernel.dk; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1722098126; a=rsa-sha256; cv=none; b=CmAUb8S6LppXj9O3QMxRZXBJe+xj3hJPTI/Jx7LTH/tgLvoeVtA2n5NpdXxFeK3UqSd2uH oaNtHFXswjfO32y38N/clSI3lQy6FYaesTq7dQz5zpFw4sObASOxR52FoKjBUUcF/G80i2 0zyS9INau1wnVVKEZcYmKPQXB0uZMHs= Received: by mail-pf1-f178.google.com with SMTP id d2e1a72fcca58-70d22b6dab0so160365b3a.1 for ; Sat, 27 Jul 2024 09:36:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20230601.gappssmtp.com; s=20230601; t=1722098193; x=1722702993; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=bxkmnElLQNAUxcM/BklF2G68AwDNEOmWYd3cOJQHM1E=; b=uLjs2ZfmuUI5RVwW6iIlO/Udj7FmhvuaOIy/m2cPUq+h/TQORysmYsjPYL4/H2QPJs Vxkp09UMLO9p2Svq7aeTfrg78TZnUXVZm14g4kFpXr7nGBI80evDZE6DD3fewHj39jzG msEvPA04FYTx+QaxyiLs2LoKt6pFqAAxqgZkBM7tkqPdGV01vFoWFIX7/YCXLk/tjl4l PivzsRf866AN31qYTGICXOZTXyKSoejTWClUgc4JC9HQ2wyZBgMjLYb5R2p+SNy60Zw/ 3qxu4RcY+/deAPtCnt27Ogqaesi66UUVHG2czj4Ayfsi5ZM4hPoxgrlnBBdBLCB8SixW EIdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722098193; x=1722702993; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=bxkmnElLQNAUxcM/BklF2G68AwDNEOmWYd3cOJQHM1E=; b=L4sZcFhGHpFIiAyfb5bLWrMznCrbzlPoioN7Ejth4qg5ErJmZpUsmOiIullmYd+7ov fntqcyWQBXNkoAbZLpGuxte/8Ze0B0WsDgqaCREOI1/NxM0iLMuE3UHdJSCwiYttDZrp eQFpBw4zRu6iPCDaeFWldIY7zVH702PNhMp0BOUNBtTrZylhEMDkCdadBhYePHQKsVEJ kHKMHsAKlpGKDCLhc1+z6lxiSvAgZVgkftufsRDmiWnbbTMfKqlzfTwocGT2qwdkENJy HG0vHwZ79u3cE27BLZDS9OClLkMlWxKKfcvsyDjEbmtcxPh+MIAyJSrVamt69jyc2Kn9 OBbw== X-Forwarded-Encrypted: i=1; AJvYcCWmCj6cn+0VBv/OSGTzeGFa8HhyMfByQDnyFSN97qfh0DaffYUceclApIfpHeRUOmc0O/SgOB9BC/gxI/c9OshZ2sE= X-Gm-Message-State: AOJu0Yzm9BjaRy9GnxaJGezRPfxfbEsgLy+iunsxH6yNIWSKZscuqCOy /4ve1/q2ijORJPZu9WWg0iGv8nZhLlhigTnHkchZwD5EKsC6Y/2MnxhjDNpqN5w= X-Google-Smtp-Source: AGHT+IExI3R0n0QHE0jtAqL/Yk9xbr0ZwA+xrUYiD53HeD7oHnBP+YhFXxSn3WWhyJHf/YtMIkYrMA== X-Received: by 2002:a05:6a00:8596:b0:70e:a06f:7057 with SMTP id d2e1a72fcca58-70eaca93f4amr6442119b3a.4.1722098192618; Sat, 27 Jul 2024 09:36:32 -0700 (PDT) Received: from [192.168.1.150] ([198.8.77.157]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-7a9f836c845sm4614192a12.37.2024.07.27.09.36.31 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 27 Jul 2024 09:36:32 -0700 (PDT) Message-ID: <0c5b8177-3602-4840-8956-6196a6175c04@kernel.dk> Date: Sat, 27 Jul 2024 10:36:30 -0600 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 0/7] minmax: reduce compilation time To: Lorenzo Stoakes Cc: Linus Torvalds , David Laight , "linux-kernel@vger.kernel.org" , "Matthew Wilcox (Oracle)" , Christoph Hellwig , Andrew Morton , Andy Shevchenko , Dan Carpenter , Arnd Bergmann , "Jason@zx2c4.com" , "pedro.falcato@gmail.com" , Mateusz Guzik , "linux-mm@kvack.org" References: <902a9bf3-9404-44e8-9063-03da3168146a@lucifer.local> <137646a7-7017-490d-be78-5bd5627609c3@lucifer.local> <36aa2cad-1db1-4abf-8dd2-fb20484aabc3@lucifer.local> <93243310-22cf-4d44-810c-17629b46a33e@kernel.dk> <1d87456d-b565-410f-bf4b-91fe5704617c@lucifer.local> Content-Language: en-US From: Jens Axboe In-Reply-To: <1d87456d-b565-410f-bf4b-91fe5704617c@lucifer.local> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 46167A000D X-Stat-Signature: 4bp9mkp3mkhrprebea93w98w97jxzf9w X-Rspam-User: X-HE-Tag: 1722098194-860430 X-HE-Meta: U2FsdGVkX18fqtZEkhYLQ2TO6Dm2aa8C/LASRO5jD7emvor1mJne4UYJL4UHWLefYfqlvHT6ABxMyTFepVLjRb7ihmFXdCQ5Z2OMJ6bMsBjc/9+Q52Vec9HFEhMP5FV8Bf9YBA1+NyQ1LzdUwy5PYW2JKWX1TgDAH5CuK/twnZDZQ5O+KVCTdARmdZFoUv02iGg204Gb/VUIX+1kB5dhPb3kv0LwWR/ATI0I8S5/shySGu/Fmo7/+7FgzYmCYHdeAQC7Jq2QRObFscRBLiZaIg1+IVsyUCZt+ZD0pQK/+mYM3p5Gr3rbwwOKnnjq7ht/2+7goQGnCpBCpcj3AzQkoN39WPfwMjTVtegJ1W1J7tVhZ3ONfmSnUY5oMd4hA6jkiOM4ceY1F8kWvLFFsDcNPkPUwWBrUKT21xJojk5PMfPLrK3AJk/zpGo8geZhTp8IuFk7x8k3K1JqOsC+qXm6dUIWoAXq0o+1dlFmPhlzTGaWe+m43kW0tZRTeG77H7Np+3uWdFz3kB7VZS+fa/ghULj37hkxm1/rxbJ66VzEtUhbT4/Tl7YRAMiBeenKn4PNSY3mpqjbdMXFsJyZmEf/xz0dj02Pe8Y8l6CPXHyuNvd3wNkmeHBFCn756GRwKneF1N00ahNQuRqUESfFMtD3foZSp2Ht3pmlfOfCOJbgU0oFWTiDA0xMgXPV5Fq6KgwiC9lX1e3ZoUjawPXE6Ljuz+ac/+nxCktrB3M0wvhmbttv6fYEVsAhPHMFlHrk5WH4cXeV+H4fK+0jeKbvSaqokQGxayr12Tj/03MXd7UrG6cNcW9Ftoid8LvGYd3JJuyc7nPZQDo5mpjwsqOoibMT7ZECIsg9AYKPahdGw5tA5t4G11vJxQCwARzrGooj8knh0/KXjh5xVQbC+4gU1BinWn9T7VqUA2DSbUbPhvnnnsaV8tcBw/6sCFOck4l+9Bl3f2eE+6M2NN9tiB4J5Bd ZUcG2VEI YLLpxu4vwX5/QtWkV4BhCRHh66lpt1iuz+f90weFXw5j5eKDCnro9NJnwxmk4w6qNbrLHMYy5/h+nwxIpAqE2wCJOONAJ+jRuxGv1y7s7uTCLFmMxAUS4+V3BxC0VZJ9ZWIHY1QJCnT97d8eTUcBCQkysxF1KCLvHJ8P12wKNa3J4LuWZ7OmTg9++W4pePk1EFluITp/Lot6lT4R+lysnKABgzc1VV6Hf1PZNTchVacYtCHohLgpb/Po0Gie3MX3bkUcN1fydQkcIZkEW9qjUZNqiNy6M6lLjRgGEExKjd9KCQg5wNPhlj8Q7GCy/L+nS6HUV4YpUETs7X5rl2VYf5lHvy5FQ1AcM9siOLiDCCJ8sMo8z6xQLpGtBlv30cxlttlxUDpglEX7NLgeGcUnO98dR8sQ6yBNsoKkHkWldU3vZgO7DFw3Zn0iQm9YkXKKfwmN1 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: List-Subscribe: List-Unsubscribe: On 7/27/24 10:31 AM, Lorenzo Stoakes wrote: > On Sat, Jul 27, 2024 at 09:38:54AM GMT, Jens Axboe wrote: >> On 7/27/24 9:30 AM, Jens Axboe wrote: >>> On 7/26/24 4:48 PM, Linus Torvalds wrote: >>>> I didn't even look at what the issue was with the >>>> bio_for_each_segment() expansion, in the hope that Jens will make that >>>> one look better. >>> >>> I did take a quick look, pretty obviously bvec_iter_bvec() which makes >>> it horrible, which came from Kent's immutable work quite a while ago. >>> Not sure yet what to do about it, will spend some time on this next >>> week. >> >> Maybe something like this, totally untested... >> >> diff --git a/include/linux/bvec.h b/include/linux/bvec.h >> index f41c7f0ef91e..9ccccddadde2 100644 >> --- a/include/linux/bvec.h >> +++ b/include/linux/bvec.h >> @@ -130,12 +130,15 @@ struct bvec_iter_all { >> (mp_bvec_iter_page((bvec), (iter)) + \ >> mp_bvec_iter_page_idx((bvec), (iter))) >> >> -#define bvec_iter_bvec(bvec, iter) \ >> -((struct bio_vec) { \ >> - .bv_page = bvec_iter_page((bvec), (iter)), \ >> - .bv_len = bvec_iter_len((bvec), (iter)), \ >> - .bv_offset = bvec_iter_offset((bvec), (iter)), \ >> -}) >> +static inline struct bio_vec bvec_iter_bvec(struct bio_vec *bv, >> + struct bvec_iter iter) >> +{ >> + return (struct bio_vec) { >> + .bv_page = bvec_iter_page(bv, iter), >> + .bv_len = bvec_iter_len(bv, iter), >> + .bv_offset = bvec_iter_offset(bv, iter) >> + }; >> +} >> >> static inline bool bvec_iter_advance(const struct bio_vec *bv, >> struct bvec_iter *iter, unsigned bytes) >> >> -- >> Jens Axboe >> > > I tried this patch, doesn't seem to make a huge difference, going from > 3,958,564 bytes with longest line of 82 kB to 3,943,824 bytes with a > longest line of 77kB. > > It seems that the .bv_len = ... expansion is what's doing it, so I tried > patching mp_bvec_iter_len() as well to do a silly ?: thing (sorry), which > takes us down to 3,880,309 with longest line of 20kB. Right, I did compile it after the fact and applied the same thing to mp_bvec_iter_len(). > This is starting to feel like whack-a-mole isn't it? I looked at the next > longest line, which originates from include/linux/pid_namespace.h believe > it or not where some compiler cleverness + a loop is resulting in _another_ > combinatorial explosion. Oh it's certainly whack-a-mole, doesn't mean it's not worth doing for the low hanging stuff :-) > Patch attached including Jens's change + mine. bvec side matches what I have here, fwiw, except I also did mp_bvec_iter_len(). Didn't see big expansion there, but might as well keep them consistent. -- Jens Axboe