1. 27 Jun, 2008 2 commits
  2. 20 Jun, 2008 1 commit
  3. 29 May, 2008 1 commit
  4. 05 May, 2008 1 commit
    • Peter Zijlstra's avatar
      sched: add optional support for CONFIG_HAVE_UNSTABLE_SCHED_CLOCK · 3e51f33f
      Peter Zijlstra authored
      
      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: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      3e51f33f
  5. 01 May, 2008 1 commit
    • Roman Zippel's avatar
      rename div64_64 to div64_u64 · 6f6d6a1a
      Roman Zippel authored
      
      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: default avatarRoman Zippel <zippel@linux-m68k.org>
      Cc: Avi Kivity <avi@qumranet.com>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Patrick McHardy <kaber@trash.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6f6d6a1a
  6. 29 Apr, 2008 1 commit
  7. 19 Apr, 2008 3 commits
  8. 19 Mar, 2008 1 commit
    • Ingo Molnar's avatar
      sched: improve affine wakeups · 4ae7d5ce
      Ingo Molnar authored
      
      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: default avatarIngo Molnar <mingo@elte.hu>
      4ae7d5ce
  9. 25 Jan, 2008 2 commits
  10. 30 Dec, 2007 1 commit
    • Ingo Molnar's avatar
      sched: fix gcc warnings · 90b2628f
      Ingo Molnar authored
      
      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: default avatarIngo Molnar <mingo@elte.hu>
      90b2628f
  11. 28 Nov, 2007 1 commit
  12. 26 Nov, 2007 1 commit
  13. 09 Nov, 2007 1 commit
  14. 25 Oct, 2007 1 commit
    • Peter Zijlstra's avatar
      sched: fix unconditional irq lock · ab63a633
      Peter Zijlstra authored
      
      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: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      ab63a633
  15. 18 Oct, 2007 1 commit
    • Ken Chen's avatar
      sched: reduce schedstat variable overhead a bit · 480b9434
      Ken Chen authored
      
      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: default avatarKen Chen <kenchen@google.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      480b9434
  16. 15 Oct, 2007 21 commits