android_kernel_samsung_a7y1.../kernel
Thomas Gleixner ce92a355fe futex: Unbreak futex hashing
commit 8d67743653dce5a0e7aa500fcccb237cde7ad88e upstream.

The recent futex inode life time fix changed the ordering of the futex key
union struct members, but forgot to adjust the hash function accordingly,

As a result the hashing omits the leading 64bit and even hashes beyond the
futex key causing a bad hash distribution which led to a ~100% performance
regression.

Hand in the futex key pointer instead of a random struct member and make
the size calculation based of the struct offset.

Fixes: 8019ad13ef7f ("futex: Fix inode life-time issue")
Reported-by: Rong Chen <rong.a.chen@intel.com>
Decoded-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Rong Chen <rong.a.chen@intel.com>
Link: https://lkml.kernel.org/r/87h7yy90ve.fsf@nanos.tec.linutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-04-07 14:18:39 +02:00
..
bpf bpf: silence warning messages in core 2020-04-06 19:54:55 +02:00
configs
debug kdb: do a sanity check on the cpu in kdb_per_cpu() 2020-04-07 13:41:56 +02:00
events perf/core: Fix mlock accounting in perf_mmap() 2020-04-07 13:51:39 +02:00
gcov
irq genirq: Prevent NULL pointer dereference in resend_irqs() 2020-04-06 21:35:35 +02:00
livepatch
locking locking/spinlock/debug: Fix various data races 2020-04-07 13:28:27 +02:00
power PM / Hibernate: Call flush_icache_range() on pages restored in-place 2020-04-06 12:52:20 +02:00
printk printk: fix integer overflow in setup_log_buf() 2020-04-07 12:34:15 +02:00
rcu rcutorture: Fix cleanup path for invalid torture_type strings 2020-04-06 18:20:15 +02:00
sched sched/fair: Scale bandwidth quota and period without losing quota/period ratio precision 2020-04-07 12:45:36 +02:00
time clocksource: Prevent double add_timer_on() for watchdog_timer 2020-04-07 13:51:37 +02:00
trace fs: prevent page refcount overflow in pipe_buf_get 2020-04-07 14:09:48 +02:00
acct.c
async.c
audit_fsnotify.c
audit_tree.c
audit_watch.c
audit.c audit: always check the netlink payload length in audit_receive_msg() 2020-04-07 14:09:50 +02:00
audit.h
auditfilter.c audit: fix error handling in audit_data_to_entry() 2020-04-07 14:04:43 +02:00
auditsc.c audit: print empty EXECVE args 2020-04-07 12:36:13 +02:00
backtracetest.c
bounds.c
capability.c
cgroup_freezer.c
cgroup_pids.c cgroup: pids: use atomic64_t for pids->limit 2020-04-07 13:07:11 +02:00
cgroup.c
compat.c
configs.c
context_tracking.c
cpu_pm.c
cpu.c cpu/speculation: Warn on unsupported mitigations= parameter 2020-04-06 19:17:21 +02:00
cpuset.c
crash_dump.c
cred.c access: avoid the RCU grace period for the temporary subjective credentials 2020-04-06 20:24:58 +02:00
delayacct.c
dma.c
elfcore.c kernel/elfcore.c: include proper prototypes 2020-04-07 08:08:10 +02:00
exec_domain.c
exit.c
extable.c
fork.c kernel/sysctl.c: do not override max_threads provided by userspace 2020-04-07 08:09:55 +02:00
freezer.c
futex_compat.c
futex.c futex: Unbreak futex hashing 2020-04-07 14:18:39 +02:00
groups.c
hung_task.c
irq_work.c
jump_label.c
kallsyms.c
kaslr.c
kcmp.c
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
kcov.c
kexec_core.c
kexec_file.c
kexec_internal.h
kexec.c
kmod.c
kprobes.c kprobes: Don't call BUG_ON() if there is a kprobe in use on free list 2020-04-07 12:27:35 +02:00
ksysfs.c
kthread.c
latencytop.c
Makefile
membarrier.c
memremap.c
module_signing.c
module-internal.h
module.c kernel/module.c: wakeup processes in module_wq on module unload 2020-04-07 13:08:13 +02:00
notifier.c x86/mm: split vmalloc_sync_all() 2020-04-07 14:14:34 +02:00
nsproxy.c
padata.c padata: Remove broken queue flushing 2020-04-07 13:55:17 +02:00
panic.c panic: ensure preemption is disabled during panic() 2020-04-07 08:08:25 +02:00
params.c
pid_namespace.c signal/pid_namespace: Fix reboot_pid_ns to use send_sig not force_sig 2020-04-06 19:54:23 +02:00
pid.c
profile.c
ptrace.c ptrace: Fix ->ptracer_cred handling for PTRACE_TRACEME 2020-04-06 19:20:56 +02:00
range.c
reboot.c
relay.c
resource.c
seccomp.c
signal.c signal: avoid double atomic counter increments for user accounting 2020-04-07 14:13:36 +02:00
smp.c
smpboot.c
smpboot.h
softirq.c
stacktrace.c
stop_machine.c
sys_ni.c
sys.c kernel/sys.c: prctl: fix false positive in validate_prctl_map() 2020-04-06 19:01:43 +02:00
sysctl_binary.c
sysctl.c kernel: sysctl: make drop_caches write-only 2020-04-07 13:23:45 +02:00
task_work.c
taskstats.c taskstats: fix data-race 2020-04-07 13:24:32 +02:00
test_kprobes.c
torture.c
tracepoint.c
tsacct.c
uid16.c
up.c
user_namespace.c
user-return-notifier.c
user.c
utsname_sysctl.c
utsname.c
watchdog.c
workqueue_internal.h
workqueue.c workqueue: Fix missing kfree(rescuer) in destroy_workqueue() 2020-04-07 13:08:09 +02:00