linux/lib
Jesse Gross 704f15ddb5 flex_array: avoid divisions when accessing elements
On most architectures division is an expensive operation and accessing an
element currently requires four of them.  This performance penalty
effectively precludes flex arrays from being used on any kind of fast
path.  However, two of these divisions can be handled at creation time and
the others can be replaced by a reciprocal divide, completely avoiding
real divisions on access.

[eparis@redhat.com: rebase on top of changes to support 0 len elements]
[eparis@redhat.com: initialize part_nr when array fits entirely in base]
Signed-off-by: Jesse Gross <jesse@nicira.com>
Signed-off-by: Eric Paris <eparis@redhat.com>
Cc: Dave Hansen <dave@linux.vnet.ibm.com>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-05-26 17:12:33 -07:00
..
lzo
raid6
reed_solomon
xz XZ decompressor: Fix decoding of empty LZMA2 streams 2011-05-02 08:46:12 -07:00
zlib_deflate zlib: slim down zlib_deflate() workspace when possible 2011-03-22 17:44:17 -07:00
zlib_inflate
.gitignore
argv_split.c
atomic64.c
atomic64_test.c
audit.c audit: support the "standard" <asm-generic/unistd.h> 2011-05-04 14:41:28 -04:00
average.c
bcd.c
bch.c lib: add shared BCH ECC library 2011-03-11 14:25:50 +00:00
bitmap.c bitmap, irq: add smp_affinity_list interface to /proc/irq 2011-05-25 08:39:45 -07:00
bitrev.c
bsearch.c lib: Add generic binary search function to the kernel. 2011-05-19 16:55:27 +09:30
btree.c Fix common misspellings 2011-03-31 11:26:23 -03:00
bug.c
bust_spinlocks.c
check_signature.c
checksum.c
cmdline.c
cpu-notifier-error-inject.c
cpu_rmap.c lib: cpu_rmap: CPU affinity reverse-mapping 2011-01-24 14:51:56 -08:00
cpumask.c
crc-ccitt.c
crc-itu-t.c
crc-t10dif.c
crc7.c
crc16.c
crc32.c
crc32defs.h
ctype.c
debug_locks.c
debugobjects.c debugobjects: Add hint for better object identification 2011-03-08 16:10:38 +01:00
dec_and_lock.c
decompress.c
decompress_bunzip2.c
decompress_inflate.c
decompress_unlzma.c
decompress_unlzo.c
decompress_unxz.c Fix common misspellings 2011-03-31 11:26:23 -03:00
devres.c
div64.c
dma-debug.c dma-debug: print information about leaked entry 2011-04-07 16:31:19 +02:00
dump_stack.c
dynamic_debug.c dynamic_debug: add #include <linux/sched.h> 2011-02-03 15:59:58 -08:00
extable.c
fault-inject.c
find_last_bit.c
find_next_bit.c bitops: introduce CONFIG_GENERIC_FIND_BIT_LE 2011-03-23 19:46:14 -07:00
flex_array.c flex_array: avoid divisions when accessing elements 2011-05-26 17:12:33 -07:00
gcd.c
gen_crc32table.c
genalloc.c lib/genalloc.c: add support for specifying the physical address 2011-05-25 08:39:54 -07:00
halfmd4.c
hexdump.c
hweight.c
idr.c
inflate.c
int_sqrt.c
iomap.c
iomap_copy.c
iommu-helper.c
ioremap.c
irq_regs.c
is_single_threaded.c
kasprintf.c
Kconfig Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-linus-1 2011-03-25 17:41:20 +02:00
Kconfig.debug lib: consolidate DEBUG_STACK_USAGE option 2011-05-25 08:39:54 -07:00
Kconfig.kgdb
Kconfig.kmemcheck
klist.c
kobject.c
kobject_uevent.c
kref.c
kstrtox.c lib: add kstrto*_from_user() 2011-05-25 08:39:52 -07:00
lcm.c
libcrc32c.c
list_debug.c Expand CONFIG_DEBUG_LIST to several other list operations 2011-02-18 11:32:28 -08:00
list_sort.c
locking-selftest-hardirq.h
locking-selftest-mutex.h
locking-selftest-rlock-hardirq.h
locking-selftest-rlock-softirq.h
locking-selftest-rlock.h
locking-selftest-rsem.h
locking-selftest-softirq.h
locking-selftest-spin-hardirq.h
locking-selftest-spin-softirq.h
locking-selftest-spin.h
locking-selftest-wlock-hardirq.h
locking-selftest-wlock-softirq.h
locking-selftest-wlock.h
locking-selftest-wsem.h
locking-selftest.c
lru_cache.c lru_cache: use correct type in sizeof for allocation 2011-05-25 08:39:52 -07:00
Makefile lib: Add generic binary search function to the kernel. 2011-05-19 16:55:27 +09:30
nlattr.c net: fix nla_policy_len to actually _iterate_ over the policy 2011-02-28 12:38:25 -08:00
parser.c Fix common misspellings 2011-03-31 11:26:23 -03:00
percpu_counter.c
plist.c plist: Add priority list test 2011-03-11 15:14:48 -05:00
prio_heap.c
prio_tree.c
proportions.c
radix-tree.c radix_tree: radix_tree_gang_lookup_tag_slot() may never return 2011-01-26 10:50:04 +10:00
random32.c
ratelimit.c
rational.c
rbtree.c Export the augmented rbtree helper functions 2011-01-28 12:16:59 +10:00
reciprocal_div.c
rwsem-spinlock.c
rwsem.c rwsem: Remove redundant asmregparm annotation 2011-01-27 12:30:40 +01:00
scatterlist.c
sha1.c
show_mem.c arch, mm: filter disallowed nodes from arch specific show_mem functions 2011-05-25 08:39:03 -07:00
smp_processor_id.c
sort.c
spinlock_debug.c
string.c Add a strtobool function matching semantics of existing in kernel equivalents 2011-05-19 16:55:28 +09:30
string_helpers.c
swiotlb.c swiotlb: fix wrong panic 2011-02-25 15:07:36 -08:00
syscall.c
test-kstrtox.c kstrtox: fix compile warnings in test 2011-04-14 16:06:54 -07:00
textsearch.c textsearch: doc - fix spelling in lib/textsearch.c. 2011-01-24 23:33:30 -08:00
timerqueue.c Fix common misspellings 2011-03-31 11:26:23 -03:00
ts_bm.c
ts_fsm.c
ts_kmp.c
uuid.c
vsprintf.c lib/vsprintf.c: fix interaction of kasprintf() and vsnprintf() when using %pV 2011-05-25 08:39:47 -07:00