Messages in this thread | | | From | Rob Landley <> | Subject | Re: [PATCH] make miniconfig (take 2) | Date | Sat, 26 Nov 2005 09:51:38 -0600 |
| |
On Saturday 26 November 2005 08:19, Pavel Machek wrote: > > Also, zappable lines tend to clump, so if it gets 2 zappable lines in a > > row it could speculatively try zapping 2 at a time to see if it makes > > faster progress. (The down side is the extra allnoconfig runs for > > backing up and iterating through on failures to see _which_ ones made a > > difference. That's not low-hanging fruit, may not be edible at all...) > > Can't you just filter out all the comments beforehand?
The problem is that the comments aren't all comments. The # CONFIG_BLAH is not set comments are actually like negative dentries specifying "CONFIG_BLAH=n", and otherwise it's unspecified which means you get the default. (They look like comments, but they have meaning and yanking them can change behavior.)
This is noticeable if you feed a script through oldconfig, where everything that isn't specified one way or the other gets the default setting (which might as well be from randconfig). But even allnoconfig has a lot of "y" entries in the resulting script, and some of them (like CONFIG_KALLSYMS or CONFIG_DEBUG_BUGVERBOSE) we may very well want to switch off.
Try this:
make allnoconfig grep -v "^#" .config | grep -v "^$" > .config2 mv .config2 .config make oldconfig
On the other hand, if you instead mv .config2 to allno.config and make allnoconfig, you get something that matches the original .config back. And I haven't seen an "# blah is not set" line wind up in a miniconfig yet.
My understanding is that if you set the right symbol to open up the menu that a symbol you want to switch off is in, then not specifying a symbol in that menu leads allnoconfig to switch it off, since otherwise it would have to be specified. It's only closed menus that get the defaults. So if you originally created your .config through menuconfig, the "# is not set" lines should never be essential. I think. (By the way: note that the contents of a lot of submenus never actually get written out at all if their guard symbol is switched off. Look at firewire or i2o support in allnoconfig's .config...)
(I spent a lot of time poking at this to make miniconfig work back under 2.6.10. And the busybox CONFIG_ vs ENABLE_ stuff, too...)
Then again I still haven't figured out why running the shrinker script against allnoconfig's config insists that CONFIG_PM=y still has to be set or the behavior changes. Something I need to look at one of these days...
In any case, 99% of the time we should be able to ignore the comments and that lets us skip large chunks of config and should be a noticeable speedup. A fallback to handle cases where the "is not set" comments change stuff may be sheer paranoia, but I can't be sure it's never necessary just yet...
> Pavel
Rob -- Steve Ballmer: Innovation! Inigo Montoya: You keep using that word. I do not think it means what you think it means. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |