Srikar Dronamraju
f03bb6760b
sched/numa: Use task faults only if numa_group is not yet set up
When numa_group faults are available, task_numa_placement only uses
numa_group faults to evaluate preferred node. However it still accounts
task faults and even evaluates the preferred node just based on task
faults just to discard it in favour of preferred node chosen on the
basis of numa_group.
Instead use task faults only if numa_group is not set.
Running SPECjbb2005 on a 4 node machine and comparing bops/JVM
JVMS LAST_PATCH WITH_PATCH %CHANGE
16 25549.6 25215.7 -1.30
1 73190 72107 -1.47
Running SPECjbb2005 on a 16 node machine and comparing bops/JVM
JVMS LAST_PATCH WITH_PATCH %CHANGE
8 113437 113372 -0.05
1 196130 177403 -9.54
(numbers from v1 based on v4.17-rc5)
Testcase Time: Min Max Avg StdDev
numa01.sh Real: 506.35 794.46 599.06 104.26
numa01.sh Sys: 150.37 223.56 195.99 24.94
numa01.sh User: 43450.69 61752.04 49281.50 6635.33
numa02.sh Real: 60.33 62.40 61.31 0.90
numa02.sh Sys: 18.12 31.66 24.28 5.89
numa02.sh User: 5203.91 5325.32 5260.29 49.98
numa03.sh Real: 696.47 853.62 745.80 57.28
numa03.sh Sys: 85.68 123.71 97.89 13.48
numa03.sh User: 55978.45 66418.63 59254.94 3737.97
numa04.sh Real: 444.05 514.83 497.06 26.85
numa04.sh Sys: 230.39 375.79 316.23 48.58
numa04.sh User: 35403.12 41004.10 39720.80 2163.08
numa05.sh Real: 423.09 460.41 439.57 13.92
numa05.sh Sys: 287.38 480.15 369.37 68.52
numa05.sh User: 34732.12 38016.80 36255.85 1070.51
Testcase Time: Min Max Avg StdDev %Change
numa01.sh Real: 478.45 565.90 515.11 30.87 16.29%
numa01.sh Sys: 207.79 271.04 232.94 21.33 -15.8%
numa01.sh User: 39763.93 47303.12 43210.73 2644.86 14.04%
numa02.sh Real: 60.00 61.46 60.78 0.49 0.871%
numa02.sh Sys: 15.71 25.31 20.69 3.42 17.35%
numa02.sh User: 5175.92 5265.86 5235.97 32.82 0.464%
numa03.sh Real: 776.42 834.85 806.01 23.22 -7.47%
numa03.sh Sys: 114.43 128.75 121.65 5.49 -19.5%
numa03.sh User: 60773.93 64855.25 62616.91 1576.39 -5.36%
numa04.sh Real: 456.93 511.95 482.91 20.88 2.930%
numa04.sh Sys: 178.09 460.89 356.86 94.58 -11.3%
numa04.sh User: 36312.09 42553.24 39623.21 2247.96 0.246%
numa05.sh Real: 393.98 493.48 436.61 35.59 0.677%
numa05.sh Sys: 164.49 329.15 265.87 61.78 38.92%
numa05.sh User: 33182.65 36654.53 35074.51 1187.71 3.368%
Signed-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Mel Gorman <mgorman@techsingularity.net>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@surriel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1529514181-9842-6-git-send-email-srikar@linux.vnet.ibm.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
|
2018-07-25 11:41:06 +02:00 |
| .. |
|
bpf
|
bpf: don't leave partial mangled prog in jit_subprogs error path
|
2018-07-12 14:00:54 -07:00 |
|
cgroup
|
docs: Fix some broken references
|
2018-06-15 18:10:01 -03:00 |
|
configs
|
kconfig: tinyconfig: remove stale stack protector fixups
|
2018-06-15 07:15:28 +09:00 |
|
debug
|
treewide: kzalloc() -> kcalloc()
|
2018-06-12 16:19:22 -07:00 |
|
dma
|
swiotlb: export swiotlb_dma_ops
|
2018-06-28 14:00:40 +02:00 |
|
events
|
perf/core: Move inline keyword at the beginning of declaration
|
2018-06-27 09:55:58 +02:00 |
|
gcov
|
gcov: remove CONFIG_GCOV_FORMAT_AUTODETECT
|
2018-06-08 18:56:02 +09:00 |
|
irq
|
genirq/debugfs: Add missing IRQCHIP_SUPPORTS_LEVEL_MSI debug
|
2018-06-22 14:22:00 +02:00 |
|
livepatch
|
livepatch: Allow to call a custom callback when freeing shadow variables
|
2018-04-17 13:42:48 +02:00 |
|
locking
|
Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
|
2018-06-24 19:36:16 +08:00 |
|
power
|
sched/swait: Rename to exclusive
|
2018-06-20 11:35:56 +02:00 |
|
printk
|
Printk changes for 4.18
|
2018-06-06 16:04:55 -07:00 |
|
rcu
|
sched/swait: Rename to exclusive
|
2018-06-20 11:35:56 +02:00 |
|
sched
|
sched/numa: Use task faults only if numa_group is not yet set up
|
2018-07-25 11:41:06 +02:00 |
|
time
|
Revert "tick: Prefer a lower rating device only if it's CPU local device"
|
2018-07-10 22:12:47 +02:00 |
|
trace
|
tracing: Reorder display of TGID to be after PID
|
2018-07-12 19:56:25 -04:00 |
|
.gitignore
|
|
|
|
acct.c
|
|
|
|
async.c
|
kernel/async.c: revert "async: simplify lowest_in_progress()"
|
2018-02-06 18:32:44 -08:00 |
|
audit.c
|
audit: use inline function to get audit context
|
2018-05-14 17:24:18 -04:00 |
|
audit.h
|
audit: track the owner of the command mutex ourselves
|
2018-02-23 11:22:22 -05:00 |
|
audit_fsnotify.c
|
fsnotify: add fsnotify_add_inode_mark() wrappers
|
2018-05-18 14:58:22 +02:00 |
|
audit_tree.c
|
fsnotify: add fsnotify_add_inode_mark() wrappers
|
2018-05-18 14:58:22 +02:00 |
|
audit_watch.c
|
\n
|
2018-06-17 05:06:18 +09:00 |
|
auditfilter.c
|
audit: use existing session info function
|
2018-05-18 15:47:54 -04:00 |
|
auditsc.c
|
audit: Fix wrong task in comparison of session ID
|
2018-05-21 14:27:43 -04:00 |
|
backtracetest.c
|
|
|
|
bounds.c
|
|
|
|
capability.c
|
|
|
|
compat.c
|
Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
|
2018-06-04 20:27:54 -07:00 |
|
configs.c
|
|
|
|
context_tracking.c
|
|
|
|
cpu.c
|
watchdog/softlockup: Replace "watchdog/%u" threads with cpu_stop_work
|
2018-07-03 09:20:43 +02:00 |
|
cpu_pm.c
|
|
|
|
crash_core.c
|
mm: split page_type out from _mapcount
|
2018-06-07 17:34:37 -07:00 |
|
crash_dump.c
|
|
|
|
cred.c
|
|
|
|
delayacct.c
|
delayacct: Use raw_spinlocks
|
2018-04-27 14:34:51 +02:00 |
|
dma.c
|
proc: introduce proc_create_single{,_data}
|
2018-05-16 07:23:35 +02:00 |
|
elfcore.c
|
|
|
|
exec_domain.c
|
proc: introduce proc_create_single{,_data}
|
2018-05-16 07:23:35 +02:00 |
|
exit.c
|
kernel: use kernel_wait4() instead of sys_wait4()
|
2018-04-02 20:14:51 +02:00 |
|
extable.c
|
extable: Make init_kernel_text() global
|
2018-02-21 16:54:06 +01:00 |
|
fail_function.c
|
treewide: kmalloc() -> kmalloc_array()
|
2018-06-12 16:19:22 -07:00 |
|
fork.c
|
mm: make vm_area_alloc() initialize core fields
|
2018-07-21 15:24:03 -07:00 |
|
freezer.c
|
|
|
|
futex.c
|
pids: introduce find_get_task_by_vpid() helper
|
2018-02-06 18:32:46 -08:00 |
|
futex_compat.c
|
|
|
|
groups.c
|
|
|
|
hung_task.c
|
kernel/hung_task.c: show all hung tasks before panic
|
2018-06-07 17:34:39 -07:00 |
|
iomem.c
|
memremap: split devm_memremap_pages() and memremap() infrastructure
|
2018-05-15 23:08:33 -07:00 |
|
irq_work.c
|
|
|
|
jump_label.c
|
jump_label: Disable jump labels in __exit code
|
2018-03-20 08:57:17 +01:00 |
|
kallsyms.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 |
|
kcmp.c
|
|
|
|
Kconfig.freezer
|
|
|
|
Kconfig.hz
|
|
|
|
Kconfig.locks
|
|
|
|
Kconfig.preempt
|
|
|
|
kcov.c
|
sched/core / kcov: avoid kcov_area during task switch
|
2018-06-15 07:55:24 +09:00 |
|
kexec.c
|
kexec: call do_kexec_load() in compat syscall directly
|
2018-04-02 20:15:01 +02:00 |
|
kexec_core.c
|
kexec: yield to scheduler when loading kimage segments
|
2018-06-15 07:55:24 +09:00 |
|
kexec_file.c
|
treewide: Use array_size() in vzalloc()
|
2018-06-12 16:19:22 -07:00 |
|
kexec_internal.h
|
|
|
|
kmod.c
|
|
|
|
kprobes.c
|
kprobes: Fix random address output of blacklist file
|
2018-04-25 10:27:56 -04:00 |
|
ksysfs.c
|
|
|
|
kthread.c
|
kthread: Simplify kthread_park() completion
|
2018-07-03 09:20:44 +02:00 |
|
latencytop.c
|
|
|
|
Makefile
|
dma-mapping: move all DMA mapping code to kernel/dma
|
2018-06-14 08:50:37 +02:00 |
|
memremap.c
|
mm: introduce MEMORY_DEVICE_FS_DAX and CONFIG_DEV_PAGEMAP_OPS
|
2018-05-22 06:59:39 -07:00 |
|
module-internal.h
|
|
|
|
module.c
|
Modules updates for v4.18
|
2018-06-16 07:36:39 +09:00 |
|
module_signing.c
|
|
|
|
notifier.c
|
|
|
|
nsproxy.c
|
|
|
|
padata.c
|
|
|
|
panic.c
|
Kbuild: rename CC_STACKPROTECTOR[_STRONG] config variables
|
2018-06-14 12:21:18 +09:00 |
|
params.c
|
kernel/params.c: downgrade warning for unsafe parameters
|
2018-04-11 10:28:37 -07:00 |
|
pid.c
|
xarray: add the xa_lock to the radix_tree_root
|
2018-04-11 10:28:39 -07:00 |
|
pid_namespace.c
|
Merge branch 'userns-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
|
2018-04-03 19:15:32 -07:00 |
|
profile.c
|
|
|
|
ptrace.c
|
pids: introduce find_get_task_by_vpid() helper
|
2018-02-06 18:32:46 -08:00 |
|
range.c
|
|
|
|
reboot.c
|
|
|
|
relay.c
|
kernel/relay.c: change return type to vm_fault_t
|
2018-06-15 07:55:24 +09:00 |
|
resource.c
|
libnvdimm for 4.18
|
2018-06-08 17:21:52 -07:00 |
|
rseq.c
|
rseq: uapi: Declare rseq_cs field as union, update includes
|
2018-07-10 22:18:52 +02:00 |
|
seccomp.c
|
audit/stable-4.18 PR 20180605
|
2018-06-06 16:34:00 -07:00 |
|
signal.c
|
signal: Remove no longer required irqsave/restore
|
2018-06-10 06:14:01 +02:00 |
|
smp.c
|
|
|
|
smpboot.c
|
smpboot: Remove cpumask from the API
|
2018-07-03 09:20:44 +02:00 |
|
smpboot.h
|
|
|
|
softirq.c
|
Mark HI and TASKLET softirq synchronous
|
2018-07-17 11:12:43 -07:00 |
|
stacktrace.c
|
|
|
|
stop_machine.c
|
stop_machine: Disable preemption after queueing stopper threads
|
2018-07-25 11:25:08 +02:00 |
|
sys.c
|
mm: introduce arg_lock to protect arg_start|end and env_start|end in mm_struct
|
2018-06-07 17:34:34 -07:00 |
|
sys_ni.c
|
Merge branch 'core-rseq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
|
2018-06-10 10:17:09 -07:00 |
|
sysctl.c
|
sched/sysctl: Remove unused sched_time_avg_ms sysctl
|
2018-07-16 00:16:29 +02:00 |
|
sysctl_binary.c
|
staging: irda: remove remaining remants of irda code removal
|
2018-04-16 11:26:49 +02:00 |
|
task_work.c
|
|
|
|
taskstats.c
|
pids: introduce find_get_task_by_vpid() helper
|
2018-02-06 18:32:46 -08:00 |
|
test_kprobes.c
|
|
|
|
torture.c
|
rcu: Rename cond_resched_rcu_qs() to cond_resched_tasks_rcu_qs()
|
2018-05-15 10:27:29 -07:00 |
|
tracepoint.c
|
tracepoints: Fix the descriptions of tracepoint_probe_register{_prio}
|
2018-05-28 12:49:51 -04:00 |
|
tsacct.c
|
|
|
|
ucount.c
|
headers: untangle kmemleak.h from mm.h
|
2018-04-05 21:36:27 -07:00 |
|
uid16.c
|
fs: add do_fchownat(), ksys_fchown() helpers and ksys_{,l}chown() wrappers
|
2018-04-02 20:15:59 +02:00 |
|
uid16.h
|
kernel: provide ksys_*() wrappers for syscalls called by kernel/uid16.c
|
2018-04-02 20:15:30 +02:00 |
|
umh.c
|
umh: fix race condition
|
2018-06-07 16:56:28 -04:00 |
|
up.c
|
|
|
|
user-return-notifier.c
|
|
|
|
user.c
|
efivarfs: Limit the rate for non-root to read files
|
2018-02-22 10:21:02 -08:00 |
|
user_namespace.c
|
treewide: kmalloc() -> kmalloc_array()
|
2018-06-12 16:19:22 -07:00 |
|
utsname.c
|
uts: create "struct uts_namespace" from kmem_cache
|
2018-04-11 10:28:35 -07:00 |
|
utsname_sysctl.c
|
|
|
|
watchdog.c
|
watchdog/softlockup: Fix cpu_stop_queue_work() double-queue bug
|
2018-07-15 23:51:19 +02:00 |
|
watchdog_hld.c
|
|
|
|
workqueue.c
|
treewide: kzalloc() -> kcalloc()
|
2018-06-12 16:19:22 -07:00 |
|
workqueue_internal.h
|
workqueue: Set worker->desc to workqueue name by default
|
2018-05-18 08:47:13 -07:00 |