1. 20 5月, 2011 4 次提交
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus · 98a38a5d
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
        params.c: Use new strtobool function to process boolean inputs
        debugfs: move to new strtobool
        Add a strtobool function matching semantics of existing in kernel equivalents
        modpost: Update 64k section support for binutils 2.18.50
        module: Use binary search in lookup_symbol()
        module: Use the binary search for symbols resolution
        lib: Add generic binary search function to the kernel.
        module: Sort exported symbols
        module: each_symbol_section instead of each_symbol
        module: split unset_section_ro_nx function.
        module: undo module RONX protection correctly.
        module: zero mod->init_ro_size after init is freed.
        minor ANSI prototype sparse fix
        module: reorder kparam_array to remove alignment padding on 64 bit builds
        module: remove 64 bit alignment padding from struct module with CONFIG_TRACE*
        module: do not hide __modver_version_show declaration behind ifdef
        module: deal with alignment issues in built-in module versions
      98a38a5d
    • L
      Merge branch 'docs-move' of git://git.kernel.org/pub/scm/linux/kernel/git/rdunlap/linux-docs · 7663164f
      Linus Torvalds 提交于
      * 'docs-move' of git://git.kernel.org/pub/scm/linux/kernel/git/rdunlap/linux-docs:
        Correct occurrences of - Documentation/kvm/ to Documentation/virtual/kvm - Documentation/uml/ to Documentation/virtual/uml - Documentation/lguest/ to Documentation/virtual/lguest throughout the kernel source tree.
        Add a 00-INDEX file to Documentation/virtual Remove uml from the top level 00-INDEX file.
        Move kvm, uml, and lguest subdirectories under a common "virtual" directory, I.E:
      7663164f
    • L
      list: remove prefetching from regular list iterators · e66eed65
      Linus Torvalds 提交于
      This is removes the use of software prefetching from the regular list
      iterators.  We don't want it.  If you do want to prefetch in some
      iterator of yours, go right ahead.  Just don't expect the iterator to do
      it, since normally the downsides are bigger than the upsides.
      
      It also replaces <linux/prefetch.h> with <linux/const.h>, because the
      use of LIST_POISON ends up needing it.  <linux/poison.h> is sadly not
      self-contained, and including prefetch.h just happened to hide that.
      
      Suggested by David Miller (networking has a lot of regular lists that
      are often empty or a single entry, and prefetching is not going to do
      anything but add useless instructions).
      Acked-by: NIngo Molnar <mingo@elte.hu>
      Acked-by: NDavid S. Miller <davem@davemloft.net>
      Cc: linux-arch@vger.kernel.org
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e66eed65
    • L
      hlist: remove software prefetching in hlist iterators · 75d65a42
      Linus Torvalds 提交于
      They not only increase the code footprint, they actually make things
      slower rather than faster.  On internationally acclaimed benchmarks
      ("make -j16" on an already fully built kernel source tree) the hlist
      prefetching slows down the build by up to 1%.
      
      (Almost all of it comes from hlist_for_each_entry_rcu() as used by
      avc_has_perm_noaudit(), which is very hot due to all the pathname
      lookups to see if there is anything to do).
      
      The cause seems to be two-fold:
      
       - on at least some Intel cores, prefetch(NULL) ends up with some
         microarchitectural stall due to the TLB miss that it incurs.  The
         hlist case triggers this very commonly, since the NULL pointer is the
         last entry in the list.
      
       - the prefetch appears to cause more D$ activity, probably because it
         prefetches hash list entries that are never actually used (because we
         ended the search early due to a hit).
      
      Regardless, the numbers clearly say that the implicit prefetching is
      simply a bad idea.  If some _particular_ user of the hlist iterators
      wants to prefetch the next list entry, they can do so themselves
      explicitly, rather than depend on all list iterators doing so
      implicitly.
      Acked-by: NIngo Molnar <mingo@elte.hu>
      Acked-by: NDavid S. Miller <davem@davemloft.net>
      Cc: linux-arch@vger.kernel.org
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      75d65a42
  2. 19 5月, 2011 23 次提交
  3. 18 5月, 2011 13 次提交