27 Jun, 2008

2 commits


20 Jun, 2008

1 commit


29 May, 2008

1 commit

  • Yanmin Zhang reported:

    Comparing with 2.6.25, volanoMark has big regression with kernel 2.6.26-rc1.
    It's about 50% on my 8-core stoakley, 16-core tigerton, and Itanium Montecito.

    With bisect, I located the following patch:

    | 18d95a2832c1392a2d63227a7a6d433cb9f2037e is first bad commit
    | commit 18d95a2832c1392a2d63227a7a6d433cb9f2037e
    | Author: Peter Zijlstra
    | Date: Sat Apr 19 19:45:00 2008 +0200
    |
    | sched: fair-group: SMP-nice for group scheduling

    Revert it so that we get v2.6.25 behavior.

    Bisected-by: Yanmin Zhang
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

06 May, 2008

1 commit

  • this replaces the rq->clock stuff (and possibly cpu_clock()).

    - architectures that have an 'imperfect' hardware clock can set
    CONFIG_HAVE_UNSTABLE_SCHED_CLOCK

    - the 'jiffie' window might be superfulous when we update tick_gtod
    before the __update_sched_clock() call in sched_clock_tick()

    - cpu_clock() might be implemented as:

    sched_clock_cpu(smp_processor_id())

    if the accuracy proves good enough - how far can TSC drift in a
    single jiffie when considering the filtering and idle hooks?

    [ mingo@elte.hu: various fixes and cleanups ]

    Signed-off-by: Peter Zijlstra
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     

01 May, 2008

1 commit

  • Rename div64_64 to div64_u64 to make it consistent with the other divide
    functions, so it clearly includes the type of the divide. Move its definition
    to math64.h as currently no architecture overrides the generic implementation.
    They can still override it of course, but the duplicated declarations are
    avoided.

    Signed-off-by: Roman Zippel
    Cc: Avi Kivity
    Cc: Russell King
    Cc: Geert Uytterhoeven
    Cc: Ralf Baechle
    Cc: David Howells
    Cc: Jeff Dike
    Cc: Ingo Molnar
    Cc: "David S. Miller"
    Cc: Patrick McHardy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roman Zippel
     

29 Apr, 2008

1 commit


20 Apr, 2008

3 commits


19 Mar, 2008

1 commit

  • improve affine wakeups. Maintain the 'overlap' metric based on CFS's
    sum_exec_runtime - which means the amount of time a task executes
    after it wakes up some other task.

    Use the 'overlap' for the wakeup decisions: if the 'overlap' is short,
    it means there's strong workload coupling between this task and the
    woken up task. If the 'overlap' is large then the workload is decoupled
    and the scheduler will move them to separate CPUs more easily.

    ( Also slightly move the preempt_check within try_to_wake_up() - this has
    no effect on functionality but allows 'early wakeups' (for still-on-rq
    tasks) to be correctly accounted as well.)

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

26 Jan, 2008

2 commits


31 Dec, 2007

1 commit

  • Meelis Roos reported these warnings on sparc64:

    CC kernel/sched.o
    In file included from kernel/sched.c:879:
    kernel/sched_debug.c: In function 'nsec_high':
    kernel/sched_debug.c:38: warning: comparison of distinct pointer types lacks a cast

    the debug check in do_div() is over-eager here, because the long long
    is always positive in these places. Mark this by casting them to
    unsigned long long.

    no change in code output:

    text data bss dec hex filename
    51471 6582 376 58429 e43d sched.o.before
    51471 6582 376 58429 e43d sched.o.after

    md5:
    7f7729c111f185bf3ccea4d542abc049 sched.o.before.asm
    7f7729c111f185bf3ccea4d542abc049 sched.o.after.asm

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

28 Nov, 2007

1 commit


27 Nov, 2007

1 commit


10 Nov, 2007

1 commit

  • we lost the sched_min_granularity tunable to a clever optimization
    that uses the sched_latency/min_granularity ratio - but the ratio
    is quite unintuitive to users and can also crash the kernel if the
    ratio is set to 0. So reintroduce the min_granularity tunable,
    while keeping the ratio maintained internally.

    no functionality changed.

    [ mingo@elte.hu: some fixlets. ]

    Signed-off-by: Peter Zijlstra
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     

25 Oct, 2007

1 commit

  • Lockdep noticed that this lock can also be taken from hardirq context, and can
    thus not unconditionally disable/enable irqs.

    WARNING: at kernel/lockdep.c:2033 trace_hardirqs_on()
    [show_trace_log_lvl+26/48] show_trace_log_lvl+0x1a/0x30
    [show_trace+18/32] show_trace+0x12/0x20
    [dump_stack+22/32] dump_stack+0x16/0x20
    [trace_hardirqs_on+405/416] trace_hardirqs_on+0x195/0x1a0
    [_read_unlock_irq+34/48] _read_unlock_irq+0x22/0x30
    [sched_debug_show+2615/4224] sched_debug_show+0xa37/0x1080
    [show_state_filter+326/368] show_state_filter+0x146/0x170
    [sysrq_handle_showstate+10/16] sysrq_handle_showstate+0xa/0x10
    [__handle_sysrq+123/288] __handle_sysrq+0x7b/0x120
    [handle_sysrq+40/64] handle_sysrq+0x28/0x40
    [kbd_event+1045/1680] kbd_event+0x415/0x690
    [input_pass_event+206/208] input_pass_event+0xce/0xd0
    [input_handle_event+170/928] input_handle_event+0xaa/0x3a0
    [input_event+95/112] input_event+0x5f/0x70
    [atkbd_interrupt+434/1456] atkbd_interrupt+0x1b2/0x5b0
    [serio_interrupt+59/128] serio_interrupt+0x3b/0x80
    [i8042_interrupt+263/576] i8042_interrupt+0x107/0x240
    [handle_IRQ_event+40/96] handle_IRQ_event+0x28/0x60
    [handle_edge_irq+175/320] handle_edge_irq+0xaf/0x140
    [do_IRQ+64/128] do_IRQ+0x40/0x80
    [common_interrupt+46/52] common_interrupt+0x2e/0x34

    Signed-off-by: Peter Zijlstra
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     

19 Oct, 2007

1 commit

  • schedstat is useful in investigating CPU scheduler behavior. Ideally,
    I think it is beneficial to have it on all the time. However, the
    cost of turning it on in production system is quite high, largely due
    to number of events it collects and also due to its large memory
    footprint.

    Most of the fields probably don't need to be full 64-bit on 64-bit
    arch. Rolling over 4 billion events will most like take a long time
    and user space tool can be made to accommodate that. I'm proposing
    kernel to cut back most of variable width on 64-bit system. (note,
    the following patch doesn't affect 32-bit system).

    Signed-off-by: Ken Chen
    Signed-off-by: Ingo Molnar

    Ken Chen
     

15 Oct, 2007

21 commits