#
246cf9c2 |
| 08-Jun-2010 |
Catalin Marinas <catalin.marinas@arm.com> |
kbuild: Warn on selecting symbols with unmet direct dependencies
The "select" statement in Kconfig files allows the enabling of options even if they have unmet direct dependencies (i.e. "depends on"
kbuild: Warn on selecting symbols with unmet direct dependencies
The "select" statement in Kconfig files allows the enabling of options even if they have unmet direct dependencies (i.e. "depends on" expands to "no"). Currently, the "depends on" clauses are used in calculating the visibility but they do not affect the reverse dependencies in any way.
The patch introduces additional tracking of the "depends on" statements and prints a warning on selecting an option if its direct dependencies are not met.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Michal Marek <mmarek@suse.cz>
show more ...
|
#
e66f25d7 |
| 13-Jan-2010 |
Andi Kleen <andi@firstfloor.org> |
Improve kconfig symbol hashing
While looking for something else I noticed that the symbol hash function used by kconfig is quite poor. It doesn't use any of the standard hash techniques but simply a
Improve kconfig symbol hashing
While looking for something else I noticed that the symbol hash function used by kconfig is quite poor. It doesn't use any of the standard hash techniques but simply adds up the string and then uses power of two masking, which is both known to perform poorly.
The current x86 kconfig has over 7000 symbols.
When I instrumented it showed that the minimum hash chain length was 16 and a significant number of them was over 30.
It didn't help that the hash table size was only 256 buckets.
This patch increases the hash table size to a larger prime and switches to a FNV32 hash. I played around with a couple of hash functions, but that one seemed to perform best with reasonable hash table sizes.
Increasing the hash table size even further didn't seem like a good idea, because there are a couple of global walks which walk the complete hash table.
I also moved the unnamed bucket to 0. It's still the longest of all the buckets (44 entries), but hopefully it's not often hit except for the global walk which doesn't care.
The result is a much nicer distribution: (first column bucket length, second number of buckets with that length)
1: 3505 2: 1236 3: 294 4: 52 5: 3 47: 1 <--- this is the unnamed symbols bucket
There are still some 5+ buckets, but increasing the hash table even more would be likely not worth it.
This also cleans up the code slightly by removing hard coded magic numbers.
I didn't notice a big performance difference either way on my Nehalem system, but I presume it'll help somewhat on slower systems.
Signed-off-by: Andi Kleen <ak@linux.intel.com> Signed-off-by: Michal Marek <mmarek@suse.cz>
show more ...
|
#
cf82607a |
| 26-Dec-2008 |
Sam Ravnborg <sam@ravnborg.org> |
kconfig: struct property commented
No functional changes
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
|
#
5b2cf365 |
| 26-Dec-2008 |
Sam Ravnborg <sam@ravnborg.org> |
kconfig: add comments to symbol flags
No functional changes - only comments.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
|
#
eaa2a874 |
| 26-Dec-2008 |
Sam Ravnborg <sam@ravnborg.org> |
kconfig: explain symbol value defaults
Added a few comments - no functional change.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
|
#
93449082 |
| 14-Jan-2008 |
Roman Zippel <zippel@linux-m68k.org> |
kconfig: environment symbol support
Add the possibility to import a value from the environment into kconfig via the option syntax. Beside flexibility this has the advantage providing proper dependen
kconfig: environment symbol support
Add the possibility to import a value from the environment into kconfig via the option syntax. Beside flexibility this has the advantage providing proper dependencies. Documented the options syntax.
Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
show more ...
|
#
7a962923 |
| 14-Jan-2008 |
Roman Zippel <zippel@linux-m68k.org> |
kconfig: explicitly introduce expression list
Rename E_CHOICE to E_LIST to explicitly add support for expression lists. Add a helper macro expr_list_for_each_sym to more easily iterate over the list
kconfig: explicitly introduce expression list
Rename E_CHOICE to E_LIST to explicitly add support for expression lists. Add a helper macro expr_list_for_each_sym to more easily iterate over the list.
Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
show more ...
|
#
de83cf14 |
| 07-Jan-2008 |
Sam Ravnborg <sam@ravnborg.org> |
kconfig: delete unused FILE_ and SYMBOL_ flags
The *_PRINTED flags were never used - so delete them. Do we need them later then we can re-add them.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc
kconfig: delete unused FILE_ and SYMBOL_ flags
The *_PRINTED flags were never used - so delete them. Do we need them later then we can re-add them.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Roman Zippel <zippel@linux-m68k.org>
show more ...
|
#
d6ee3576 |
| 07-Jan-2008 |
Sam Ravnborg <sam@ravnborg.org> |
kconfig: rename E_OR & friends to avoid name clash
We had macros named the same as a set of enumeration values. It is legal code but very confusing to read - so rename the macros from E_* to EXPR_*
kconfig: rename E_OR & friends to avoid name clash
We had macros named the same as a set of enumeration values. It is legal code but very confusing to read - so rename the macros from E_* to EXPR_*
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Roman Zippel <zippel@linux-m68k.org>
show more ...
|
#
1edf1c00 |
| 20-Jul-2007 |
Sam Ravnborg <sam@ravnborg.org> |
kconfig: remove unused members from struct symbol
dep and dep2 in struct symbol was unused - remove them.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Roman Zippel <zippel@linux-m68k.org>
|
#
03d29122 |
| 20-Jul-2007 |
Sam Ravnborg <sam@ravnborg.org> |
kconfig: attach help text to menus
Roman Zippel wrote: > A simple example would be > help texts, right now they are per symbol, but they should really be per > menu, so archs can provide different h
kconfig: attach help text to menus
Roman Zippel wrote: > A simple example would be > help texts, right now they are per symbol, but they should really be per > menu, so archs can provide different help texts for something.
This patch does this and at the same time introduce a few API funtions used to access the help text.
The relevant api functions are introduced in the various frontends.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Roman Zippel <zippel@linux-m68k.org>
show more ...
|
#
face4374 |
| 09-Jun-2006 |
Roman Zippel <zippel@linux-m68k.org> |
kconfig: add defconfig_list/module option
This makes it possible to change two options which were hardcoded sofar. 1. Any symbol can now take the role of CONFIG_MODULES 2. The more useful option is
kconfig: add defconfig_list/module option
This makes it possible to change two options which were hardcoded sofar. 1. Any symbol can now take the role of CONFIG_MODULES 2. The more useful option is to change the list of default file names, which kconfig uses to load the base configuration if .config isn't available.
Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
show more ...
|
#
2e3646e5 |
| 09-Jun-2006 |
Roman Zippel <zippel@linux-m68k.org> |
kconfig: integrate split config into silentoldconfig
Now that kconfig can load multiple configurations, it becomes simple to integrate the split config step, by simply comparing the new .config file
kconfig: integrate split config into silentoldconfig
Now that kconfig can load multiple configurations, it becomes simple to integrate the split config step, by simply comparing the new .config file with the old auto.conf (and then saving the new auto.conf). A nice side effect is that this saves a bit of disk space and cache, as no data needs to be read from or saved into the splitted config files anymore (e.g. include/config is now 648KB instead of 5.2MB).
Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
show more ...
|
#
669bfad9 |
| 09-Jun-2006 |
Roman Zippel <zippel@linux-m68k.org> |
kconfig: allow loading multiple configurations
Extend conf_read_simple() so it can load multiple configurations.
Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <ak
kconfig: allow loading multiple configurations
Extend conf_read_simple() so it can load multiple configurations.
Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
show more ...
|
#
0c1822e6 |
| 09-Jun-2006 |
Roman Zippel <zippel@linux-m68k.org> |
kconfig: allow multiple default values per symbol
Extend struct symbol to allow storing multiple default values, which can be used to hold multiple configurations.
Signed-off-by: Roman Zippel <zipp
kconfig: allow multiple default values per symbol
Extend struct symbol to allow storing multiple default values, which can be used to hold multiple configurations.
Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
show more ...
|
#
c0e150ac |
| 09-Jun-2006 |
Roman Zippel <zippel@linux-m68k.org> |
kconfig: remove SYMBOL_{YES,MOD,NO}
The SYMBOL_{YES,MOD,NO} are not really used anymore (they were more used be the cml1 converter), so just remove them.
Signed-off-by: Roman Zippel <zippel@linux-m
kconfig: remove SYMBOL_{YES,MOD,NO}
The SYMBOL_{YES,MOD,NO} are not really used anymore (they were more used be the cml1 converter), so just remove them.
Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
show more ...
|
#
3f04e7dd |
| 09-Nov-2005 |
David Gibson <david@gibson.dropbear.id.au> |
[PATCH] kconfig: Fix Kconfig performance bug
When doing its recursive dependency check, scripts/kconfig/conf uses the flag SYMBOL_CHECK_DONE to avoid rechecking a symbol it has already checked. Howe
[PATCH] kconfig: Fix Kconfig performance bug
When doing its recursive dependency check, scripts/kconfig/conf uses the flag SYMBOL_CHECK_DONE to avoid rechecking a symbol it has already checked. However, that flag is only set at the top level, so if a symbol is first encountered as a dependency of another symbol it will be rechecked every time it is encountered until it's encountered at the top level.
This patch adjusts the flag setting so that each symbol will only be checked once, regardless of whether it is first encountered at the top level, or while recursing down from another symbol. On complex configurations, this vastly speeds up scripts/kconfig/conf. The config in the powerpc merge tree is particularly bad: this patch reduces the time for 'scripts/kconfig/conf -o arch/powerpc/Kconfig' by a factor of 40 on a G5. That's even including the time to print the config, so the speedup in the actual checking is more likely 2 or 3 orders of magnitude.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Cc: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
show more ...
|
#
1da177e4 |
| 16-Apr-2005 |
Linus Torvalds <torvalds@ppc970.osdl.org> |
Linux-2.6.12-rc2
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in
Linux-2.6.12-rc2
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it.
Let it rip!
show more ...
|