list: remove prefetching from regular list iterators
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 19 May 2011 21:15:29 +0000 (14:15 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 19 May 2011 21:15:29 +0000 (14:15 -0700)
commite66eed651fd18a961f11cda62f3b5286c8cc4f9f
tree0b86980050e63623b103f1b6378aa3c457f63e87
parent75d65a425c0163d3ec476ddc12b51087217a070c
list: remove prefetching from regular list iterators

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: Ingo Molnar <mingo@elte.hu>
Acked-by: David S. Miller <davem@davemloft.net>
Cc: linux-arch@vger.kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/list.h
include/linux/rculist.h