Re: [PATCH] make miniconfig (take 2)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux