1. 23 5月, 2011 14 次提交
  2. 22 5月, 2011 2 次提交
  3. 21 5月, 2011 2 次提交
  4. 20 5月, 2011 5 次提交
    • E
      macvlan: remove one synchronize_rcu() call · 449f4544
      Eric Dumazet 提交于
      When one macvlan device is dismantled, we can avoid one
      synchronize_rcu() call done after deletion from hash list, since caller
      will perform a synchronize_net() call after its ndo_stop() call.
      
      Add a new netdev->dismantle field to signal this dismantle intent.
      
      Reduces RTNL hold time.
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      CC: Patrick McHardy <kaber@trash.net>
      CC: Ben Greear <greearb@candelatech.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      449f4544
    • S
      signal.h need a definition of struct task_struct · 1477fcc2
      Stephen Rothwell 提交于
      This fixes these build errors on powerpc:
      
        In file included from arch/powerpc/mm/fault.c:18:
        include/linux/signal.h:239: error: 'struct task_struct' declared inside parameter list
        include/linux/signal.h:239: error: its scope is only this definition or declaration, which is probably not what you want
        include/linux/signal.h:240: error: 'struct task_struct' declared inside parameter list
        ..
      
      Exposed by commit e66eed65 ("list: remove prefetching from regular
      list iterators"), which removed the include of <linux/prefetch.h> from
      <linux/list.h>.
      
      Without that, linux/signal.h no longer accidentally got the declaration
      of 'struct task_struct'.
      
      Fix by properly declaring the struct, rather than introducing any new
      header file dependency.
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1477fcc2
    • K
      libata: Power off empty ports · 8a745f1f
      Kristen Carlson Accardi 提交于
      Give users the option of completely powering off unoccupied
      SATA ports using the existing min_power link_power_management_policy
      option.  When the use selects this option on an empty port, we
      will power the port off by setting DET to off.  For occupied ports,
      behavior is unchanged.
      Signed-off-by: NKristen Carlson Accardi <kristen@linux.intel.com>
      Signed-off-by: NJeff Garzik <jgarzik@pobox.com>
      8a745f1f
    • 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
  5. 19 5月, 2011 17 次提交