Skip to content
Snippets Groups Projects
  1. Apr 14, 2010
  2. Feb 02, 2010
    • Andi Kleen's avatar
      Improve kconfig symbol hashing · e66f25d7
      Andi Kleen authored
      
      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: default avatarAndi Kleen <ak@linux.intel.com>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
      e66f25d7
    • nir.tzachar@gmail.com's avatar
      kconfig: new configuration interface (nconfig) · 692d97c3
      nir.tzachar@gmail.com authored
      
      This patch was inspired by the kernel projects page, where an ncurses
      replacement for menuconfig was mentioned (by Sam Ravnborg).
      
      Building on menuconfig, this patch implements a more modern look
      interface using ncurses and ncurses' satellite libraries (menu, panel,
      form). The implementation does not depend on lxdialog, which is
      currently distributed with the kernel.
      
      Signed-off-by: default avatarNir Tzachar <nir.tzachar@gmail.com>
      Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
      692d97c3
  3. Nov 15, 2009
  4. Oct 15, 2009
    • Josh Triplett's avatar
      kconfig: Make zconf.y work with current bison · 1456edbb
      Josh Triplett authored
      
      zconf.y includes zconf.hash.c from the initial code section.
      zconf.hash.c references the token constants from zconf.y.  However,
      current bison defines the token constants after the initial code
      section, making zconf.hash.c fail to compile.  Move the include of
      zconf.hash.c later in zconf.y, so bison puts it after the token
      constants.
      
      Signed-off-by: default avatarJosh Triplett <josh@joshtriplett.org>
      1456edbb
  5. Apr 28, 2008
    • Roman Zippel's avatar
      kconfig: add named choice group · 5a1aa8a1
      Roman Zippel authored
      
      As choice dependency are now fully checked, it's quite easy to add support
      for named choices. This lifts the restriction that a choice value can only
      appear once, although it still has to be within the same group,
      but multiple choices can be joined by giving them a name.
      While at it I cleaned up a little the choice type logic to simplify it a
      bit.
      
      Signed-off-by: default avatarRoman Zippel <zippel@linux-m68k.org>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      5a1aa8a1
  6. Oct 12, 2007
    • Adrian Bunk's avatar
      kconfig: syntax cleanup - drop support for "depends/requires/def_boolean" · 247537b9
      Adrian Bunk authored
      
      Remove the following redundant and never or rarely used kconfig syntax:
      
      - "def_boolean" (same as "def_bool")
      - "requires" (same as "depends on")
      - "depends" (same as "depends on")
      
      This patch contains the code changes and Kconfig updates.
      The shipped files are in next patch to let actual codechange stand out.
      
      Signed-off-by: default avatarAdrian Bunk <bunk@kernel.org>
      Cc: "Randy.Dunlap" <rdunlap@xenotime.net>
      Cc: Bryan Wu <bryan.wu@analog.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Dmitry Torokhov <dtor@mail.ru>
      Cc: "John W. Linville" <linville@tuxdriver.com>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      Cc: Richard Purdie <rpurdie@rpsys.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      247537b9
  7. Jul 25, 2007
    • Sam Ravnborg's avatar
      kconfig: attach help text to menus · 03d29122
      Sam Ravnborg authored
      
      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: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      03d29122
  8. May 06, 2007
    • Sam Ravnborg's avatar
      kconfig: error out if recursive dependencies are found · 5447d34b
      Sam Ravnborg authored
      
      Sample:
      config FOO
      	bool "This is foo"
      	depends on BAR
      
      config BAR
      	bool "This is bar"
      	depends on FOO
      
      This will result in following error message:
      error: found recursive dependency: FOO -> BAR -> FOO
      
      And will then exit with exit code equal 1 so make will stop.
      Inspired by patch from: Adrian Bunk <bunk@stusta.de>
      
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Cc: Adrian Bunk <bunk@stusta.de>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      5447d34b
  9. Dec 13, 2006
  10. Jun 09, 2006
  11. Nov 09, 2005
  12. Jul 28, 2005
  13. Apr 16, 2005
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      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!
      v2.6.12-rc2
      1da177e4
Loading