On Tue, Apr 08, 2025 at 11:27:58AM +0300, Jani Nikula wrote: > On Mon, 07 Apr 2025, Jason Gunthorpe <j...@nvidia.com> wrote: > > On Mon, Apr 07, 2025 at 10:17:40AM +0300, Jani Nikula wrote: > > > >> Even with Jason's idea [1], you *still* have to start small and opt-in > >> (i.e. the patch series at hand). You can't just start off by testing > >> every header in one go, because it's a flag day switch. > > > > You'd add something like 'make header_check' that does not run > > automatically. Making it run automatically after everything is fixed > > to keep it fixed would be the flag day change. It is how we have > > managed to introduce other warning levels in the past. > > That approach does not help *me* or drm, i915 and xe in the least. They > are already fixed, and we want a way to keep them fixed. This is how all > of this got started.
I imagine you'd include a way to have the 'make header_check' run on some subset of files only, then use that in your CI for the interm. > Your goal may be to make everything self-contained, but AFAICS there is > no agreement on that goal. As long as there's no buy-in to this, it's > not possible fix everything, it's an unreachable goal. I didn't see that. I saw technical problems with the implementation that was presented. I'd be shocked if there was broad opposition to adding missing includes and forward declaration to most headers. It is a pretty basic C thing. :\ Until someone sends a series trying to add missing includes and forward declarations we can't really know.. > Arguably the situation is similar to W=1 builds. We can't run W=1 in our > CI, because of failures outside of the drivers we maintain. You can run W=1 using a subdirectory build just for your drivers. > Even if I put in the effort to generalize this the way you prefer, I > guess a few kernel releases from now, it still would not do what we have > already in place in i915 and xe. And, no offense, but I think your > proposal is technically vague to start with. I really don't know where > the goal posts are. Well, I spent a little bit and wrote a mock up and did some looking at how much work is here. Focusing on allnoconfig as a starting point, 293 out of 1858 headers failed to build, and with some fiddling I got it down to 150, a couple of hours would get patches made for the vast majority of it. https://github.com/jgunthorpe/linux/commits/hdrcheck/ I don't see the same dire view as you do, it seems reasonable and doable. Jason