1. 03 12月, 2007 1 次提交
    • S
      sched: cpu accounting controller (V2) · d842de87
      Srivatsa Vaddagiri 提交于
      Commit cfb52856 removed a useful feature for
      us, which provided a cpu accounting resource controller.  This feature would be
      useful if someone wants to group tasks only for accounting purpose and doesnt
      really want to exercise any control over their cpu consumption.
      
      The patch below reintroduces the feature. It is based on Paul Menage's
      original patch (Commit 62d0df64), with
      these differences:
      
              - Removed load average information. I felt it needs more thought (esp
      	  to deal with SMP and virtualized platforms) and can be added for
      	  2.6.25 after more discussions.
              - Convert group cpu usage to be nanosecond accurate (as rest of the cfs
      	  stats are) and invoke cpuacct_charge() from the respective scheduler
      	  classes
      	- Make accounting scalable on SMP systems by splitting the usage
      	  counter to be per-cpu
      	- Move the code from kernel/cpu_acct.c to kernel/sched.c (since the
      	  code is not big enough to warrant a new file and also this rightly
      	  needs to live inside the scheduler. Also things like accessing
      	  rq->lock while reading cpu usage becomes easier if the code lived in
      	  kernel/sched.c)
      
      The patch also modifies the cpu controller not to provide the same accounting
      information.
      Tested-by: NBalbir Singh <balbir@linux.vnet.ibm.com>
      
       Tested the patches on top of 2.6.24-rc3. The patches work fine. Ran
       some simple tests like cpuspin (spin on the cpu), ran several tasks in
       the same group and timed them. Compared their time stamps with
       cpuacct.usage.
      Signed-off-by: NSrivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
      Signed-off-by: NBalbir Singh <balbir@linux.vnet.ibm.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      d842de87
  2. 01 12月, 2007 7 次提交
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · 92d499d9
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
        IB/ehca: Fix static rate if path faster than link
        IPoIB: Fix oops if xmit is called when priv->broadcast is NULL
      92d499d9
    • L
      Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus · 1811534a
      Linus Torvalds 提交于
      * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
        [MIPS] Fix build.
        [MIPS] Fix use of smp_processor_id() in preemptible code.
      1811534a
    • R
      [MIPS] Fix build. · e6a1bb72
      Ralf Baechle 提交于
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      e6a1bb72
    • P
      [MIPS] Fix use of smp_processor_id() in preemptible code. · 54fd6441
      Pavel Kiryukhin 提交于
      Freeing prom memory: 956kb freed
      Freeing firmware memory: 978944k freed
      Freeing unused kernel memory: 180k freed
      BUG: using smp_processor_id() in preemptible [00000000] code: swapper/1
      caller is r4k_dma_cache_wback_inv+0x144/0x2a0
      Call Trace:
       [<80117af8>] r4k_dma_cache_wback_inv+0x144/0x2a0
       [<802e4b84>] debug_smp_processor_id+0xd4/0xf0
       [<802e4b7c>] debug_smp_processor_id+0xcc/0xf0
      ...
      CONFIG_DEBUG_PREEMPT is enabled.
      --
      Bug cause is blast_dcache_range() in preemptible code [in
      r4k_dma_cache_wback_inv()].
      blast_dcache_range() is constructed via __BUILD_BLAST_CACHE_RANGE that
      uses cpu_dcache_line_size(). It uses current_cpu_data that use
      smp_processor_id() in turn. In case of CONFIG_DEBUG_PREEMPT
      smp_processor_id emits BUG if we are executing with preemption
      enabled.
      
      Cpu options of cpu0 are assumed to be the superset of all processors.
      
      Can I make the same assumptions for cache line size  and fix this
      issue the following way:
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      54fd6441
    • J
      IB/ehca: Fix static rate if path faster than link · b1812582
      Joachim Fenkes 提交于
      The formula would yield -1 if the path is faster than the link, which
      is wrong in a bad way (max throttling).  Clamp to 0, which is the
      correct value.
      Signed-off-by: NJoachim Fenkes <fenkes@de.ibm.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      b1812582
    • L
      Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm · b62c8559
      Linus Torvalds 提交于
      * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm:
        [ARM] 4680/1: parentheses around NR_IRQS definition
        [ARM] 4679/1: AT91: Change maintainer email address
        [ARM] 4675/1: pxa: fix mfp address definition error for pxa320
        [ARM] 4674/1: pxa: increase LCD PCLK drive strength to fast 2mA for PXA300/PXA310
        [ARM] 4673/1: pxa: add missing IRQ_SSP4 definitions for PXA3xx
        [ARM] 4672/1: pxa: fix DRCMR(n) to support PXA27x and later processors
        [ARM] 4665/1: fix __und_usr wrt accessing the undefined insn in user space
        [ARM] 4659/1: remove possibilities for spurious false negative with __kuser_cmpxchg
        [ARM] 4661/1: fix do_undefinstr wrt the enabling of IRQs
        [ARM] uengine: fix memset size error
        [ARM] 4648/1: i.MX/MX1 ensure more complete AITC initialization
        [ARM] 4611/2: AT91: Fix GPIO buttons pins on SAM9261-EK.
        [ARM] 4650/1: AT91: New-style init of I2C, support for i2c-gpio
        [ARM] 4604/2: AT91: Master clock divistor on SAM9
        [ARM] 4662/1: Fix PXA serial driver compilation if SERIAL_PXA_CONSOLE is disabled
        [ARM] PXA ssp: unlock when ssp tries to close an invalid port
        [ARM] 4654/1: pxa: update default MFP register value
        [ARM] 4653/1: pxa: fix a gpio typo in mfp-pxa320.h
        [ARM] 4652/1: pxa: fix a typo of pxa27x usb host clk definition
        [ARM] 4651/1: pxa: add PXA3xx specific IRQ definitions
      b62c8559
    • M
      Fix kmem_cache_free performance regression in slab · 80cbd911
      Matthew Wilcox 提交于
      The database performance group have found that half the cycles spent
      in kmem_cache_free are spent in this one call to BUG_ON.  Moving it
      into the CONFIG_SLAB_DEBUG-only function cache_free_debugcheck() is a
      performance win of almost 0.5% on their particular benchmark.
      
      The call was added as part of commit ddc2e812
      with the comment that "overhead should be minimal".  It may have been
      minimal at the time, but it isn't now.
      
      [ Quoth Pekka Enberg: "I don't think the BUG_ON per se caused the
        performance regression but rather the virt_to_head_page() changes to
        virt_to_cache() that were added later." ]
      Signed-off-by: NMatthew Wilcox <willy@linux.intel.com>
      Acked-by: NPekka J Enberg <penberg@cs.helsinki.fi>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      80cbd911
  3. 30 11月, 2007 32 次提交