Messages in this thread | | | Date | Sun, 30 Oct 2022 23:52:26 +0200 | From | Andy Shevchenko <> | Subject | Re: [rft, PATCH v1 4/4] kernel.h: Split out ARRAY_SZIE() |
| |
On Sat, Oct 29, 2022 at 01:05:43PM +0300, Alexey Dobriyan wrote: > On Tue, Oct 25, 2022 at 11:20:10AM +0300, Andy Shevchenko wrote: > > On Mon, Oct 24, 2022 at 09:14:29PM +0300, Alexey Dobriyan wrote: > > > On Mon, Oct 24, 2022 at 07:05:18PM +0300, Andy Shevchenko wrote: > > > > On Mon, Oct 24, 2022 at 06:44:50PM +0300, Alexey Dobriyan wrote: > > > > > > include/linux/array_size.h | 13 +++++++++++++ > > > > > > > > > > All of this is pessimisation unless you're removing > > > > > > > > > > +#include <linux/array_size.h> > > > > > > > > > > from kernel.h which you aren't doing. > > > > > > > > > > container_of.h is just as silly. > > > > > > > > > > kernel.h might need _some_ cleanup (like panic and tainted stuff) which > > > > > is rarely used but ARRAY_SIZE()? > > > > > > > > Are you suggesting to slow down compilation with inclusion of tons of unneeded > > > > stuff in the zillions of drivers? > > > > > > > > Or you are talking that we need to abandon most of the headers and combine > > > > everything into kernel.h? I think this is what is silly. > > > > > > It hard to escape kernel.h so you will be including it anyway. > > > > It's very important to not include it in the headers. > > > > And this split helps to it a lot. We have container_of() or array_size() used > > in macros and/or inliners that are usually appears in the headers. And if you > > know what dependency hell means, the kernel.h brings to it a huge mess. > > > > So, try to be constructive, okay? > > > > > Unless you delete, say, kstrtox.h from kernel.h, it is pointless busywork. > > I'm very constructive. > > Parsing 1 define is faster than opening/reading/closing a file to parse > 1 define (it's 2 defines because of header guard). > > Therefore extracting 1 macro into separate file without obvious future > growth is a pessimisation.
You are looking at it at the wrong side. The opening one file inside a single file maybe a way to slow down the compilation, but cleaning up the _headers_ from kernel.h and similar mess is a definite win.
Ingo, for example, unwounded the thread coil for the scheduler code with a significant win. And his work exactly shows why it's right way to go.
> And if you delete #include <array_size.h> from kernel.h and fix all > compile failures (which you aren't doing apparently) backporters will > hate you for life.
It would need some time to have kernel.h to be hanging as is before we can start cleaning the mess our of it. I prefer to kill the whole header or leave there only really _kernel_ parts.
> I've tried to delete kstrtox.h, and even allnoconfig had dozens of > failures.
So, help us and fix them!
-- With Best Regards, Andy Shevchenko
| |