15 Oct, 2007
27 commits
-
In general, struct file_operations are const in the kernel, to not have
false cacheline sharing and to catch bugs at compiletime with accidental
writes to them. The new scheduler code introduces a new non-const one;
fix this up.Signed-off-by: Arjan van de Ven
Signed-off-by: Ingo Molnar -
add new migration statistics when SCHED_DEBUG and SCHEDSTATS
is enabled. Available in /proc//sched.Signed-off-by: Ingo Molnar
-
increase width of debug line - in preparation of more debugging info.
Signed-off-by: Ingo Molnar
-
Add tunables in sysfs to modify a user's cpu share.
A directory is created in sysfs for each new user in the system.
/sys/kernel/uids//cpu_share
Reading this file returns the cpu shares granted for the user.
Writing into this file modifies the cpu share for the user. Only an
administrator is allowed to modify a user's cpu share.Ex:
# cd /sys/kernel/uids/
# cat 512/cpu_share
1024
# echo 2048 > 512/cpu_share
# cat 512/cpu_share
2048
#Signed-off-by: Srivatsa Vaddagiri
Signed-off-by: Dhaval Giani
Signed-off-by: Ingo Molnar -
cleanup: rename task_grp to task_group. No need to save two characters
and 'grp' is annoying to read.Signed-off-by: Ingo Molnar
-
Fix coding style issues reported by Randy Dunlap and others
Signed-off-by: Dhaval Giani
Signed-off-by: Srivatsa Vaddagiri
Signed-off-by: Ingo Molnar
Reviewed-by: Thomas Gleixner -
speed up and simplify vslice calculations.
[ From: Mike Galbraith : build fix ]
Signed-off-by: Peter Zijlstra
Signed-off-by: Ingo Molnar -
rename all 'cnt' fields and variables to the less yucky 'count' name.
yuckage noticed by Andrew Morton.
no change in code, other than the /proc/sched_debug bkl_count string got
a bit larger:text data bss dec hex filename
38236 3506 24 41766 a326 sched.o.before
38240 3506 24 41770 a32a sched.o.afterSigned-off-by: Ingo Molnar
Reviewed-by: Thomas Gleixner -
debug feature: check how well we schedule within a reasonable
vruntime 'spread' range. (note that CPU overload can increase
the spread, so this is not a hard condition, but normal loads
should be within the spread.)Signed-off-by: Ingo Molnar
Signed-off-by: Peter Zijlstra -
more width for parameter printouts in /proc/sched_debug.
Signed-off-by: Ingo Molnar
Signed-off-by: Peter Zijlstra
Reviewed-by: Thomas Gleixner -
print the current value of all tunables in /proc/sched_debug output.
Signed-off-by: Ingo Molnar
Signed-off-by: Peter Zijlstra
Reviewed-by: Thomas Gleixner -
build fix for the SCHED_DEBUG && !SCHEDSTATS case.
Signed-off-by: S.Ceglar Onur
Signed-off-by: Ingo Molnar
Reviewed-by: Thomas Gleixner -
add per task and per rq BKL usage statistics.
Signed-off-by: Ingo Molnar
Signed-off-by: Peter Zijlstra
Reviewed-by: Thomas Gleixner -
Enable user-id based fair group scheduling. This is useful for anyone
who wants to test the group scheduler w/o having to enable
CONFIG_CGROUPS.A separate scheduling group (i.e struct task_grp) is automatically created for
every new user added to the system. Upon uid change for a task, it is made to
move to the corresponding scheduling group.A /proc tunable (/proc/root_user_share) is also provided to tune root
user's quota of cpu bandwidth.Signed-off-by: Srivatsa Vaddagiri
Signed-off-by: Dhaval Giani
Signed-off-by: Ingo Molnar
Signed-off-by: Peter Zijlstra
Reviewed-by: Thomas Gleixner -
- print nr_running and load information for cfs_rq in /proc/sched_debug
Signed-off-by: Srivatsa Vaddagiri
Signed-off-by: Dhaval Giani
Signed-off-by: Ingo Molnar
Signed-off-by: Peter Zijlstra
Reviewed-by: Thomas Gleixner -
fix formatting of /proc/sched_debug
Signed-off-by: Ingo Molnar
Signed-off-by: Peter Zijlstra
Reviewed-by: Thomas Gleixner -
enhance debug output by changing 12345678 nsecs to 12.345678 output,
this is more human-readable.Signed-off-by: Ingo Molnar
Signed-off-by: Peter Zijlstra
Reviewed-by: Thomas Gleixner -
print the correct amount of dashes in /proc/sched_debug.
Signed-off-by: Ingo Molnar
Signed-off-by: Peter Zijlstra
Reviewed-by: Thomas Gleixner -
Get rid of 'sched_entity::fair_key'.
As a side effect, 'current' is not kept withing the tree for
SCHED_NORMAL/BATCH tasks anymore. This simplifies some parts of code
(e.g. entity_tick() and yield_task_fair()) and also somewhat optimizes
them (e.g. a single update_curr() now vs. dequeue/enqueue() before in
entity_tick()).Signed-off-by: Dmitry Adamushko
Signed-off-by: Ingo Molnar
Signed-off-by: Peter Zijlstra
Reviewed-by: Thomas Gleixner -
remove wait_runtime based fields and features, now that the CFS
math has been changed over to the vruntime metric.Signed-off-by: Ingo Molnar
Signed-off-by: Peter Zijlstra
Signed-off-by: Mike Galbraith
Reviewed-by: Thomas Gleixner -
remove the wait_runtime-limit fields and the code depending on it, now
that the math has been changed over to rely on the vruntime metric.Signed-off-by: Ingo Molnar
Signed-off-by: Peter Zijlstra
Signed-off-by: Mike Galbraith
Reviewed-by: Thomas Gleixner -
'struct load_stat' is redundant now so let's get rid of it.
Signed-off-by: Dmitry Adamushko
Signed-off-by: Ingo Molnar
Signed-off-by: Peter Zijlstra
Signed-off-by: Mike Galbraith
Reviewed-by: Thomas Gleixner -
add more vruntime statistics.
Signed-off-by: Ingo Molnar
Signed-off-by: Mike Galbraith
Signed-off-by: Peter Zijlstra
Reviewed-by: Thomas Gleixner -
debug se->vruntime fields.
Signed-off-by: Ingo Molnar
Signed-off-by: Peter Zijlstra
Signed-off-by: Mike Galbraith -
CPU load calculations are statistical anyway, and there's little benefit
from having it calculated on every scheduling event. So remove this code,
it gets rid of a divide from the scheduler wakeup and context-switch
fastpath.Signed-off-by: Ingo Molnar
Signed-off-by: Peter Zijlstra
Signed-off-by: Mike Galbraith
Reviewed-by: Thomas Gleixner -
track the maximum amount of time a task has executed while
the CPU load was at least 2x. (i.e. at least two nice-0
tasks were runnable)Signed-off-by: Ingo Molnar
Signed-off-by: Peter Zijlstra
Signed-off-by: Mike Galbraith
Reviewed-by: Thomas Gleixner -
small kernel/sched_debug.c cleanup - break up
multi-variable assignment.no code changed:
text data bss dec hex filename
38869 3550 24 42443 a5cb sched.o.before
38869 3550 24 42443 a5cb sched.o.afterSigned-off-by: Ingo Molnar
Signed-off-by: Peter Zijlstra
Signed-off-by: Mike Galbraith
Reviewed-by: Thomas Gleixner
05 Sep, 2007
1 commit
-
when cleaning sched-stats also clear prev_sum_exec_runtime.
Signed-off-by: Ingo Molnar
23 Aug, 2007
1 commit
-
construct a more or less wall-clock time out of sched_clock(), by
using ACPI-idle's existing knowledge about how much time we spent
idling. This allows the rq clock to work around TSC-stops-in-C2,
TSC-gets-corrupted-in-C3 type of problems.( Besides the scheduler's statistics this also benefits blktrace and
printk-timestamps as well. )Furthermore, the precise before-C2/C3-sleep and after-C2/C3-wakeup
callbacks allow the scheduler to get out the most of the period where
the CPU has a reliable TSC. This results in slightly more precise
task statistics.the ACPI bits were acked by Len.
Signed-off-by: Ingo Molnar
Acked-by: Len Brown
11 Aug, 2007
1 commit
-
Arjan van de Ven pointed out that we should not print kernel addresses
in world-readable /proc files - fix that.Signed-off-by: Ingo Molnar
Signed-off-by: Arjan van de Ven
09 Aug, 2007
2 commits
-
remove the 'u64 now' parameter from sched_debug.c:print_task()/_rq().
( identity transformation that causes no change in functionality. )
Signed-off-by: Ingo Molnar
-
remove the 'u64 now' parameter from print_cfs_rq().
( identity transformation that causes no change in functionality. )
Signed-off-by: Ingo Molnar
07 Aug, 2007
1 commit
-
C99 6.10.3[11]: preprocessing directive within the argument list of
macro invocation => undefined behaviour. Don't do that...Signed-off-by: Al Viro
Signed-off-by: Linus Torvalds
02 Aug, 2007
1 commit
-
move the rest of the debugging/instrumentation code to under
CONFIG_SCHEDSTATS too. This reduces code size and speeds code up:text data bss dec hex filename
33044 4122 28 37194 914a sched.o.before
32708 4122 28 36858 8ffa sched.o.afterSigned-off-by: Ingo Molnar
01 Aug, 2007
1 commit
-
On every open/close one struct seq_operations leaks.
Kudos to /proc/slab_allocators.Signed-off-by: Alexey Dobriyan
Acked-by: Ingo Molnar
Cc:
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
26 Jul, 2007
1 commit
-
Only sched.c uses sysrq_sched_debug_show, and sched.c includes sched_debug.c,
so all uses of sysrq_sched_debug_show occur in the same source file.Eliminates a sparse warning:
warning: symbol 'sysrq_sched_debug_show' was not declared. Should it be static?Signed-off-by: Josh Triplett
Signed-off-by: Andrew Morton
Signed-off-by: Ingo Molnar
14 Jul, 2007
1 commit
-
kernel/sched_debug.c referred to CFS -v20, but there's no CFS versioning
needed within the upstream kernel.Signed-off-by: Ingo Molnar
Signed-off-by: Linus Torvalds
10 Jul, 2007
1 commit
-
scheduler debugging core: implement /proc/sched_debug and
/proc//sched files for scheduler debugging.Signed-off-by: Ingo Molnar