Clement Courbet
0ade34c370
lib: optimize cpumask_next_and()
We've measured that we spend ~0.6% of sys cpu time in cpumask_next_and().
It's essentially a joined iteration in search for a non-zero bit, which is
currently implemented as a lookup join (find a nonzero bit on the lhs,
lookup the rhs to see if it's set there).
Implement a direct join (find a nonzero bit on the incrementally built
join). Also add generic bitmap benchmarks in the new `test_find_bit`
module for new function (see `find_next_and_bit` in [2] and [3] below).
For cpumask_next_and, direct benchmarking shows that it's 1.17x to 14x
faster with a geometric mean of 2.1 on 32 CPUs [1]. No impact on memory
usage. Note that on Arm, the new pure-C implementation still outperforms
the old one that uses a mix of C and asm (`find_next_bit`) [3].
[1] Approximate benchmark code:
```
unsigned long src1p[nr_cpumask_longs] = {pattern1};
unsigned long src2p[nr_cpumask_longs] = {pattern2};
for (/*a bunch of repetitions*/) {
for (int n = -1; n <= nr_cpu_ids; ++n) {
asm volatile("" : "+rm"(src1p)); // prevent any optimization
asm volatile("" : "+rm"(src2p));
unsigned long result = cpumask_next_and(n, src1p, src2p);
asm volatile("" : "+rm"(result));
}
}
```
Results:
pattern1 pattern2 time_before/time_after
0x0000ffff 0x0000ffff 1.65
0x0000ffff 0x00005555 2.24
0x0000ffff 0x00001111 2.94
0x0000ffff 0x00000000 14.0
0x00005555 0x0000ffff 1.67
0x00005555 0x00005555 1.71
0x00005555 0x00001111 1.90
0x00005555 0x00000000 6.58
0x00001111 0x0000ffff 1.46
0x00001111 0x00005555 1.49
0x00001111 0x00001111 1.45
0x00001111 0x00000000 3.10
0x00000000 0x0000ffff 1.18
0x00000000 0x00005555 1.18
0x00000000 0x00001111 1.17
0x00000000 0x00000000 1.25
-----------------------------
geo.mean 2.06
[2] test_find_next_bit, X86 (skylake)
[ 3913.477422] Start testing find_bit() with random-filled bitmap
[ 3913.477847] find_next_bit: 160868 cycles, 16484 iterations
[ 3913.477933] find_next_zero_bit: 169542 cycles, 16285 iterations
[ 3913.478036] find_last_bit: 201638 cycles, 16483 iterations
[ 3913.480214] find_first_bit: 4353244 cycles, 16484 iterations
[ 3913.480216] Start testing find_next_and_bit() with random-filled
bitmap
[ 3913.481074] find_next_and_bit: 89604 cycles, 8216 iterations
[ 3913.481075] Start testing find_bit() with sparse bitmap
[ 3913.481078] find_next_bit: 2536 cycles, 66 iterations
[ 3913.481252] find_next_zero_bit: 344404 cycles, 32703 iterations
[ 3913.481255] find_last_bit: 2006 cycles, 66 iterations
[ 3913.481265] find_first_bit: 17488 cycles, 66 iterations
[ 3913.481266] Start testing find_next_and_bit() with sparse bitmap
[ 3913.481272] find_next_and_bit: 764 cycles, 1 iterations
[3] test_find_next_bit, arm (v7 odroid XU3).
[ 267.206928] Start testing find_bit() with random-filled bitmap
[ 267.214752] find_next_bit: 4474 cycles, 16419 iterations
[ 267.221850] find_next_zero_bit: 5976 cycles, 16350 iterations
[ 267.229294] find_last_bit: 4209 cycles, 16419 iterations
[ 267.279131] find_first_bit: 1032991 cycles, 16420 iterations
[ 267.286265] Start testing find_next_and_bit() with random-filled
bitmap
[ 267.302386] find_next_and_bit: 2290 cycles, 8140 iterations
[ 267.309422] Start testing find_bit() with sparse bitmap
[ 267.316054] find_next_bit: 191 cycles, 66 iterations
[ 267.322726] find_next_zero_bit: 8758 cycles, 32703 iterations
[ 267.329803] find_last_bit: 84 cycles, 66 iterations
[ 267.336169] find_first_bit: 4118 cycles, 66 iterations
[ 267.342627] Start testing find_next_and_bit() with sparse bitmap
[ 267.356919] find_next_and_bit: 91 cycles, 1 iterations
[courbet@google.com: v6]
Link: http://lkml.kernel.org/r/20171129095715.23430-1-courbet@google.com
[geert@linux-m68k.org: m68k/bitops: always include <asm-generic/bitops/find.h>]
Link: http://lkml.kernel.org/r/1512556816-28627-1-git-send-email-geert@linux-m68k.org
Link: http://lkml.kernel.org/r/20171128131334.23491-1-courbet@google.com
Signed-off-by: Clement Courbet <courbet@google.com>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Yury Norov <ynorov@caviumnetworks.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
2018-02-06 18:32:44 -08:00 |
| .. |
|
842
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
fonts
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
lz4
|
lib/lz4: make arrays static const, reduces object code size
|
2017-10-03 17:54:25 -07:00 |
|
lzo
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
mpi
|
lib/mpi: Fix umul_ppmm() for MIPS64r6
|
2017-12-22 19:39:09 +11:00 |
|
raid6
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
reed_solomon
|
|
|
|
xz
|
lib/xz: Add fall-through comments to a switch statement
|
2017-10-12 15:10:12 +02:00 |
|
zlib_deflate
|
|
|
|
zlib_inflate
|
lib/zlib_inflate/inftrees.c: fix potential buffer overflow
|
2017-05-08 17:15:12 -07:00 |
|
zstd
|
lib: Add zstd modules
|
2017-08-15 09:02:08 -07:00 |
|
.gitignore
|
|
|
|
argv_split.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
ashldi3.c
|
move libgcc.h to include/linux
|
2017-12-01 13:09:40 -08:00 |
|
ashrdi3.c
|
move libgcc.h to include/linux
|
2017-12-01 13:09:40 -08:00 |
|
asn1_decoder.c
|
ASN.1: check for error from ASN1_OP_END__ACT actions
|
2017-12-08 15:13:27 +00:00 |
|
assoc_array.c
|
lib/assoc_array: Remove smp_read_barrier_depends()
|
2017-12-04 10:52:56 -08:00 |
|
atomic64.c
|
locking/atomic: Implement atomic{,64,_long}_fetch_{add,sub,and,andnot,or,xor}{,_relaxed,_acquire,_release}()
|
2016-06-16 10:48:32 +02:00 |
|
atomic64_test.c
|
lib/atomic64_test.c: add a test that atomic64_inc_not_zero() returns an int
|
2017-07-14 15:05:13 -07:00 |
|
audit.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
bcd.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
bch.c
|
|
|
|
bitmap.c
|
bitmap: replace bitmap_{from,to}_u32array
|
2018-02-06 18:32:44 -08:00 |
|
bitrev.c
|
|
|
|
bsearch.c
|
lib/bsearch.c: micro-optimize pivot position calculation
|
2017-07-10 16:32:35 -07:00 |
|
btree.c
|
|
|
|
bucket_locks.c
|
spinlock: Add library function to allocate spinlock buckets array
|
2017-12-11 09:58:39 -05:00 |
|
bug.c
|
bug: define the "cut here" string in a single place
|
2017-11-17 16:10:01 -08:00 |
|
build_OID_registry
|
|
|
|
bust_spinlocks.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
chacha20.c
|
crypto: chacha20 - use rol32() macro from bitops.h
|
2018-01-12 23:03:01 +11:00 |
|
check_signature.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
checksum.c
|
ipv4: Update parameters for csum_tcpudp_magic to their original types
|
2016-03-13 23:55:13 -04:00 |
|
clz_ctz.c
|
|
|
|
clz_tab.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
cmdline.c
|
lib/cmdline.c: remove meaningless comment
|
2017-09-08 18:26:49 -07:00 |
|
cmpdi2.c
|
move libgcc.h to include/linux
|
2017-12-01 13:09:40 -08:00 |
|
compat_audit.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
cordic.c
|
|
|
|
cpu_rmap.c
|
|
|
|
cpumask.c
|
lib: optimize cpumask_next_and()
|
2018-02-06 18:32:44 -08:00 |
|
crc-ccitt.c
|
lib/crc-ccitt: Add CCITT-FALSE CRC16 variant
|
2018-01-08 10:08:33 +00:00 |
|
crc-itu-t.c
|
|
|
|
crc-t10dif.c
|
|
|
|
crc4.c
|
docs: clean up and add rest of CRC functions to kernel-api.rst
|
2017-09-26 15:01:20 -06:00 |
|
crc7.c
|
|
|
|
crc8.c
|
docs: clean up and add rest of CRC functions to kernel-api.rst
|
2017-09-26 15:01:20 -06:00 |
|
crc16.c
|
|
|
|
crc32.c
|
docs: clean up and add rest of CRC functions to kernel-api.rst
|
2017-09-26 15:01:20 -06:00 |
|
crc32defs.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
crc32test.c
|
lib: add module support to crc32 tests
|
2017-02-24 17:46:57 -08:00 |
|
ctype.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
debug_info.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
debug_locks.c
|
|
|
|
debugobjects.c
|
debugobjects: Make kmemleak ignore debug objects
|
2017-08-14 16:51:01 +02:00 |
|
dec_and_lock.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
decompress.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
decompress_bunzip2.c
|
|
|
|
decompress_inflate.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
decompress_unlz4.c
|
lib/decompress_unlz4: change module to work with new LZ4 module version
|
2017-02-24 17:46:57 -08:00 |
|
decompress_unlzma.c
|
|
|
|
decompress_unlzo.c
|
|
|
|
decompress_unxz.c
|
|
|
|
devres.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
digsig.c
|
lib/digsig: fix dereference of NULL user_key_payload
|
2017-10-12 17:16:40 +01:00 |
|
div64.c
|
A relatively calm cycle for the docs tree again.
|
2017-11-13 08:25:06 -08:00 |
|
dma-debug.c
|
lib/dma-debug.c: fix incorrect pfn calculation
|
2017-11-17 16:10:00 -08:00 |
|
dma-direct.c
|
dma-direct: reject too small dma masks
|
2018-01-15 09:35:15 +01:00 |
|
dma-virt.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
dump_stack.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
dynamic_debug.c
|
dynamic-debug-howto: fix optional/omitted ending line number to be LARGE instead of 0
|
2017-11-17 16:10:01 -08:00 |
|
dynamic_queue_limits.c
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
|
2017-11-15 11:56:19 -08:00 |
|
earlycpio.c
|
lib/cpio: Make find_cpio_data()'s offset arg optional
|
2016-06-08 11:04:19 +02:00 |
|
error-inject.c
|
error-injection: Add injectable error types
|
2018-01-12 17:33:38 -08:00 |
|
errseq.c
|
errseq: Add to documentation tree
|
2018-01-01 12:40:27 -07:00 |
|
extable.c
|
lib/extable.c: use bsearch() library function in search_extable()
|
2017-07-10 16:32:35 -07:00 |
|
fault-inject.c
|
fault-inject: fix wrong should_fail() decision in task context
|
2017-08-10 15:54:06 -07:00 |
|
fdt.c
|
|
|
|
fdt_empty_tree.c
|
|
|
|
fdt_ro.c
|
|
|
|
fdt_rw.c
|
|
|
|
fdt_strerror.c
|
|
|
|
fdt_sw.c
|
|
|
|
fdt_wip.c
|
|
|
|
find_bit.c
|
lib: optimize cpumask_next_and()
|
2018-02-06 18:32:44 -08:00 |
|
find_bit_benchmark.c
|
lib: optimize cpumask_next_and()
|
2018-02-06 18:32:44 -08:00 |
|
flex_array.c
|
|
|
|
flex_proportions.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
gcd.c
|
lib/gcd: add kernel-doc notation
|
2017-10-07 10:45:14 -06:00 |
|
gen_crc32table.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
genalloc.c
|
lib/genalloc.c: make the avail variable an atomic_long_t
|
2017-11-17 16:10:02 -08:00 |
|
glob.c
|
lib: add module support to glob tests
|
2017-02-24 17:46:57 -08:00 |
|
globtest.c
|
lib: add module support to glob tests
|
2017-02-24 17:46:57 -08:00 |
|
hexdump.c
|
lib/hexdump.c: return -EINVAL in case of error in hex2bin()
|
2017-09-08 18:26:49 -07:00 |
|
hweight.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
idr.c
|
mm, truncate: do not check mapping for every page being truncated
|
2017-11-15 18:21:06 -08:00 |
|
inflate.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
int_sqrt.c
|
lib/int_sqrt: adjust comments
|
2017-11-17 16:10:01 -08:00 |
|
interval_tree.c
|
|
|
|
interval_tree_test.c
|
lib/rbtree-test: lower default params
|
2017-11-17 16:10:02 -08:00 |
|
iomap.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
iomap_copy.c
|
lib/iomap_copy.c: add __ioread32_copy()
|
2016-01-20 17:09:18 -08:00 |
|
iommu-common.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
iommu-helper.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
ioremap.c
|
License cleanup: add SPDX license identifiers to some files
|
2017-11-02 10:04:46 -07:00 |
|
iov_iter.c
|
new primitive: iov_iter_for_each_range()
|
2017-10-11 22:36:54 -04:00 |
|
irq_poll.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
irq_regs.c
|
|
|
|
is_single_threaded.c
|
sched/headers: Prepare to move 'init_task' and 'init_thread_union' from <linux/sched.h> to <linux/sched/task.h>
|
2017-03-02 08:42:38 +01:00 |
|
jedec_ddr_data.c
|
|
|
|
kasprintf.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
Kconfig
|
dma mapping changes for Linux 4.16:
|
2018-01-31 11:32:27 -08:00 |
|
Kconfig.debug
|
lib/test_find_bit.c: rename to find_bit_benchmark.c
|
2018-02-06 18:32:44 -08:00 |
|
Kconfig.kasan
|
mm, kasan: switch SLUB to stackdepot, enable memory quarantine for SLUB
|
2016-07-28 16:07:41 -07:00 |
|
Kconfig.kgdb
|
lib: update location of kgdb documentation
|
2017-05-16 08:44:22 -03:00 |
|
Kconfig.ubsan
|
Kconfig: lib/Kconfig.ubsan fix reference to ubsan documentation
|
2016-12-14 16:04:08 -08:00 |
|
kfifo.c
|
|
|
|
klist.c
|
klist: fix starting point removed bug in klist iterators
|
2016-02-07 22:18:47 -08:00 |
|
kobject.c
|
Driver Core updates for 4.16-rc1
|
2018-02-01 10:00:28 -08:00 |
|
kobject_uevent.c
|
Merge 4.15-rc6 into driver-core-next
|
2018-01-02 14:56:51 +01:00 |
|
kstrtox.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
kstrtox.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
lcm.c
|
|
|
|
libcrc32c.c
|
crypto: Work around deallocated stack frame reference gcc bug on sparc.
|
2017-06-08 17:36:03 +08:00 |
|
list_debug.c
|
bug: switch data corruption check to __must_check
|
2017-02-24 17:46:56 -08:00 |
|
list_sort.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
llist.c
|
locking/atomics: COCCINELLE/treewide: Convert trivial ACCESS_ONCE() patterns to READ_ONCE()/WRITE_ONCE()
|
2017-10-25 11:01:08 +02:00 |
|
locking-selftest-hardirq.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
locking-selftest-mutex.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
locking-selftest-rlock-hardirq.h
|
|
|
|
locking-selftest-rlock-softirq.h
|
|
|
|
locking-selftest-rlock.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
locking-selftest-rsem.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
locking-selftest-rtmutex.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
locking-selftest-softirq.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
locking-selftest-spin-hardirq.h
|
|
|
|
locking-selftest-spin-softirq.h
|
|
|
|
locking-selftest-spin.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
locking-selftest-wlock-hardirq.h
|
|
|
|
locking-selftest-wlock-softirq.h
|
|
|
|
locking-selftest-wlock.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
locking-selftest-wsem.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
locking-selftest.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
lockref.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
lru_cache.c
|
|
|
|
lshrdi3.c
|
move libgcc.h to include/linux
|
2017-12-01 13:09:40 -08:00 |
|
Makefile
|
lib/test_find_bit.c: rename to find_bit_benchmark.c
|
2018-02-06 18:32:44 -08:00 |
|
memory-notifier-error-inject.c
|
|
|
|
memweight.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
muldi3.c
|
move libgcc.h to include/linux
|
2017-12-01 13:09:40 -08:00 |
|
net_utils.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
netdev-notifier-error-inject.c
|
|
|
|
nlattr.c
|
netlink: Relax attr validation for fixed length types
|
2017-12-07 14:00:57 -05:00 |
|
nmi_backtrace.c
|
lib/nmi_backtrace.c: fix kernel text address leak
|
2017-11-17 16:10:02 -08:00 |
|
nodemask.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
notifier-error-inject.c
|
|
|
|
notifier-error-inject.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
of-reconfig-notifier-error-inject.c
|
|
|
|
oid_registry.c
|
509: fix printing uninitialized stack memory when OID is empty
|
2017-12-08 15:13:28 +00:00 |
|
once.c
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
|
2017-11-04 09:26:51 +09:00 |
|
parman.c
|
lib: Introduce priority array area manager
|
2017-02-03 16:35:42 -05:00 |
|
parser.c
|
parser: add u64 number parser
|
2016-12-06 10:17:03 +02:00 |
|
pci_iomap.c
|
|
|
|
percpu-refcount.c
|
percpu: READ_ONCE() now implies smp_read_barrier_depends()
|
2017-12-04 10:52:53 -08:00 |
|
percpu_counter.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
percpu_ida.c
|
sched/headers: Prepare to remove the <linux/gfp.h> include from <linux/sched.h>
|
2017-03-02 08:42:34 +01:00 |
|
percpu_test.c
|
|
|
|
plist.c
|
sched/headers: Prepare for new header dependencies before moving code to <linux/sched/clock.h>
|
2017-03-02 08:42:27 +01:00 |
|
pm-notifier-error-inject.c
|
|
|
|
prime_numbers.c
|
lib/prime_numbers: Suppress warn on kmalloc failure
|
2017-01-23 09:17:12 +01:00 |
|
radix-tree.c
|
mm, truncate: do not check mapping for every page being truncated
|
2017-11-15 18:21:06 -08:00 |
|
random32.c
|
treewide: Switch DEFINE_TIMER callbacks to struct timer_list *
|
2017-11-21 15:57:05 -08:00 |
|
ratelimit.c
|
lib/ratelimit.c: use deferred printk() version
|
2017-10-03 17:54:26 -07:00 |
|
rational.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
rbtree.c
|
lib/rbtree,drm/mm: add rbtree_replace_node_cached()
|
2017-12-14 16:00:48 -08:00 |
|
rbtree_test.c
|
lib/rbtree-test: lower default params
|
2017-11-17 16:10:02 -08:00 |
|
reciprocal_div.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
refcount.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
rhashtable.c
|
rhashtable: Call library function alloc_bucket_locks
|
2017-12-11 09:58:39 -05:00 |
|
sbitmap.c
|
blk-mq: improve heavily contended tag case
|
2017-12-22 11:09:37 -07:00 |
|
scatterlist.c
|
lib/scatterlist: Fix chaining support in sgl_alloc_order()
|
2018-01-19 12:31:03 -07:00 |
|
seq_buf.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
sg_pool.c
|
lib: scatterlist: move SG pool code from SCSI driver to lib/sg_pool.c
|
2016-04-15 16:53:14 -04:00 |
|
sg_split.c
|
|
|
|
sha1.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
show_mem.c
|
lib/show_mem.c: teach show_mem to work with the given nodemask
|
2017-02-22 16:41:30 -08:00 |
|
siphash.c
|
siphash: implement HalfSipHash1-3 for hash tables
|
2017-01-09 13:58:57 -05:00 |
|
smp_processor_id.c
|
lib: do not use print_symbol()
|
2018-01-05 15:24:00 +01:00 |
|
sort.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
stackdepot.c
|
lib/stackdepot.c: use a non-instrumented version of memcmp()
|
2018-02-06 18:32:44 -08:00 |
|
stmp_device.c
|
|
|
|
string.c
|
lib/strscpy: Shut up KASAN false-positives in strscpy()
|
2018-02-01 12:20:21 -08:00 |
|
string_helpers.c
|
mm: treewide: remove GFP_TEMPORARY allocation flag
|
2017-09-13 18:53:16 -07:00 |
|
strncpy_from_user.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
strnlen_user.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
swiotlb.c
|
swiotlb: remove various exports
|
2018-01-15 09:35:50 +01:00 |
|
syscall.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
test-kstrtox.c
|
|
|
|
test-string_helpers.c
|
lib/test-string_helpers.c: fix and improve string_get_size() tests
|
2016-02-03 08:28:43 -08:00 |
|
test_bitmap.c
|
lib/test_bitmap.c: clean up test_zero_fill_copy() test case and rename
|
2018-02-06 18:32:44 -08:00 |
|
test_bpf.c
|
bpf: add further test cases around div/mod and others
|
2018-01-26 16:42:07 -08:00 |
|
test_debug_virtual.c
|
lib: add test module for CONFIG_DEBUG_VIRTUAL
|
2017-09-08 18:26:49 -07:00 |
|
test_firmware.c
|
test_firmware: fix missing unlock on error in config_num_requests_store()
|
2018-01-22 16:55:38 +01:00 |
|
test_hash.c
|
lib/test_hash.c: fix warning in preprocessor symbol evaluation
|
2016-09-01 17:52:01 -07:00 |
|
test_hexdump.c
|
test_hexdump: print statistics at the end
|
2016-01-20 17:09:18 -08:00 |
|
test_kasan.c
|
kasan: remove redundant initialization of variable 'real_size'
|
2018-02-06 18:32:43 -08:00 |
|
test_kmod.c
|
treewide: Use DEVICE_ATTR_RW
|
2018-01-09 16:33:31 +01:00 |
|
test_list_sort.c
|
lib/test: delete five error messages for failed memory allocations
|
2017-11-17 16:10:01 -08:00 |
|
test_module.c
|
|
|
|
test_parman.c
|
lib: fix spelling mistake: "actualy" -> "actually"
|
2017-02-26 11:03:38 -05:00 |
|
test_printf.c
|
printk: hash addresses printed with %p
|
2017-11-29 12:09:02 +11:00 |
|
test_rhashtable.c
|
rhashtable: Change rhashtable_walk_start to return void
|
2017-12-11 09:58:38 -05:00 |
|
test_siphash.c
|
siphash: implement HalfSipHash1-3 for hash tables
|
2017-01-09 13:58:57 -05:00 |
|
test_sort.c
|
Revert "lib/test_sort.c: make it explicitly non-modular"
|
2017-05-08 17:15:10 -07:00 |
|
test_static_key_base.c
|
|
|
|
test_static_keys.c
|
locking/static_keys: Avoid nested functions
|
2016-02-09 10:27:29 +01:00 |
|
test_string.c
|
lib: add module support to string tests
|
2017-11-17 16:10:01 -08:00 |
|
test_sysctl.c
|
test_sysctl: test against int proc_dointvec() array support
|
2017-07-12 16:26:00 -07:00 |
|
test_user_copy.c
|
lib: remove check for AVR32 arch in test_user_copy
|
2017-05-01 09:36:30 +02:00 |
|
test_uuid.c
|
uuid: fix incorrect uuid_equal conversion in test_uuid_test
|
2017-07-21 09:38:30 +02:00 |
|
textsearch.c
|
|
|
|
timerqueue.c
|
timerqueue: Document return values of timerqueue_add/del()
|
2017-12-29 23:13:10 +01:00 |
|
ts_bm.c
|
|
|
|
ts_fsm.c
|
textsearch: fix typos in library helpers
|
2017-10-22 03:14:07 +01:00 |
|
ts_kmp.c
|
textsearch: fix typos in library helpers
|
2017-10-22 03:14:07 +01:00 |
|
ubsan.c
|
UBSAN: fix typo in format string
|
2016-08-02 17:31:41 -04:00 |
|
ubsan.h
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
ucmpdi2.c
|
move libgcc.h to include/linux
|
2017-12-01 13:09:40 -08:00 |
|
ucs2_string.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
usercopy.c
|
Fix misannotated out-of-line _copy_to_user()
|
2017-12-11 09:35:11 -05:00 |
|
uuid.c
|
Documentation: add UUID/GUID to kernel-api
|
2017-12-11 15:03:08 -07:00 |
|
vsprintf.c
|
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk
|
2018-02-01 13:36:15 -08:00 |
|
win_minmax.c
|
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
|
2017-11-02 11:10:55 +01:00 |
|
xxhash.c
|
lib: Add xxhash module
|
2017-08-15 09:02:07 -07:00 |