1. 03 11月, 2009 1 次提交
    • T
      Revert "[IA64] fix percpu warnings" · e8c93fc7
      Tony Luck 提交于
      This reverts commit b94b0808.
      
      genksyms currently cannot handle complicated types for exported
      percpu variables.  Drop this patch for now as it prevents a
      module from being loaded on sn2 systems:
      
       xpc: no symbol version for per_cpu____sn_cnodeid_to_nasid
       xpc: Unknown symbol per_cpu____sn_cnodeid_to_nasid
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      e8c93fc7
  2. 16 10月, 2009 1 次提交
  3. 14 10月, 2009 5 次提交
  4. 10 10月, 2009 1 次提交
  5. 08 10月, 2009 1 次提交
    • T
      [IA64] Squeeze ticket locks back into 4 bytes. · 9d40ee20
      Tony Luck 提交于
      Linus pointed out that other people have spent large amounts of time
      and effort to optimize the layout of frequently used structures. Often
      these have embedded locks, and the assumption is that a lock takes
      4 bytes.  Linus also pointed out how to work with the limited options
      for atomic instructions on Itanium.
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      9d40ee20
  6. 28 9月, 2009 1 次提交
  7. 27 9月, 2009 1 次提交
  8. 25 9月, 2009 1 次提交
    • T
      [IA64] implement ticket locks for Itanium · 2c86963b
      Tony Luck 提交于
      Back in January 2008 Nick Piggin implemented "ticket" spinlocks
      for X86 (See commit 314cdbef).
      
      IA64 implementation has a couple of differences because of the
      available atomic operations ... e.g. we have no fetchadd2 instruction
      that operates on a 16-bit quantity so we make ticket locks use
      a 32-bit word for each of the current ticket and now-serving values.
      
      Performance on uncontended locks is about 8% worse than the previous
      implementation, but this seems a good trade for determinism in the
      contended case. Performance impact on macro-level benchmarks is in
      the noise.
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      2c86963b
  9. 24 9月, 2009 4 次提交
  10. 23 9月, 2009 4 次提交
  11. 22 9月, 2009 3 次提交
  12. 21 9月, 2009 2 次提交
  13. 20 9月, 2009 2 次提交
    • S
      kbuild: rename ld-option to cc-ldoption · f86fd306
      Sam Ravnborg 提交于
      ld-option is misnamed as it test options to gcc, not to ld.
      Renamed it to reflect this.
      
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Roland McGrath <roland@redhat.com>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      f86fd306
    • S
      kbuild: use INSTALLKERNEL to select customized installkernel script · caa27b66
      Sam Ravnborg 提交于
      Replace the use of CROSS_COMPILE to select a customized
      installkernel script with the possibility to set INSTALLKERNEL
      to select a custom installkernel script when running make:
      
          make INSTALLKERNEL=arm-installkernel install
      
      With this patch we are now more consistent across
      different architectures - they did not all support use
      of CROSS_COMPILE.
      
      The use of CROSS_COMPILE was a hack as this really belongs
      to gcc/binutils and the installkernel script does not change
      just because we change toolchain.
      
      The use of CROSS_COMPILE caused troubles with an upcoming patch
      that saves CROSS_COMPILE when a kernel is built - it would no
      longer be installable.
      [Thanks to Peter Z. for this hint]
      
      This patch undos what Ian did in commit:
      
        0f8e2d62
        ("use ${CROSS_COMPILE}installkernel in arch/*/boot/install.sh")
      
      The patch has been lightly tested on x86 only - but all changes
      looks obvious.
      Acked-by: NPeter Zijlstra <peterz@infradead.org>
      Acked-by: Mike Frysinger <vapier@gentoo.org> [blackfin]
      Acked-by: Russell King <linux@arm.linux.org.uk> [arm]
      Acked-by: Paul Mundt <lethal@linux-sh.org> [sh]
      Acked-by: "H. Peter Anvin" <hpa@zytor.com> [x86]
      Cc: Ian Campbell <icampbell@arcom.com>
      Cc: Tony Luck <tony.luck@intel.com> [ia64]
      Cc: Fenghua Yu <fenghua.yu@intel.com> [ia64]
      Cc: Hirokazu Takata <takata@linux-m32r.org> [m32r]
      Cc: Geert Uytterhoeven <geert@linux-m68k.org> [m68k]
      Cc: Kyle McMartin <kyle@mcmartin.ca> [parisc]
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> [powerpc]
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> [s390]
      Cc: Thomas Gleixner <tglx@linutronix.de> [x86]
      Cc: Ingo Molnar <mingo@redhat.com> [x86]
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      caa27b66
  14. 17 9月, 2009 1 次提交
  15. 16 9月, 2009 4 次提交
  16. 15 9月, 2009 8 次提交
    • J
      [IA64] pci_br, fix infinite loop in find_free_ate() · 9b6b9399
      Jiri Slaby 提交于
      When
      * there is almost out of ates
      * one asks for more than one ate
      * there are some available at the end of ate array
      then the inner for loop will end without incrementing 'index'. This
      means the outer loop will start at the same point finding it's available
      and runs the inner loop again from the same index. This repeats forever.
      
      Hence make sure we check we were at the end of ate array and return
      an error in such case.
      Signed-off-by: NJiri Slaby <jirislaby@gmail.com>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Found-by: NJeff Mahoney <jeffm@novell.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      9b6b9399
    • P
      sched: Reduce forkexec_idx · b8a543ea
      Peter Zijlstra 提交于
      If we're looking to place a new task, we might as well find the
      idlest position _now_, not 1 tick ago.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      b8a543ea
    • M
      sched: Improve latencies and throughput · 0ec9fab3
      Mike Galbraith 提交于
      Make the idle balancer more agressive, to improve a
      x264 encoding workload provided by Jason Garrett-Glaser:
      
       NEXT_BUDDY NO_LB_BIAS
       encoded 600 frames, 252.82 fps, 22096.60 kb/s
       encoded 600 frames, 250.69 fps, 22096.60 kb/s
       encoded 600 frames, 245.76 fps, 22096.60 kb/s
      
       NO_NEXT_BUDDY LB_BIAS
       encoded 600 frames, 344.44 fps, 22096.60 kb/s
       encoded 600 frames, 346.66 fps, 22096.60 kb/s
       encoded 600 frames, 352.59 fps, 22096.60 kb/s
      
       NO_NEXT_BUDDY NO_LB_BIAS
       encoded 600 frames, 425.75 fps, 22096.60 kb/s
       encoded 600 frames, 425.45 fps, 22096.60 kb/s
       encoded 600 frames, 422.49 fps, 22096.60 kb/s
      
      Peter pointed out that this is better done via newidle_idx,
      not via LB_BIAS, newidle balancing should look for where
      there is load _now_, not where there was load 2 ticks ago.
      
      Worst-case latencies are improved as well as no buddies
      means less vruntime spread. (as per prior lkml discussions)
      
      This change improves kbuild-peak parallelism as well.
      Reported-by: NJason Garrett-Glaser <darkshikari@gmail.com>
      Signed-off-by: NMike Galbraith <efault@gmx.de>
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <1253011667.9128.16.camel@marge.simson.net>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      0ec9fab3
    • P
      sched: Tweak wake_idx · 78e7ed53
      Peter Zijlstra 提交于
      When merging select_task_rq_fair() and sched_balance_self() we lost
      the use of wake_idx, restore that and set them to 0 to make wake
      balancing more aggressive.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      78e7ed53
    • P
      sched: Merge select_task_rq_fair() and sched_balance_self() · c88d5910
      Peter Zijlstra 提交于
      The problem with wake_idle() is that is doesn't respect things like
      cpu_power, which means it doesn't deal well with SMT nor the recent
      RT interaction.
      
      To cure this, it needs to do what sched_balance_self() does, which
      leads to the possibility of merging select_task_rq_fair() and
      sched_balance_self().
      
      Modify sched_balance_self() to:
      
        - update_shares() when walking up the domain tree,
          (it only called it for the top domain, but it should
           have done this anyway), which allows us to remove
          this ugly bit from try_to_wake_up().
      
        - do wake_affine() on the smallest domain that contains
          both this (the waking) and the prev (the wakee) cpu for
          WAKE invocations.
      
      Then use the top-down balance steps it had to replace wake_idle().
      
      This leads to the dissapearance of SD_WAKE_BALANCE and
      SD_WAKE_IDLE_FAR, with SD_WAKE_IDLE replaced with SD_BALANCE_WAKE.
      
      SD_WAKE_AFFINE needs SD_BALANCE_WAKE to be effective.
      
      Touch all topology bits to replace the old with new SD flags --
      platforms might need re-tuning, enabling SD_BALANCE_WAKE
      conditionally on a NUMA distance seems like a good additional
      feature, magny-core and small nehalem systems would want this
      enabled, systems with slow interconnects would not.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c88d5910
    • A
      cleanup console_print() · 353f6dd2
      Anirban Sinha 提交于
      console_print() is an old legacy interface mostly unused in the entire
      kernel tree. It's best to clean up its existing use and let developers
      use their own implementation of it as they feel fit.
      Signed-off-by: NAnirban Sinha <asinha@zeugmasystems.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      353f6dd2
    • H
      [IA64] kdump: Short path to freeze CPUs · 0cced40e
      Hidetoshi Seto 提交于
      Setting monarch_cpu = -1 to let slaves frozen might not work, because
      there might be slaves being late, not entered the rendezvous yet.
      Such slaves might be caught in while (monarch_cpu == -1) loop.
      
      Use kdump_in_progress instead of monarch_cpus to break INIT rendezvous
      and let all slaves enter DIE_INIT_SLAVE_LEAVE smoothly.
      
      And monarch no longer need to manage rendezvous if once kdump_in_progress
      is set, catch the monarch in DIE_INIT_MONARCH_ENTER then.
      Signed-off-by: NHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
      Cc: Vivek Goyal <vgoyal@redhat.com>
      Cc: Haren Myneni <hbabu@us.ibm.com>
      Cc: kexec@lists.infradead.org
      Acked-by: NFenghua Yu <fenghua.yu@intel.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      0cced40e
    • H
      [IA64] kdump: Try INIT regardless of · 5959906e
      Hidetoshi Seto 提交于
      kdump_on_init
      
      CPUs should be frozen if possible, otherwise it might hinder kdump.
      So if there are CPUs not respond to IPI, try INIT to stop them.
      Signed-off-by: NHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
      Cc: Vivek Goyal <vgoyal@redhat.com>
      Cc: Haren Myneni <hbabu@us.ibm.com>
      Cc: kexec@lists.infradead.org
      Acked-by: NFenghua Yu <fenghua.yu@intel.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      5959906e