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 0FCBDC001DB for ; Tue, 8 Aug 2023 12:48:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 770026B0071; Tue, 8 Aug 2023 08:48:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7203D8D0001; Tue, 8 Aug 2023 08:48:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5E74E6B0075; Tue, 8 Aug 2023 08:48:11 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 4E8F66B0071 for ; Tue, 8 Aug 2023 08:48:11 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 14C7C160C11 for ; Tue, 8 Aug 2023 12:48:11 +0000 (UTC) X-FDA: 81100915182.25.41B74AF Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.93]) by imf12.hostedemail.com (Postfix) with ESMTP id A96D24000C for ; Tue, 8 Aug 2023 12:48:07 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Ui2OVnqR; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf12.hostedemail.com: domain of andriy.shevchenko@linux.intel.com has no SPF policy when checking 192.55.52.93) smtp.mailfrom=andriy.shevchenko@linux.intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1691498888; 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=Vmmbn/SYTdAX6khGfnmT6e6vl79rTBhgIsmeqcQLC/8=; b=l/RCpEqPc8mWUbatFNGt9ikgELpPB0NI80Y2qKun0bSAogKMvGXF2qp9qniZ7bVlfDT4+y Iw/nFYOKxEil8O3mHMRTvC55+WOFXl7TV8uZ253s9w+luXYAhcnfhQKK/kvXtvKmpfMGhB cyyxczRRH8B6K662lNg/PU6OszFIKyI= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Ui2OVnqR; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf12.hostedemail.com: domain of andriy.shevchenko@linux.intel.com has no SPF policy when checking 192.55.52.93) smtp.mailfrom=andriy.shevchenko@linux.intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691498888; a=rsa-sha256; cv=none; b=Mi3KeCbmmhYvTP+C2sJh+zvPwO5EtdgKhiLP+saDxaT5kbnf+w0SobxV1qIDq7oQRRL4CQ iIr9AzWtOjtwxViD2dHCPnweXi0N9JR5FAkmINhQ0gmh695v14SNkolrBR0LrbT2Di4n8I RVxrruXjz6s1dTXF/AND8Hfcn83GENo= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1691498887; x=1723034887; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=hTDS2ME+q1HzK5Sb8yCC07Kug3lXc6Oon/QxrCY5jRM=; b=Ui2OVnqRUWZmm35Jsz/2rhd+vtxe4SM40dX6ELoF9tgTT49BaS14Zu4P RcQhT+ns/9bL+VTCzv9w+5K8cah437hfgnznJ1hN/uFLy3AyOs5GBfm6a QwkTJaDT0lbIXaUNQodNSZbYMNBHB6gU3pBkJRM58DTfDeaupH6EL2Xe3 UerbmCwqbnV4jAJ6sa7MpPs7qvefAfgmEOpvMaH7LMyrj6qEH9BRRNtM+ 4Ng0JBSgx8pmdT7WfqgF6BrnEERfmRXMw03PbsO1IfSZnDQ5BMJ/b/i+9 mi/ScN4P6oiur37PYWI/WzeN5wNfteVn9hZtU3GNW1NhLYlW/lP5n/1NJ w==; X-IronPort-AV: E=McAfee;i="6600,9927,10795"; a="368258926" X-IronPort-AV: E=Sophos;i="6.01,156,1684825200"; d="scan'208";a="368258926" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Aug 2023 05:48:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.01,202,1684825200"; d="scan'208";a="874710309" Received: from smile.fi.intel.com ([10.237.72.54]) by fmsmga001.fm.intel.com with ESMTP; 08 Aug 2023 05:48:05 -0700 Received: from andy by smile.fi.intel.com with local (Exim 4.96) (envelope-from ) id 1qTM80-008Nsn-09; Tue, 08 Aug 2023 15:48:00 +0300 Date: Tue, 8 Aug 2023 15:47:59 +0300 From: Andy Shevchenko To: Petr Mladek Cc: Marco Elver , linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, linux-mm@kvack.org, Steven Rostedt , Rasmus Villemoes , Sergey Senozhatsky , Alexander Potapenko , Dmitry Vyukov , Andrew Morton Subject: Re: [PATCH v2 2/3] lib/vsprintf: Split out sprintf() and friends Message-ID: References: <20230805175027.50029-1-andriy.shevchenko@linux.intel.com> <20230805175027.50029-3-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo X-Rspamd-Queue-Id: A96D24000C X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: yjy3wqj5jccbnm1z6x5dba5kfshgfq53 X-HE-Tag: 1691498887-907623 X-HE-Meta: U2FsdGVkX1+swcqMibGFFs7WAIJLLfqId2kBwJhiDXUCyLERQL1XuYFmnRDWizzofisvD26psfqfbIJ5slVjgRHnU44SOOC/clrKxyTCLT6lDjOfzvUztyheV/3krSxXNeHhIWeZ14H5n7eOwG5P3Beaav8J9bCQ58lUx2ZMbD5ELi1X6omWpMv+CkiKjq+7vyFGDO8U9lyxpvLko0TI4tvyFl1FMKunemMRG/+27F59SmLELDzObOq8iWR2Ie85PA4NWom+E+WCoVWuEptV4Fjn7Z4fDYesUtcZsrK4M0p3dfxoWx478UiAFNlDbZ5OK1TT1YbIbbu6QkYzA/VlJ/hlH2HBgFgvLVrdgA6YFdpPwInDfeDPo0w1E+ruxeSJBCsM/SMzjWbmMhQzlVdqvBHSCdBRH1zgP0P4NOmbhEuOBelJkTGxJQMwgFI1RXBFiftFe6bTClJ1fR7OHiC1/AM4OEp2J0EGQzX28C4hw+hpeZdazPDginazgRmtL35lhiHSLfK4mDXW0ioXRSgQtSaZZJlWU65cw4dUvB5p7xtkko/9NMAY9PQuzVMN2M6XjVpnQvFjwP8FN5m09/aKuHHlHaVj9/aqnsz1kR01C35Ey9e5qVDXvlUt861UnLTCeyJUnPHg94aOtonbiIOPMOnHD79Lgpp5CuZA6rEuR3EuVSHagg7VPKpHuEqaPS6uPVIa/mD8JntSCww09wkBk4Zs1J4U+6NIgI2fPaXaOj0uTpJrcUapFmZlOQhp75u8nhgqEmgHQLzr4a2KD3ShMvyKtxhgKT+OgshlUJFd6H9WzHfZpwz4GdX1JHuiAoyPFXBfz8LyWocqc9Mzl6oT/HqTxINNxKnVe5li2dZ7PIPqcDCvaBjFQOb2Up34vA3aLTo8xlyKPY/0sjrSSKIaFh7fI1p3inukOK2gz0VY4n0wql4DNSr/WV8FFZg1JONDkGdkRvRnBwgh9Xbt1Sb E52v4j4E +fWcolQVTvc4EWHs+FQp+qBp5hork0Lf9osT/G/FOrcAgK4NdZi71KG/NQNXaxPzzh2i1oAjt58R+fmk4mlZ5XdI4X4LuqkbBox2vf7WdbLLhZS4Yotbodq0vMg4/9rtrp1ZTBn5eRgGPFyhjdDUSlSWAvyqHJk7NIWKCJ+0W1e9mRfs= 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 Tue, Aug 08, 2023 at 08:41:49AM +0200, Petr Mladek wrote: > On Mon 2023-08-07 18:13:57, Andy Shevchenko wrote: > > On Mon, Aug 07, 2023 at 06:11:24PM +0300, Andy Shevchenko wrote: > > > On Mon, Aug 07, 2023 at 06:09:54PM +0300, Andy Shevchenko wrote: > > > > On Mon, Aug 07, 2023 at 05:03:19PM +0200, Petr Mladek wrote: > > > > > On Sat 2023-08-05 20:50:26, Andy Shevchenko wrote: ... > > > > > How does this sound, please? > > > > > > > > Not every user (especially _header_) wants to have printk.h included just for > > > > sprintf.h that may have nothing to do with real output. So, same reasoning > > > > from me as keeping that in kernel.h, i.e. printk.h no better. > > > > > > (haven't check these, just to show how many _headers_ uses sprintf() call) > > > > > > $ git grep -lw s.*printf -- include/linux/ > > > include/linux/acpi.h > > > include/linux/audit.h > > > include/linux/btf.h > > > include/linux/dev_printk.h > > > include/linux/device-mapper.h > > > include/linux/efi.h > > > include/linux/fortify-string.h > > > include/linux/fs.h > > > include/linux/gameport.h > > > include/linux/kdb.h > > > include/linux/kdev_t.h > > > include/linux/kernel.h > > > include/linux/mmiotrace.h > > > include/linux/netlink.h > > > include/linux/pci-p2pdma.h > > > include/linux/perf_event.h > > > include/linux/printk.h > > > include/linux/seq_buf.h > > > include/linux/seq_file.h > > > include/linux/shrinker.h > > > include/linux/string.h > > > include/linux/sunrpc/svc_xprt.h > > > include/linux/tnum.h > > > include/linux/trace_seq.h > > > include/linux/usb.h > > > include/linux/usb/gadget_configfs.h > > > > Okay, revised as my regexp was too lazy > > > > $ git grep -lw s[^[:space:]_]*printf -- include/linux/ > > include/linux/btf.h > > include/linux/device-mapper.h > > include/linux/efi.h > > include/linux/fortify-string.h > > include/linux/kdev_t.h > > include/linux/kernel.h > > include/linux/netlink.h > > include/linux/pci-p2pdma.h > > include/linux/perf_event.h > > include/linux/sunrpc/svc_xprt.h > > include/linux/tnum.h > > include/linux/usb.h > > include/linux/usb/gadget_configfs.h > > This is only a tiny part of the picture. > > $> git grep sc*n*printf | cut -d : -f1 | uniq | grep "\.c$" | wc -l > 5254 > $> find . -name "*.c" | wc -l > 32319 > > It means that the vsprintf() family is used in 1/6 of all kernel > source files. They would need to include one extra header. No, not only one. more, but the outcome of this is not using what is not used and unwinding the header dependency hell. But hey, I am not talking about C files right now, it's secondary, however in IIO we want to get rid of kernel.h in the C files as well. Also, please, go through all of them and tell, how many of them are using stuff from kernel.h besides sprintf.h and ARRAY_SIZE() (which I plan for a long time to split from kernel.h)? > If you split headers into so many small pieces then all > source files will start with 3 screens of includes. I do not see > how this helps with maintainability. It should be a compromise. But including kernel.h mess into a file (**especially** into header) for let's say a single sprintf() call or use ARRAY_SIZE() macro is a bad idea. _This_ is not maintainable code and developers definitely haven't put their brains to what they are doing with the header inclusion block in their code. -- With Best Regards, Andy Shevchenko