android_kernel_oneplus_msm8998/lib
Kevin Hao b9b3132491 dump_stack: avoid the livelock of the dump_lock
commit 5cbf2fff3bba8d3c6a4d47c1754de1cf57e2b01f upstream.

In the current code, we use the atomic_cmpxchg() to serialize the output
of the dump_stack(), but this implementation suffers the thundering herd
problem.  We have observed such kind of livelock on a Marvell cn96xx
board(24 cpus) when heavily using the dump_stack() in a kprobe handler.
Actually we can let the competitors to wait for the releasing of the
lock before jumping to atomic_cmpxchg().  This will definitely mitigate
the thundering herd problem.  Thanks Linus for the suggestion.

[akpm@linux-foundation.org: fix comment]
Link: http://lkml.kernel.org/r/20191030031637.6025-1-haokexin@gmail.com
Fixes: b58d977432 ("dump_stack: serialize the output from dump_stack()")
Signed-off-by: Kevin Hao <haokexin@gmail.com>
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-11-12 19:13:19 +01:00
..
842
fonts
lz4
lzo
mpi lib/mpi: Fix karactx leak in mpi_powm 2019-07-10 09:56:43 +02:00
raid6 ARM: 8833/1: Ensure that NEON code always compiles with Clang 2019-04-27 09:33:51 +02:00
reed_solomon rslib: Fix handling of of caller provided syndrome 2019-08-04 09:34:48 +02:00
xz
zlib_deflate
zlib_inflate
.gitignore
argv_split.c
asn1_decoder.c ASN.1: check for error from ASN1_OP_END__ACT actions 2017-12-16 10:33:48 +01:00
assoc_array.c assoc_array: Fix shortcut creation 2019-03-23 08:44:33 +01:00
atomic64.c
atomic64_test.c x86/cpufeature: Carve out X86_FEATURE_* 2018-07-17 11:31:44 +02:00
audit.c
bcd.c
bch.c
bitmap.c
bitrev.c
bsearch.c kprobes: Prohibit probing on bsearch() 2019-04-27 09:33:51 +02:00
btree.c
bug.c
build_OID_registry
bust_spinlocks.c
check_signature.c
checksum.c
clz_ctz.c
clz_tab.c
cmdline.c lib/cmdline.c: fix get_options() overflow while parsing ranges 2017-06-29 12:48:51 +02:00
compat_audit.c
cordic.c
cpu-notifier-error-inject.c
cpu_rmap.c
cpumask.c
crc-ccitt.c
crc-itu-t.c
crc-t10dif.c
crc7.c
crc8.c
crc16.c
crc32.c
crc32defs.h
ctype.c
debug_info.c
debug_locks.c locking/lockdep: Fix debug_locks off performance problem 2018-11-21 09:27:31 +01:00
debugobjects.c debugobjects: avoid recursive calls with kmemleak 2018-12-17 21:55:12 +01:00
dec_and_lock.c
decompress.c
decompress_bunzip2.c
decompress_inflate.c
decompress_unlz4.c
decompress_unlzma.c
decompress_unlzo.c
decompress_unxz.c
devres.c
digsig.c lib/digsig: fix dereference of NULL user_key_payload 2017-10-27 10:23:17 +02:00
div64.c lib/div64.c: off by one in shift 2019-04-27 09:33:59 +02:00
dma-debug.c
dump_stack.c dump_stack: avoid the livelock of the dump_lock 2019-11-12 19:13:19 +01:00
dynamic_debug.c dynamic-debug-howto: fix optional/omitted ending line number to be LARGE instead of 0 2017-12-16 10:33:54 +01:00
dynamic_queue_limits.c
earlycpio.c
extable.c
fault-inject.c
fdt.c
fdt_empty_tree.c
fdt_ro.c
fdt_rw.c
fdt_strerror.c
fdt_sw.c
fdt_wip.c
find_bit.c
flex_array.c
flex_proportions.c
gcd.c
gen_crc32table.c
genalloc.c lib/genalloc.c: make the avail variable an atomic_long_t 2017-12-16 10:33:54 +01:00
glob.c
halfmd4.c
hexdump.c
hweight.c x86/hweight: Get rid of the special calling convention 2018-04-24 09:32:04 +02:00
idr.c
inflate.c
int_sqrt.c lib/int_sqrt: optimize initial value compute 2019-04-27 09:33:47 +02:00
interval_tree.c
interval_tree_test.c lib/interval_tree_test.c: allow users to limit scope of endpoint 2018-12-21 14:09:49 +01:00
iomap.c
iomap_copy.c
iommu-common.c
iommu-helper.c
ioremap.c ioremap: Update pgtable free interfaces with addr 2018-08-17 20:56:45 +02:00
iov_iter.c
irq_regs.c
is_single_threaded.c
jedec_ddr_data.c
kasprintf.c
Kconfig
Kconfig.debug kmemleak: increase DEBUG_KMEMLEAK_EARLY_LOG_SIZE default to 16K 2019-10-07 21:01:03 +02:00
Kconfig.kasan
Kconfig.kgdb
Kconfig.kmemcheck
kfifo.c
klist.c scsi: klist: Make it safe to use klists in atomic context 2018-10-10 08:52:05 +02:00
kobject.c kobject: Replace strncpy with memcpy 2018-12-13 09:21:28 +01:00
kobject_uevent.c
kstrtox.c
kstrtox.h
lcm.c
libcrc32c.c
list_debug.c
list_sort.c
llist.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
lockref.c
lru_cache.c
Makefile siphash: add cryptographically secure PRF 2019-09-06 10:18:12 +02:00
md5.c
memory-notifier-error-inject.c
memweight.c
net_utils.c
nlattr.c
nmi_backtrace.c
notifier-error-inject.c
notifier-error-inject.h
of-reconfig-notifier-error-inject.c
oid_registry.c 509: fix printing uninitialized stack memory when OID is empty 2018-02-25 11:03:40 +01:00
once.c
parser.c
pci_iomap.c
percpu-refcount.c
percpu_counter.c
percpu_ida.c
percpu_test.c
plist.c
pm-notifier-error-inject.c
proportions.c
radix-tree.c
random32.c
ratelimit.c
rational.c
rbtree.c
rbtree_test.c lib/rbtree-test: lower default params 2018-12-21 14:09:49 +01:00
reciprocal_div.c
rhashtable.c rhashtable: add schedule points 2019-02-08 11:25:31 +01:00
scatterlist.c lib/scatterlist: Fix mapping iterator when sg->offset is greater than PAGE_SIZE 2019-08-04 09:34:50 +02:00
seq_buf.c seq_buf: Make seq_buf_puts() null-terminate the buffer 2019-02-20 10:13:12 +01:00
sg_split.c
sha1.c
show_mem.c
siphash.c siphash: implement HalfSipHash1-3 for hash tables 2019-09-06 10:18:13 +02:00
smp_processor_id.c
sort.c
stmp_device.c
string.c lib/string.c: implement a basic bcmp 2019-04-27 09:33:54 +02:00
string_helpers.c
strncpy_from_user.c mm/uaccess: Use 'unsigned long' to placate UBSAN warnings on older GCC versions 2019-06-11 12:23:56 +02:00
strnlen_user.c mm/uaccess: Use 'unsigned long' to placate UBSAN warnings on older GCC versions 2019-06-11 12:23:56 +02:00
swiotlb.c swiotlb: clean up reporting 2018-12-17 21:55:16 +01:00
syscall.c
test-hexdump.c test_hexdump: use memcpy instead of strncpy 2019-02-20 10:13:14 +01:00
test-kstrtox.c
test-string_helpers.c
test_bpf.c bpf: fix selftests/bpf test_kmod.sh failure when CONFIG_BPF_JIT_ALWAYS_ON=y 2018-05-30 07:48:56 +02:00
test_firmware.c test: firmware_class: report errors properly on failure 2017-11-15 17:13:13 +01:00
test_kasan.c
test_module.c
test_printf.c
test_rhashtable.c
test_siphash.c siphash: implement HalfSipHash1-3 for hash tables 2019-09-06 10:18:13 +02:00
test_static_key_base.c
test_static_keys.c
test_user_copy.c
textsearch.c
timerqueue.c
ts_bm.c
ts_fsm.c
ts_kmp.c
ucs2_string.c
usercopy.c
uuid.c
vsprintf.c lib/vsprintf: Remove atomic-unsafe support for %pCr 2018-07-03 11:21:27 +02:00