Skip to content
  1. May 14, 2012
  2. May 09, 2012
    • Peter Zijlstra's avatar
      sched/numa: Rewrite the CONFIG_NUMA sched domain support · cb83b629
      Peter Zijlstra authored
      
      
      The current code groups up to 16 nodes in a level and then puts an
      ALLNODES domain spanning the entire tree on top of that. This doesn't
      reflect the numa topology and esp for the smaller not-fully-connected
      machines out there today this might make a difference.
      
      Therefore, build a proper numa topology based on node_distance().
      
      Since there's no fixed numa layers anymore, the static SD_NODE_INIT
      and SD_ALLNODES_INIT aren't usable anymore, the new code tries to
      construct something similar and scales some values either on the
      number of cpus in the domain and/or the node_distance() ratio.
      
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Anton Blanchard <anton@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Chris Metcalf <cmetcalf@tilera.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: linux-alpha@vger.kernel.org
      Cc: linux-ia64@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-mips@linux-mips.org
      Cc: linuxppc-dev@lists.ozlabs.org
      Cc: linux-sh@vger.kernel.org
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: sparclinux@vger.kernel.org
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: x86@kernel.org
      Cc: Dimitri Sivanich <sivanich@sgi.com>
      Cc: Greg Pearson <greg.pearson@hp.com>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: bob.picco@oracle.com
      Cc: chris.mason@oracle.com
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Link: http://lkml.kernel.org/n/tip-r74n3n8hhuc2ynbrnp3vt954@git.kernel.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      cb83b629
    • Peter Zijlstra's avatar
      sched/fair: Propagate 'struct lb_env' usage into find_busiest_group · bd939f45
      Peter Zijlstra authored
      
      
      More function argument passing reduction.
      
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-v66ivjfqdiqdso01lqgqx6qf@git.kernel.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      bd939f45
    • Peter Zijlstra's avatar
      sched/fair: Add some serialization to the sched_domain load-balance walk · 0ce90475
      Peter Zijlstra authored
      
      
      Since the sched_domain walk is completely unserialized (!SD_SERIALIZE)
      it is possible that multiple cpus in the group get elected to do the
      next level. Avoid this by adding some serialization.
      
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-vqh9ai6s0ewmeakjz80w4qz6@git.kernel.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      0ce90475
    • Peter Zijlstra's avatar
      sched/fair: Let minimally loaded cpu balance the group · c22402a2
      Peter Zijlstra authored
      
      
      Currently we let the leftmost (or first idle) cpu ascend the
      sched_domain tree and perform load-balancing. The result is that the
      busiest cpu in the group might be performing this function and pull
      more load to itself. The next load balance pass will then try to
      equalize this again.
      
      Change this to pick the least loaded cpu to perform higher domain
      balancing.
      
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-v8zlrmgmkne3bkcy9dej1fvm@git.kernel.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      c22402a2
    • Peter Zijlstra's avatar
      sched: Change rq->nr_running to unsigned int · c82513e5
      Peter Zijlstra authored
      
      
      Since there's a PID space limit of 30bits (see
      futex.h:FUTEX_TID_MASK) and allocating that many tasks (assuming a
      lower bound of 2 pages per task) would still take 8T of memory it
      seems reasonable to say that unsigned int is sufficient for
      rq->nr_running.
      
      When we do get anywhere near that amount of tasks I suspect other
      things would go funny, load-balancer load computations would really
      need to be hoisted to 128bit etc.
      
      So save a few bytes and convert rq->nr_running and friends to
      unsigned int.
      
      Suggested-by: default avatarIngo Molnar <mingo@kernel.org>
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-y3tvyszjdmbibade5bw8zl81@git.kernel.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      c82513e5
    • Ingo Molnar's avatar
      x86/numa: Check for nonsensical topologies on real hw as well · ad7687dd
      Ingo Molnar authored
      
      
      Instead of only checking nonsensical topologies on numa-emu, do it
      on real hardware as well, and print a warning.
      
      Acked-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: x86@kernel.org
      Link: http://lkml.kernel.org/n/tip-re15l0jqjtpz709oxozt2zoh@git.kernel.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      ad7687dd
    • Peter Zijlstra's avatar
      x86/numa: Hard partition cpu topology masks on node boundaries · 0acbb440
      Peter Zijlstra authored
      
      
      When using numa=fake= you can get weird topologies where LLCs can span
      nodes and other such nonsense. Cure this by hard partitioning these
      masks on node boundaries.
      
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: x86@kernel.org
      Link: http://lkml.kernel.org/n/tip-di5vwjm96q5vrb76opwuflwx@git.kernel.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      0acbb440
    • Peter Zijlstra's avatar
      x86/numa: Allow specifying node_distance() for numa=fake · 94c0dd32
      Peter Zijlstra authored
      
      
      Allows emulating more interesting NUMA configurations like a quad
      socket AMD Magny-Cour:
      
       "numa=fake=8:10,16,16,22,16,22,16,22,
                    16,10,22,16,22,16,22,16,
                    16,22,10,16,16,22,16,22,
                    22,16,16,10,22,16,22,16,
                    16,22,16,22,10,16,16,22,
                    22,16,22,16,16,10,22,16,
                    16,22,16,22,16,22,10,16,
                    22,16,22,16,22,16,16,10"
      
      Which has a non-fully-connected topology.
      
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: x86@kernel.org
      Link: http://lkml.kernel.org/n/tip-e1136ef7kdffj7yf9tjhydln@git.kernel.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      94c0dd32
  3. May 07, 2012
  4. May 06, 2012
    • Chris Mason's avatar
      Btrfs: avoid sleeping in verify_parent_transid while atomic · b9fab919
      Chris Mason authored
      
      
      verify_parent_transid needs to lock the extent range to make
      sure no IO is underway, and so it can safely clear the
      uptodate bits if our checks fail.
      
      But, a few callers are using it with spinlocks held.  Most
      of the time, the generation numbers are going to match, and
      we don't want to switch to a blocking lock just for the error
      case.  This adds an atomic flag to verify_parent_transid,
      and changes it to return EAGAIN if it needs to block to
      properly verifiy things.
      
      Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
      b9fab919
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha · 03cb00b3
      Linus Torvalds authored
      Pull alpha fixes from Matt Turner:
       "My alpha tree is back up (after taking quite some time to get my GPG
        key signed).  It contains just some simple fixes."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha:
        alpha: silence 'const' warning in sys_marvel.c
        alpha: include module.h to fix modpost on Tsunami
        alpha: properly define get/set_rtc_time on Marvel/SMP
        alpha: VGA_HOSE depends on VGA_CONSOLE
      03cb00b3
    • Jiri Slaby's avatar
      TTY: pdc_cons, fix regression in close · 49a5f3cf
      Jiri Slaby authored
      The test in pdc_console_tty_close '!tty->count' was always wrong
      because tty->count is decremented after tty->ops->close is called and
      thus can never be zero. Hence the 'then' branch was never executed and
      the timer never deleted.
      
      This did not matter until commit 5dd5bc40
      
       ("TTY: pdc_cons, use
      tty_port").  There we needed to set TTY in tty_port to NULL, but this
      never happened due to the bug above.
      
      So change the test to really trigger at the last close by changing the
      condition to 'tty->count == 1'.
      
      Well, the driver should not touch tty->count at all.  It should use
      tty_port->count and count open count there itself.
      
      Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
      Reported-and-tested-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: Helge Deller <deller@gmx.de>
      Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      49a5f3cf
    • Linus Torvalds's avatar
      Merge tag 'sound-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 1c2f9548
      Linus Torvalds authored
      Pull sound sound fixes from Takashi Iwai:
       "As good as nothing exciting here; just a few trivial fixes for various
        ASoC stuff."
      
      * tag 'sound-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ASoC: omap-pcm: Free dma buffers in case of error.
        ASoC: s3c2412-i2s: Fix dai registration
        ASoC: wm8350: Don't use locally allocated codec struct
        ASoC: tlv312aic23: unbreak resume
        ASoC: bf5xx-ssm2602: Set DAI format
        ASoC: core: check of_property_count_strings failure
        ASoC: dt: sgtl5000.txt: Add description for 'reg' field
        ASoC: wm_hubs: Make sure we don't disable differential line outputs
      1c2f9548
    • Linus Torvalds's avatar
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux · 59068e36
      Linus Torvalds authored
      Pull an ACPI patch from Len Brown:
       "It fixes a D3 issue new in 3.4-rc1."
      
      By Lin Ming via Len Brown:
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
        ACPI: Fix D3hot v D3cold confusion
      59068e36
    • Sasha Levin's avatar
      init: don't try mounting device as nfs root unless type fully matches · 377485f6
      Sasha Levin authored
      
      
      Currently, we'll try mounting any device who's major device number is
      UNNAMED_MAJOR as NFS root.  This would happen for non-NFS devices as
      well (such as 9p devices) but it wouldn't cause any issues since
      mounting the device as NFS would fail quickly and the code proceeded to
      doing the proper mount:
      
             [  101.522716] VFS: Unable to mount root fs via NFS, trying floppy.
             [  101.534499] VFS: Mounted root (9p filesystem) on device 0:18.
      
      Commit 6829a048102a ("NFS: Retry mounting NFSROOT") introduced retries
      when mounting NFS root, which means that now we don't immediately fail
      and instead it takes an additional 90+ seconds until we stop retrying,
      which has revealed the issue this patch fixes.
      
      This meant that it would take an additional 90 seconds to boot when
      we're not using a device type which gets detected in order before NFS.
      
      This patch modifies the NFS type check to require device type to be
      'Root_NFS' instead of requiring the device to have an UNNAMED_MAJOR
      major.  This makes boot process cleaner since we now won't go through
      the NFS mounting code at all when the device isn't an NFS root
      ("/dev/nfs").
      
      Signed-off-by: default avatarSasha Levin <levinsasha928@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      377485f6
  5. May 05, 2012