: I use a minimum config because I want to be able to test a kernel quickly, especially if some generic header file has changed.
Especially when traveling with a laptop, the difference between compiling a full distro kernel and compiling a working minimum one is huge. But even at my main desktop, I'd rather compile a new kernel in a couple of minutes (even if some core header file changed - just a couple of seconds if only a couple of files need to be recompiled), and reboot it quickly.
There's no point in compiling code that I can't test on the hardware anyway, so building several hundred modules that don't ever get loaded is just a waste of time.
I do "make allmodconfig" to build every module every once in a while, just to check the compile. But then I do it while doing something else (again, particularly when traveling with just a laptop).
But quite frankly, even then I think the "does it compile" kind of recompile is much better off done by linux-next etc automation. Why would I just waste time on crap like that?
I also don't bother with CONFIG_DEBUG_INFO and things like list debugging etc. The debug info does nothing good: it makes the build much slower, and the assembly listing gets unreadable from all the debug noise. I'll turn on the debug options (page-alloc, list debugging etc) if I actually see problems.
So the distro kernels are bloated in many ways, not just "tons of modules I will never ever use". They enable crazy features that make sense only because people don't recompile their kernel (so the debug stuff has to be there, because people won't do the "turn on debug options and recompile if you start seeing issues").
I would recommend the minimum config to anybody
who does real kernel development.