1. 25 Oct, 2007 25 commits
  2. 24 Oct, 2007 15 commits
    • Ingo Molnar's avatar
      sched: mark CONFIG_FAIR_GROUP_SCHED as !EXPERIMENTAL · 8ef93cf1
      Ingo Molnar authored
      mark CONFIG_FAIR_GROUP_SCHED as !EXPERIMENTAL. All bugs have been
      fixed and it's perfect ;-)
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      8ef93cf1
    • Peter Williams's avatar
      sched: isolate SMP balancing code a bit more · 681f3e68
      Peter Williams authored
      At the moment, a lot of load balancing code that is irrelevant to non
      SMP systems gets included during non SMP builds.
      
      This patch addresses this issue and reduces the binary size on non
      SMP systems:
      
         text    data     bss     dec     hex filename
        10983      28    1192   12203    2fab sched.o.before
        10739      28    1192   11959    2eb7 sched.o.after
      Signed-off-by: default avatarPeter Williams <pwil3058@bigpond.net.au>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      681f3e68
    • Peter Williams's avatar
      sched: reduce balance-tasks overhead · e1d1484f
      Peter Williams authored
      At the moment, balance_tasks() provides low level functionality for both
        move_tasks() and move_one_task() (indirectly) via the load_balance()
      function (in the sched_class interface) which also provides dual
      functionality.  This dual functionality complicates the interfaces and
      internal mechanisms and makes the run time overhead of operations that
      are called with two run queue locks held.
      
      This patch addresses this issue and reduces the overhead of these
      operations.
      Signed-off-by: default avatarPeter Williams <pwil3058@bigpond.net.au>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      e1d1484f
    • Adrian Bunk's avatar
      sched: make cpu_shares_{show,store}() static · a0f846aa
      Adrian Bunk authored
      cpu_shares_{show,store}() can become static.
      Signed-off-by: default avatarAdrian Bunk <bunk@kernel.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      a0f846aa
    • Paul Menage's avatar
      sched: clean up some control group code · 2b01dfe3
      Paul Menage authored
      - replace "cont" with "cgrp" in a few places in the CFS cgroup code, 
      - use write_uint rather than write for cpu.shares write function
      Signed-off-by: default avatarPaul Menage <menage@google.com>
      Acked-by : Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      2b01dfe3
    • Joe Perches's avatar
      sched: constify sched.h · a8972ccf
      Joe Perches authored
      Add const to some struct task_struct * uses
      Signed-off-by: default avatarJoe Perches <joe@perches.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      a8972ccf
    • Mel Gorman's avatar
      sched: document profile=sleep requiring CONFIG_SCHEDSTATS · b3da2a73
      Mel Gorman authored
      profile=sleep only works if CONFIG_SCHEDSTATS is set. This patch notes
      the limitation in Documentation/kernel-parameters.txt and prints a
      warning at boot-time if profile=sleep is used without CONFIG_SCHEDSTAT.
      Signed-off-by: default avatarMel Gorman <mel@csn.ul.ie>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      b3da2a73
    • Satyam Sharma's avatar
      sched: use show_regs() to improve __schedule_bug() output · 838225b4
      Satyam Sharma authored
      A full register dump along with stack backtrace would make the
      "scheduling while atomic" message more helpful. Use show_regs() instead
      of dump_stack() for this. We already know we're atomic in here (that is
      why this function was called) so show_regs()'s atomicity expectations
      are guaranteed.
      
      Also, modify the output of the "BUG: scheduling while atomic:" header a
      bit to keep task->comm and task->pid together and preempt_count() after
      them.
      Signed-off-by: default avatarSatyam Sharma <satyam@infradead.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      838225b4
    • Ingo Molnar's avatar
      sched: clean up sched_domain_debug() · 4dcf6aff
      Ingo Molnar authored
      clean up sched_domain_debug().
      
      this also shrinks the code a bit:
      
         text    data     bss     dec     hex filename
        50474    4306     480   55260    d7dc sched.o.before
        50404    4306     480   55190    d796 sched.o.after
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      4dcf6aff
    • Ingo Molnar's avatar
      sched: fix fastcall mismatch in completion APIs · b15136e9
      Ingo Molnar authored
      Jeff Dike noticed that wait_for_completion_interruptible()'s prototype
      had a mismatched fastcall.
      
      Fix this by removing the fastcall attributes from all the completion APIs.
      Found-by: default avatarJeff Dike <jdike@linux.intel.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      b15136e9
    • Milton Miller's avatar
      sched: fix sched_domain sysctl registration again · 7378547f
      Milton Miller authored
      commit  029190c5 (cpuset
      sched_load_balance flag) was not tested SCHED_DEBUG enabled as
      committed as it dereferences NULL when used and it reordered
      the sysctl registration to cause it to never show any domains
      or their tunables.
      
      Fixes:
      
      1) restore arch_init_sched_domains ordering
      	we can't walk the domains before we build them
      
      	presently we register cpus with empty directories (no domain
      	directories or files).
      
      2) make unregister_sched_domain_sysctl do nothing when already unregistered
      	detach_destroy_domains is now called one set of cpus at a time
      	unregister_syctl dereferences NULL if called with a null.
      
      	While the the function would always dereference null if called
      	twice, in the previous code it was always called once and then
      	was followed a register.  So only the hidden bug of the
      	sysctl_root_table not being allocated followed by an attempt to
      	free it would have shown the error.
      
      3) always call unregister and register in partition_sched_domains
      	The code is "smart" about unregistering only needed domains.
      	Since we aren't guaranteed any calls to unregister, always 
      	unregister.   Without calling register on the way out we
      	will not have a table or any sysctl tree.
      
      4) warn if register is called without unregistering
      	The previous table memory is lost, leaving pointers to the
      	later freed memory in sysctl and leaking the memory of the
      	tables.
      
      Before this patch on a 2-core 4-thread box compiled for SMT and NUMA,
      the domains appear empty (there are actually 3 levels per cpu).  And as
      soon as two domains a null pointer is dereferenced (unreliable in this
      case is stack garbage):
      
      bu19a:~# ls -R /proc/sys/kernel/sched_domain/
      /proc/sys/kernel/sched_domain/:
      cpu0  cpu1  cpu2  cpu3
      
      /proc/sys/kernel/sched_domain/cpu0:
      
      /proc/sys/kernel/sched_domain/cpu1:
      
      /proc/sys/kernel/sched_domain/cpu2:
      
      /proc/sys/kernel/sched_domain/cpu3:
      
      bu19a:~# mkdir /dev/cpuset
      bu19a:~# mount -tcpuset cpuset /dev/cpuset/
      bu19a:~# cd /dev/cpuset/
      bu19a:/dev/cpuset# echo 0 > sched_load_balance 
      bu19a:/dev/cpuset# mkdir one
      bu19a:/dev/cpuset# echo 1 > one/cpus               
      bu19a:/dev/cpuset# echo 0 > one/sched_load_balance 
      Unable to handle kernel paging request for data at address 0x00000018
      Faulting instruction address: 0xc00000000006b608
      NIP: c00000000006b608 LR: c00000000006b604 CTR: 0000000000000000
      REGS: c000000018d973f0 TRAP: 0300   Not tainted  (2.6.23-bml)
      MSR: 9000000000009032 <EE,ME,IR,DR>  CR: 28242442  XER: 00000000
      DAR: 0000000000000018, DSISR: 0000000040000000
      TASK = c00000001912e340[1987] 'bash' THREAD: c000000018d94000 CPU: 2
      ..
      NIP [c00000000006b608] .unregister_sysctl_table+0x38/0x110
      LR [c00000000006b604] .unregister_sysctl_table+0x34/0x110
      Call Trace:
      [c000000018d97670] [c000000007017270] 0xc000000007017270 (unreliable)
      [c000000018d97720] [c000000000058710] .detach_destroy_domains+0x30/0xb0
      [c000000018d977b0] [c00000000005cf1c] .partition_sched_domains+0x1bc/0x230
      [c000000018d97870] [c00000000009fdc4] .rebuild_sched_domains+0xb4/0x4c0
      [c000000018d97970] [c0000000000a02e8] .update_flag+0x118/0x170
      [c000000018d97a80] [c0000000000a1768] .cpuset_common_file_write+0x568/0x820
      [c000000018d97c00] [c00000000009d95c] .cgroup_file_write+0x7c/0x180
      [c000000018d97cf0] [c0000000000e76b8] .vfs_write+0xe8/0x1b0
      [c000000018d97d90] [c0000000000e810c] .sys_write+0x4c/0x90
      [c000000018d97e30] [c00000000000852c] syscall_exit+0x0/0x40
      Signed-off-by: default avatarMilton Miller <miltonm@bga.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      7378547f
    • Linus Torvalds's avatar
      Linux 2.6.24-rc1 · c9927c2b
      Linus Torvalds authored
      The patch is big.  Really big.  You just won't believe how vastly hugely
      mindbogglingly big it is.  I mean you may think it's a long way down the
      road to the chemist, but that's just peanuts to how big the patch from
      2.6.23 is.
      
      But it's all good.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c9927c2b
    • Greg Ungerer's avatar
      add port definition for mcf UART driver · f0c15f48
      Greg Ungerer authored
      Add a port type definition for the Freescale UART driver ports (mcf.c).
      Signed-off-by: default avatarGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f0c15f48
    • Greg Ungerer's avatar
      m68knommu: remove unused machdep variable definitions · ee5a2402
      Greg Ungerer authored
      Remove old definitions of the timer function pointers.
      Add definitions of the common hardware timer functions.
      Signed-off-by: default avatarGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ee5a2402
    • Greg Ungerer's avatar
      m68knommu: define DMA channels for ColdFire 532x · ee8c8ada
      Greg Ungerer authored
      Create definition for DMA channels on the ColdFire 532x family.
      Signed-off-by: default avatarGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ee8c8ada