Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp598007rdb; Tue, 5 Dec 2023 14:15:51 -0800 (PST) X-Google-Smtp-Source: AGHT+IHPyxHf2+ODHCRoQTrxnZzUQiAO0AWCj8kWkvpUHQDn0jDu1b6p6u5UrPKIC5qhqpiUVUke X-Received: by 2002:a05:6a20:6a14:b0:18f:97c:8a1a with SMTP id p20-20020a056a206a1400b0018f097c8a1amr8612054pzk.69.1701814550794; Tue, 05 Dec 2023 14:15:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701814550; cv=none; d=google.com; s=arc-20160816; b=BqH0KlIjD0OT8MVoeWQm7Lqp+Q/9BWks5zYu9nlgyLFAvWdWbu9wguDn83OgDCIWYl rZZXh8Cci90RdqF8wMc6+2EmCRWqCZq0Adb4J1xw+6A6kfrA6koN79+Ctv6tY9ppxdBV 0uG9GZs0ID+mwiEkV3UHbEtVQHxZCQPCNsENlRCynJmWJBByv0tl3QxqRSYvK0nl4Ur/ Y5zpIo7uI0mRd6aIqxk/x1Eih/ymXdR/Bh8YUVkg5mzjlXl3lKuDfrvbW5W/pi+9gt/g r9Fpyd73lMnoXS+VUuVw/uDLkyrbBRewyvC8qZTGJ/Vkk0jwlGtGdINJvvDthi49r/Yt E/AQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=rZoIuLBpqfTTD+G5pnGLC4N3Ey8O5mo3kg+Q6utlpas=; fh=d/F3tlGYbBxwqiwYGnvFGVEOjF6htnM1QpfHongyVE4=; b=q4rvLOK6YoZsP0bOKZJdLg3jOXcTW7yhoq5g+OrK3EhpZ30R6lHlAIV0vfiGObzovZ sZXp9NyyZ/E5iD5HB+QGaY8+plwMfKFAPrUCQvOIKTKHzWFYx+Qv7UbzJSydqmT7QBVW QfRPv1+Vn6rx2OeCLXwYf/sGXai28ZZQ7MRnSPE0RZ3qv35cla4a2TeWDh5qRAjTPs6r zJrPDnRH3nqaCAMf5gI9yPQhhHumjPVQgEIQbXj582PHOAYZNYNTNWZ8kvFe+lS6SFJo G5gE0Tr9prs3MGgxoN80W6pw5M5gpqqj7lYpH8w98MYrS/3e6Uil1DZZ5cn4KcwxVhmj Bx3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux.org.uk header.s=zeniv-20220401 header.b=jiyhtCeI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=zeniv.linux.org.uk Return-Path: Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id by19-20020a056a02059300b005c68da9ca8asi4385770pgb.787.2023.12.05.14.15.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Dec 2023 14:15:50 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.org.uk header.s=zeniv-20220401 header.b=jiyhtCeI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=zeniv.linux.org.uk Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 1A505808E67B; Tue, 5 Dec 2023 14:15:34 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346456AbjLEWPW (ORCPT + 99 others); Tue, 5 Dec 2023 17:15:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49574 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230162AbjLEWPT (ORCPT ); Tue, 5 Dec 2023 17:15:19 -0500 Received: from zeniv.linux.org.uk (zeniv.linux.org.uk [IPv6:2a03:a000:7:0:5054:ff:fe1c:15ff]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F016D181; Tue, 5 Dec 2023 14:15:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=linux.org.uk; s=zeniv-20220401; h=Sender:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description; bh=rZoIuLBpqfTTD+G5pnGLC4N3Ey8O5mo3kg+Q6utlpas=; b=jiyhtCeIWsiKOT/rohzO/I+nDh AxEBv15Ye8BphlvJO+A+wMPPR/fAvFrUpGa0hCfwk91iGjGojhOa/ukdRiYT2jMYQAOi6pkgz5t0B nvBO0F7sd6DrP6Kx+G/J2VHtEnjn2oJ6JIYkPWBn0DO2OsaoJUO2DrRQYwV5ClA/b1ngnNb4VhjLG 6QSimRhRuC2TZwPRh9k9x1Q6hTJrdF73bi+k2sHzqSc2o+AkzhWuylWi1R6INJYnkZBfyCUbZo3s4 qqwLnvZNdkivu7Fq8bZgazpXS9exwm0LLb+uMi6vntxf1+PMRQ2o7lQQXxGfH2KrvNtPRrlIfTdBR WiW60Rvg==; Received: from viro by zeniv.linux.org.uk with local (Exim 4.96 #2 (Red Hat Linux)) id 1rAdhJ-007U2Q-2b; Tue, 05 Dec 2023 22:15:21 +0000 Date: Tue, 5 Dec 2023 22:15:21 +0000 From: Al Viro To: Andy Shevchenko Cc: Nick Desaulniers , tanzirh@google.com, Kees Cook , linux-hardening@vger.kernel.org, linux-kernel@vger.kernel.org, Nick DeSaulniers , Andrew Morton , llvm@lists.linux.dev Subject: Re: [PATCH] lib/string: shrink lib/string.i via IWYU Message-ID: <20231205221521.GH1674809@ZenIV> References: <20231205-libstringheader-v1-1-7f9c573053a7@gmail.com> <20231205213807.GE1674809@ZenIV> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Sender: Al Viro X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Tue, 05 Dec 2023 14:15:34 -0800 (PST) On Wed, Dec 06, 2023 at 12:01:56AM +0200, Andy Shevchenko wrote: > On Tue, Dec 05, 2023 at 01:51:10PM -0800, Nick Desaulniers wrote: > > On Tue, Dec 5, 2023 at 1:38 PM Al Viro wrote: > > > On Tue, Dec 05, 2023 at 08:58:53PM +0000, tanzirh@google.com wrote: > > ... > > > > > IWYU is implemented using the IWYUScripts github repository which is a tool that is > > > > currently undergoing development. These changes seek to improve build times. > > > > > > > > This change to lib/string.c resulted in a preprocessed size of > > > > lib/string.i from 26371 lines to 5232 lines (-80%). > > > > > > It also breeds includes of asm/*.h, by the look of the output, which is > > > not a good thing in general ;-/ E.g. #include *anywhere* > > > outside of linux/uaccess.h is a bad idea. > > > > It's not clear to me when it's ok to #include . Is there a > > convention here that I'm missing? > > The mandatory ones can be used, but not all of them. > In some cases you even must include asm and not linux > (unaligned.h, byteorder.h, maybe others...). > > As I told, it comes with experience, we lack of the > respective documentation (or file which is good for > automation checks, like with IWYU). It would certainly be nice to have such information in the tree; "where should I pick $SYMBOL from?" is something one needs to find out often enough. To a large extent it's covered by "where in include/*.h do we have it defined?", but that's not all there is to it. E.g. "get_user() => use linux/uaccess.h". There's also stuff like "$SYMBOL should not be used outside of arch/* and include/*, better use $OTHER_SYMBOL", etc.