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 63C80C3DA61 for ; Sat, 27 Jul 2024 04:13:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 755336B0083; Sat, 27 Jul 2024 00:13:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 706396B0088; Sat, 27 Jul 2024 00:13:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5A7B36B0089; Sat, 27 Jul 2024 00:13:37 -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 3CAC86B0083 for ; Sat, 27 Jul 2024 00:13:37 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 52BB48010D for ; Sat, 27 Jul 2024 04:13:36 +0000 (UTC) X-FDA: 82384213632.21.018EFD6 Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com [209.85.208.180]) by imf05.hostedemail.com (Postfix) with ESMTP id 2C8F3100002 for ; Sat, 27 Jul 2024 04:13:33 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=linuxfoundation.org header.s=google header.b=R6k6Du+P; dmarc=pass (policy=none) header.from=linuxfoundation.org; spf=pass (imf05.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.180 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1722053576; a=rsa-sha256; cv=none; b=lcOjErmRVxguJ80qtDmNBXh3WNjzSLGpK/wRfA4Je4WVkdqgXy3zDBWYULoyZXD/ZnjjwO bXiCgRwsKT5rqTzr7mpzCkX46i7w9fOEDtuGT7vVM6MkUmdEPjv2ts3TVNXBeDDqvudcP7 cv+/G4aBJdMNFyRyw8b1EnX5UeWRBck= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=linuxfoundation.org header.s=google header.b=R6k6Du+P; dmarc=pass (policy=none) header.from=linuxfoundation.org; spf=pass (imf05.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.180 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1722053576; 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=K/uMPyIfeG0/RXKUSrI0lPwnMKxDEbhvNoitLBIIiHA=; b=Stut//V2wZ3DUou+zJOxRfj2QDSG+NBPZILQIL1Cw60gIERaIoGyI93wy4f6vwaYNi8NNR MyAuqKQBcfw2VsdRZb4/Ww9c/BPLlYq8yPE8KMXN4XPIAqIXoEwXObS206kdoGDElj0XWo +azAY/Q2NdRLCKGwIGuVZcTJ0YPIEA4= Received: by mail-lj1-f180.google.com with SMTP id 38308e7fff4ca-2eeb1ba0481so28362611fa.2 for ; Fri, 26 Jul 2024 21:13:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=google; t=1722053612; x=1722658412; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=K/uMPyIfeG0/RXKUSrI0lPwnMKxDEbhvNoitLBIIiHA=; b=R6k6Du+P8tJFt6StAcgyVVRGdGtUeYQWnXBVE6AjYd1Uml9+KFgcIaBLCT+FOg851w KRXyL/HZFlMFeWpUJJlI2NhsodN1qwSA9/Qqfu2OlQG/J53MTCB74pLUx7yMYLrX+z78 CgcFEFmIShx7BF+JcAyhJ0LxitGgTTEIpmdsU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722053612; x=1722658412; h=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=K/uMPyIfeG0/RXKUSrI0lPwnMKxDEbhvNoitLBIIiHA=; b=ZiFf+EtpmaJhkDbrWtgFMt5jsoCTpioJwRFMJAT57ZwRMksgQ5l3RDpcY9rNrGfVm1 LCgQPqs48u8Td23yfhtidZ3SH+IYkeTq6ECb2/ZW8qfxpB6TdMYVt23+vPMLiI3wlC0b F8BKB0dF8pByZ9NMpu/cbm118fIvhey9fuetnU32P1lPCkUpuzdV1iqN0uPVgDzOzCXB kpldOvppwxNCFARjgOfttwum4a4EHZ8QuJrjxci5MyS16uyPt3oH/Pyo8xJY1GuwPqx3 C6U4ZekFdA44G5NaQqBxdRn6X8xhBuhqG3fyke9Q02tn2qEMSZtsmlf9hLZ9+VtWaP+p WObQ== X-Forwarded-Encrypted: i=1; AJvYcCVAf6hZLCnwjXWxB5nKOXUUiQ33HunWLGrA/Fc/xNmJ6B5ioTZgnRxQmJEszYDrQ+I6BAXWYWRoqtASL32OssPNrGE= X-Gm-Message-State: AOJu0YwX7JA5aZDyE2TVxAC/5HkO1UoOewW00jr3upDMINOr4Pr1Npir OD1qKVxsCpQ5DNx4tToecAi9OiIC49YI1J5hKNkhgwXR0blSOzsWLWf0OhcuyCA7RYnSGbLEJpA PEAMWkw== X-Google-Smtp-Source: AGHT+IGUALR8r+GxQoM+ZYzjbZA7DDYZvwRAtweJWs+Wr+rGoLtXJPKMN4QECv8R9gqK7szZhBFKjA== X-Received: by 2002:a2e:a223:0:b0:2ef:1f51:c4ed with SMTP id 38308e7fff4ca-2f12ee2f0d6mr8224961fa.47.1722053611503; Fri, 26 Jul 2024 21:13:31 -0700 (PDT) Received: from mail-ed1-f45.google.com (mail-ed1-f45.google.com. [209.85.208.45]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5ac63590d1esm2635289a12.27.2024.07.26.21.13.29 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 26 Jul 2024 21:13:29 -0700 (PDT) Received: by mail-ed1-f45.google.com with SMTP id 4fb4d7f45d1cf-5a156556fb4so3564377a12.3 for ; Fri, 26 Jul 2024 21:13:29 -0700 (PDT) X-Forwarded-Encrypted: i=1; AJvYcCWRzRvaSeiVJUmc8MZGE7bd8T0bmKepuKhZhZVUG0w1x+DZCP2UonVtnLqDr5BByRHgva27dLwNwPn/4boNx4CsicY= X-Received: by 2002:a50:950d:0:b0:57d:3df:f882 with SMTP id 4fb4d7f45d1cf-5b0202ef9admr704512a12.7.1722053608884; Fri, 26 Jul 2024 21:13:28 -0700 (PDT) MIME-Version: 1.0 References: <23bdb6fc8d884ceebeb6e8b8653b8cfe@AcuMS.aculab.com> <902a9bf3-9404-44e8-9063-03da3168146a@lucifer.local> <137646a7-7017-490d-be78-5bd5627609c3@lucifer.local> <36aa2cad-1db1-4abf-8dd2-fb20484aabc3@lucifer.local> In-Reply-To: From: Linus Torvalds Date: Fri, 26 Jul 2024 21:13:11 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 0/7] minmax: reduce compilation time To: Lorenzo Stoakes , Jens Axboe Cc: 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" Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 2C8F3100002 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: bu35oas969cy1hwqthrwx575oipefj8k X-HE-Tag: 1722053613-222634 X-HE-Meta: U2FsdGVkX18+FkQZSvKJl+ngj/Z8HAb4epUCg34IiwsSxcCS8Tt5KYsOXz0M9THT9AG+AYWrw/ks5YD9R4nLRxONU9/rBWla3igI/UOUaj4/G8pRhXQwIqwkX39L91Y8HqJhh+zzCaxenigjYo6LwOzj3qXCZSwgseWmP5wwE8i5F/4egLoktHTqDHHL2Ui7Hc+AYhtQl9rYOOeadsWOsktE/dbcGeOwRO99JO6UMBqShKBWR3dnGi+Cp/wd3UWyHDlCZMQW/q7tvLszAjcv97rUVskQiAcRS1uHcAhRDbIxs9PI4rsCLGyO+iP29WmyPOhrWl3FLWx8vbATYwlFdq46DavJbKPau6hihTKzfVLJihWvJggSuYwOwbE3grWE/LzfpR0D3jaI+pDhqO/l00C3q5gl/fMGvzv4caM2X3qmU39lPlfSCh7o1WXLBjkYY5eBOpSVwgMumBf3WiY1G49wEMc0VU7i4kZkpt8mdtzz9iHhDBo5RITEaum7JXTd/F26oRs0ugrm1NBuEDYxBvC1tJgH6XVsYi2B9TrXP4Its8cNJmy8Uy85LxqN3/tOcjQ226PJG46D1olydqsOWFiKWrAJcDfTgMb6cgPlRAtmiUw/k0S2Jm6m62qSbugJgPEFjmFCq3Np5omeAnpEAc69X0+v+Z2vwefCZ7LWt4A/rPqAgZmjHPSwQxjWTa2288EdhDqdEkl0n+a3yE9mJkrljCqma0i/naYEorghtM//QU7DdNHISZCbMgX3uB/Mvt2nIN0RusxxKhzws9koT00YMzuWw71afWOwHhG8TSBZ+si3WAebuc5+snlys/U3DX61eLmfQvFh0JE1ds7GuQZdTYVZzTU9SUJxcwOYwVPaAwtUiAFYNK08Jgi+YBB1nzYvqiKjLtsTyMmoQovB67eCmw7AH36bTu4wr86ub5LRGAj9qOQv6RoXZKTys0Pj77mIrBO38u8VEaMKRpl l0sr25PG rjBe1VIrb4zHfHLwk2zR8/KroLY7GpRUl0aOnW01CkJ/iXdAzuyFmgsHvoWXXRRJfp1stXenAP2oDNf0e7nyZMizOq1V7cMKNTV0SuNPDa+9VvA2m+acf/pHR3GB+1yEOpS8DWmkcmi3KrY2LAA6GUtHz1At7X5rwLLr0kZIVNk2ovhUJUM935ebso+FksRdRZjiRL6cPUo5UPel+uM8oOsX/zxJMNVal1Kr5ZgznlvJxP2U9QheObgXHSYHjAm2olhPDfqKhTPHQOrkj2DVwOrK+EHOvLnKJMsarpG216eWTIJE0jJui9SkoPJHUz2XMI80ZWnaZPi2SwsdVwO1FC2Ih+rEyzA3nTmaHFmLjqWyL1gLbIJp0JWCtorj8WoV3lznlfqewGnczArzQLkLJQItgnGe57rHRLVxMh20mw63XqsGskSwqX3hun/nen53kkjFIQZdmCzy6kBE= 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 Fri, 26 Jul 2024 at 14:36, Linus Torvalds wrote: > > Now, fixing that, and you end up with > > Longest line is 61861 (82kB) > > so it's now "only" 82kB in size, and that actually comes from > , which has this: > > static inline unsigned bio_segments(struct bio *bio) > { > ... > bio_for_each_segment(bv, bio, iter) > segs++; Ok, so I was playing around with this some more, and got really fed up with manually matching up where the longest line actually came from in the preprocessor output, so I updated my stupid "longest-line.c" program to just track the original file and line number as it was walking through the preprocessor file. And yes, I realize that nobody sane would do this in C, and this all should be done in some sane language that is actually meant for string parsing, and me writing scripts in C shows that there's something seriously wrong with me. I'm aware. But anyway, it works. At least to some degree. So I can do things like this: $ make drivers/net/ethernet/marvell/mvpp2/mvpp2_main.i $ ~/longest-line drivers/net/ethernet/marvell/mvpp2/mvpp2_main.i and it will spit out Longest line is drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c:1136 (2346kB) ' ((((((pkt_size) + __builtin_choose_expr((sizeof(int) == sizeof(*(8 ? ((void *)((long)((__builtin_...' to tell me that we have that insane 2.2 *megabyte* line due to the MVPP2_SKB_HEADROOM thing, and I should apply this patch: -#define MVPP2_SKB_HEADROOM min(max(XDP_PACKET_HEADROOM, NET_SKB_PAD), 224) +#define MVPP2_SKB_HEADROOM MIN_T(int,MAX_T(int,XDP_PACKET_HEADROOM, NET_SKB_PAD), 224) to fix it. At which point the above incantation starts giving Jens the evil eye again: Longest line is include/linux/bio.h:194 (82kB) ' for (iter = ((bio)->bi_iter); (iter).bi_size && ((bv = ((struct bio_vec) { .bv_page = (((&((((((bio...' but while that is certainly an impressive 82kB line, we have some good company in code VM header files, and I've also seen Longest line is include/linux/page-flags.h:507 (27kB) 'static inline __attribute__((__gnu_inline__)) __attribute__((__unused__)) __attribute__((no_instrume...' because the expansion from __PAGEFLAG(Locked, locked, PF_NO_TAIL) does indeed generate some impressive stuff. It's all the functions for the locked bit handling generated from one line. But my C scripting may be buggy. Anyway, I'm throwing this out in the hopes that somebody will use this to go "look, file XYZ generates a ridiculous X-megabyte line". I found that 2.2MB expansion in mvpp2_main.c by basically just randomly grepping for nested min/max use. There may be worse things hiding. Linus