Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp1628412rdb; Thu, 7 Dec 2023 04:52:54 -0800 (PST) X-Google-Smtp-Source: AGHT+IFc1dCD0L3hpKTxTpde/hOHxZevQy8armplWnU3cWCZqxykg+HhD2DT2kB8bBaj5g7tn56u X-Received: by 2002:a05:6a20:8628:b0:18c:9856:8ce with SMTP id l40-20020a056a20862800b0018c985608cemr1775798pze.6.1701953573954; Thu, 07 Dec 2023 04:52:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701953573; cv=none; d=google.com; s=arc-20160816; b=w7YAsHKCAqZiXnbUsAeZotBKHgfB5SdtZtwij4ZhTFj4HI12wVda7bTHEvGYchMes7 U2D561eMQPNg7/ugibAbI/2YL+ogz9udjFy3ssixctXW4hTA9D67RN1373wifG6HY0BN ss02uBGxj2zGWqoQmmrVZhK37rHL9wRz77I0onlAQla2GKUFs+ZLth4zciUOlZDBv2gp 6caeezgyGLV3AHpYMDaH5v2mqS0tZBsqevBqRaSWxSp7FiXIpJXp2F8LlDeG49h4eAuY 6cdsufhMg0Um+/Wbhlw0F2oW8+jVfpffjkNb/SI024YKJmJm1qITyEhjm/rS2hKyJwZZ Hrhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:organization:in-reply-to :content-transfer-encoding:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=3LZvQkw9PofU+jqS/4wMS3n5Wbv0/A9lYMPLKBOc4oA=; fh=p5ooYO7FC4tXWxGU0krJ1W8vwPjdIOfE5dPi63atYFg=; b=ZsvLtZENs0RdD1qzhQKmZ4zvY7ftCDcnvfY7Ca6/O96H02U+dREb2kcEgxZSMYtXp1 fyZlad8BlSGxu/9BVntNKsYm+ZQBuUiim3axPK8o2m9DM3nwB59ZzLyKNbGAKMJ6G9/G V1Cvy8wlHzu7fzKKPX4IQlaYgWpAu/htop7YRCXP2X49Rgftq3c0t0MVW4wHw+VumwZq KfLFSx/3CM4VEJQ0umYTPS6xyeCzed0HwbVivFkCiOP6gkqb+2ueLOjkuOF6uTeT8JDU wY55xJQIyJJGLtZWaBINJLFO4JS3JrLtsicMjkIeeku1H0hXxsZgje5DiEB9MzWHEI1G XwJA== ARC-Authentication-Results: i=1; mx.google.com; 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=kernel.org Return-Path: Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id kx6-20020a17090b228600b0028679b8af72si967992pjb.152.2023.12.07.04.52.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Dec 2023 04:52:53 -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; 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=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id C0E2C804E719; Thu, 7 Dec 2023 04:52:52 -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 S232623AbjLGMwn (ORCPT + 99 others); Thu, 7 Dec 2023 07:52:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43638 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232541AbjLGMwl (ORCPT ); Thu, 7 Dec 2023 07:52:41 -0500 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.65]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 588E9122; Thu, 7 Dec 2023 04:52:47 -0800 (PST) X-IronPort-AV: E=McAfee;i="6600,9927,10916"; a="398105685" X-IronPort-AV: E=Sophos;i="6.04,256,1695711600"; d="scan'208";a="398105685" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Dec 2023 04:52:46 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10916"; a="771724258" X-IronPort-AV: E=Sophos;i="6.04,256,1695711600"; d="scan'208";a="771724258" Received: from smile.fi.intel.com ([10.237.72.54]) by orsmga002.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Dec 2023 04:52:44 -0800 Received: from andy by smile.fi.intel.com with local (Exim 4.97) (envelope-from ) id 1rBDrs-00000002bPB-40QR; Thu, 07 Dec 2023 14:52:40 +0200 Date: Thu, 7 Dec 2023 14:52:40 +0200 From: Andy Shevchenko To: Al Viro 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: References: <20231205-libstringheader-v1-1-7f9c573053a7@gmail.com> <20231205213807.GE1674809@ZenIV> <20231205221521.GH1674809@ZenIV> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20231205221521.GH1674809@ZenIV> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_SOFTFAIL,T_SCC_BODY_TEXT_LINE autolearn=no 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]); Thu, 07 Dec 2023 04:52:52 -0800 (PST) On Tue, Dec 05, 2023 at 10:15:21PM +0000, Al Viro wrote: > 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. Precisely! That's what many developers will benefit from! -- With Best Regards, Andy Shevchenko