Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler changes from Ingo Molnar: "Main changes: - scheduler side full-dynticks (user-space execution is undisturbed and receives no timer IRQs) preparation changes that convert the cputime accounting code to be full-dynticks ready, from Frederic Weisbecker. - Initial sched.h split-up changes, by Clark Williams - select_idle_sibling() performance improvement by Mike Galbraith: " 1 tbench pair (worst case) in a 10 core + SMT package: pre 15.22 MB/sec 1 procs post 252.01 MB/sec 1 procs " - sched_rr_get_interval() ABI fix/change. We think this detail is not used by apps (so it's not an ABI in practice), but lets keep it under observation. - misc RT scheduling cleanups, optimizations" * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits) sched/rt: Add <linux/sched/rt.h> header to <linux/init_task.h> cputime: Remove irqsave from seqlock readers sched, powerpc: Fix sched.h split-up build failure cputime: Restore CPU_ACCOUNTING config defaults for PPC64 sched/rt: Move rt specific bits into new header file sched/rt: Add a tuning knob to allow changing SCHED_RR timeslice sched: Move sched.h sysctl bits into separate header sched: Fix signedness bug in yield_to() sched: Fix select_idle_sibling() bouncing cow syndrome sched/rt: Further simplify pick_rt_task() sched/rt: Do not account zero delta_exec in update_curr_rt() cputime: Safely read cputime of full dynticks CPUs kvm: Prepare to add generic guest entry/exit callbacks cputime: Use accessors to read task cputime stats cputime: Allow dynamic switch between tick/virtual based cputime accounting cputime: Generic on-demand virtual cputime accounting cputime: Move default nsecs_to_cputime() to jiffies based cputime file cputime: Librarize per nsecs resolution cputime definitions cputime: Avoid multiplication overflow on utime scaling context_tracking: Export context state for generic vtime ... Fix up conflict in kernel/context_tracking.c due to comment additions.
This commit is contained in:
25
init/Kconfig
25
init/Kconfig
@@ -322,10 +322,13 @@ source "kernel/time/Kconfig"
|
||||
|
||||
menu "CPU/Task time and stats accounting"
|
||||
|
||||
config VIRT_CPU_ACCOUNTING
|
||||
bool
|
||||
|
||||
choice
|
||||
prompt "Cputime accounting"
|
||||
default TICK_CPU_ACCOUNTING if !PPC64
|
||||
default VIRT_CPU_ACCOUNTING if PPC64
|
||||
default VIRT_CPU_ACCOUNTING_NATIVE if PPC64
|
||||
|
||||
# Kind of a stub config for the pure tick based cputime accounting
|
||||
config TICK_CPU_ACCOUNTING
|
||||
@@ -338,9 +341,10 @@ config TICK_CPU_ACCOUNTING
|
||||
|
||||
If unsure, say Y.
|
||||
|
||||
config VIRT_CPU_ACCOUNTING
|
||||
config VIRT_CPU_ACCOUNTING_NATIVE
|
||||
bool "Deterministic task and CPU time accounting"
|
||||
depends on HAVE_VIRT_CPU_ACCOUNTING
|
||||
select VIRT_CPU_ACCOUNTING
|
||||
help
|
||||
Select this option to enable more accurate task and CPU time
|
||||
accounting. This is done by reading a CPU counter on each
|
||||
@@ -350,6 +354,23 @@ config VIRT_CPU_ACCOUNTING
|
||||
this also enables accounting of stolen time on logically-partitioned
|
||||
systems.
|
||||
|
||||
config VIRT_CPU_ACCOUNTING_GEN
|
||||
bool "Full dynticks CPU time accounting"
|
||||
depends on HAVE_CONTEXT_TRACKING && 64BIT
|
||||
select VIRT_CPU_ACCOUNTING
|
||||
select CONTEXT_TRACKING
|
||||
help
|
||||
Select this option to enable task and CPU time accounting on full
|
||||
dynticks systems. This accounting is implemented by watching every
|
||||
kernel-user boundaries using the context tracking subsystem.
|
||||
The accounting is thus performed at the expense of some significant
|
||||
overhead.
|
||||
|
||||
For now this is only useful if you are working on the full
|
||||
dynticks subsystem development.
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
config IRQ_TIME_ACCOUNTING
|
||||
bool "Fine granularity task level IRQ time accounting"
|
||||
depends on HAVE_IRQ_TIME_ACCOUNTING
|
||||
|
@@ -2,6 +2,8 @@
|
||||
#include <linux/export.h>
|
||||
#include <linux/mqueue.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/sched/sysctl.h>
|
||||
#include <linux/sched/rt.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/mm.h>
|
||||
|
Reference in New Issue
Block a user