1. 06 11月, 2008 1 次提交
    • I
      sched: re-tune balancing · 9fcd18c9
      Ingo Molnar 提交于
      Impact: improve wakeup affinity on NUMA systems, tweak SMP systems
      
      Given the fixes+tweaks to the wakeup-buddy code, re-tweak the domain
      balancing defaults on NUMA and SMP systems.
      
      Turn on SD_WAKE_AFFINE which was off on x86 NUMA - there's no reason
      why we would not want to have wakeup affinity across nodes as well.
      (we already do this in the standard NUMA template.)
      
      lat_ctx on a NUMA box is particularly happy about this change:
      
      before:
      
       |   phoenix:~/l> ./lat_ctx -s 0 2
       |   "size=0k ovr=2.60
       |   2 5.70
      
      after:
      
       |   phoenix:~/l> ./lat_ctx -s 0 2
       |   "size=0k ovr=2.65
       |   2 2.07
      
      a 2.75x speedup.
      
      pipe-test is similarly happy about it too:
      
       |  phoenix:~/sched-tests> ./pipe-test
       |   18.26 usecs/loop.
       |   14.70 usecs/loop.
       |   14.38 usecs/loop.
       |   10.55 usecs/loop.              # +WAKE_AFFINE on domain0+domain1
       |   8.63 usecs/loop.
       |   8.59 usecs/loop.
       |   9.03 usecs/loop.
       |   8.94 usecs/loop.
       |   8.96 usecs/loop.
       |   8.63 usecs/loop.
      
      Also:
      
       - disable SD_BALANCE_NEWIDLE on NUMA and SMP domains (keep it for siblings)
       - enable SD_WAKE_BALANCE on SMP domains
      
      Sysbench+postgresql improves all around the board, quite significantly:
      
                 .28-rc3-11474e2c  .28-rc3-11474e2c-tune
      -------------------------------------------------
          1:             571              688    +17.08%
          2:            1236             1206    -2.55%
          4:            2381             2642    +9.89%
          8:            4958             5164    +3.99%
         16:            9580             9574    -0.07%
         32:            7128             8118    +12.20%
         64:            7342             8266    +11.18%
        128:            7342             8064    +8.95%
        256:            7519             7884    +4.62%
        512:            7350             7731    +4.93%
      -------------------------------------------------
        SUM:           55412            59341    +6.62%
      
      So it's a win both for the runup portion, the peak area and the tail.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      9fcd18c9
  2. 04 11月, 2008 2 次提交
  3. 03 11月, 2008 1 次提交
  4. 31 10月, 2008 11 次提交
    • K
      resources: add io-mapping functions to dynamically map large device apertures · 9663f2e6
      Keith Packard 提交于
      Impact: add new generic io_map_*() APIs
      
      Graphics devices have large PCI apertures which would consume a significant
      fraction of a 32-bit address space if mapped during driver initialization.
      Using ioremap at runtime is impractical as it is too slow.
      
      This new set of interfaces uses atomic mappings on 32-bit processors and a
      large static mapping on 64-bit processors to provide reasonable 32-bit
      performance and optimal 64-bit performance.
      
      The current implementation sits atop the io_map_atomic fixmap-based
      mechanism for 32-bit processors.
      
      This includes some editorial suggestions from Randy Dunlap for
      Documentation/io-mapping.txt
      Signed-off-by: NKeith Packard <keithp@keithp.com>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      9663f2e6
    • R
      net: delete excess kernel-doc notation · ad1d967c
      Randy Dunlap 提交于
      Remove excess kernel-doc function parameters from networking header
      & driver files:
      
      Warning(include/net/sock.h:946): Excess function parameter or struct member 'sk' description in 'sk_filter_release'
      Warning(include/linux/netdevice.h:1545): Excess function parameter or struct member 'cpu' description in 'netif_tx_lock'
      Warning(drivers/net/wan/z85230.c:712): Excess function parameter or struct member 'regs' description in 'z8530_interrupt'
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ad1d967c
    • J
      libata: add whitelist for devices with known good pata-sata bridges · 9ce8e307
      Jens Axboe 提交于
      libata currently imposes a UDMA5 max transfer rate and 200 sector max
      transfer size for SATA devices that sit behind a pata-sata bridge. Lots
      of devices have known good bridges that don't need this limit applied.
      The MTRON SSD disks are such devices. Transfer rates are increased by
      20-30% with the restriction removed.
      
      So add a "blacklist" entry for the MTRON devices, with a flag indicating
      that the bridge is known good.
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      9ce8e307
    • T
      gianfar: Fix race in TBI/SerDes configuration · c132419e
      Trent Piepho 提交于
      The init_phy() function attaches to the PHY, then configures the
      SerDes<->TBI link (in SGMII mode).  The TBI is on the MDIO bus with the PHY
      (sort of) and is accessed via the gianfar's MDIO registers, using the
      functions gfar_local_mdio_read/write(), which don't do any locking.
      
      The previously attached PHY will start a work-queue on a timer, and
      probably an irq handler as well, which will talk to the PHY and thus use
      the MDIO bus.  This uses phy_read/write(), which have locking, but not
      against the gfar_local_mdio versions.
      
      The result is that PHY code will try to use the MDIO bus at the same time
      as the SerDes setup code, corrupting the transfers.
      
      Setting up the SerDes before attaching to the PHY will insure that there is
      no race between the SerDes code and *our* PHY, but doesn't fix everything.
      Typically the PHYs for all gianfar devices are on the same MDIO bus, which
      is associated with the first gianfar device.  This means that the first
      gianfar's SerDes code could corrupt the MDIO transfers for a different
      gianfar's PHY.
      
      The lock used by phy_read/write() is contained in the mii_bus structure,
      which is pointed to by the PHY.  This is difficult to access from the
      gianfar drivers, as there is no link between a gianfar device and the
      mii_bus which shares the same MDIO registers.  As far as the device layer
      and drivers are concerned they are two unrelated devices (which happen to
      share registers).
      
      Generally all gianfar devices' PHYs will be on the bus associated with the
      first gianfar.  But this might not be the case, so simply locking the
      gianfar's PHY's mii bus might not lock the mii bus that the SerDes setup
      code is going to use.
      
      We solve this by having the code that creates the gianfar platform device
      look in the device tree for an mdio device that shares the gianfar's
      registers.  If one is found the ID of its platform device is saved in the
      gianfar's platform data.
      
      A new function in the gianfar mii code, gfar_get_miibus(), can use the bus
      ID to search through the platform devices for a gianfar_mdio device with
      the right ID.  The platform device's driver data is the mii_bus structure,
      which the SerDes setup code can use to lock the current bus.
      Signed-off-by: NTrent Piepho <tpiepho@freescale.com>
      CC: Andy Fleming <afleming@freescale.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      c132419e
    • F
      spi: fix compile error · effdb949
      Fernando Luis Vazquez Cao 提交于
      Fix compile error below:
      
           LD      drivers/spi/built-in.o
           CC [M]  drivers/spi/spi_gpio.o
         In file included from drivers/spi/spi_gpio.c:26:
         include/linux/spi/spi_bitbang.h:23: error: field `work' has incomplete type
         make[2]: *** [drivers/spi/spi_gpio.o] Error 1
         make[1]: *** [drivers/spi] Error 2
         make: *** [drivers] Error 2
      Signed-off-by: NFernando Luis Vazquez Cao <fernando@oss.ntt.co.jp>
      Cc: David Brownell <david-b@pacbell.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      effdb949
    • A
      nfsd: fix vm overcommit crash · 731572d3
      Alan Cox 提交于
      Junjiro R.  Okajima reported a problem where knfsd crashes if you are
      using it to export shmemfs objects and run strict overcommit.  In this
      situation the current->mm based modifier to the overcommit goes through a
      NULL pointer.
      
      We could simply check for NULL and skip the modifier but we've caught
      other real bugs in the past from mm being NULL here - cases where we did
      need a valid mm set up (eg the exec bug about a year ago).
      
      To preserve the checks and get the logic we want shuffle the checking
      around and add a new helper to the vm_ security wrappers
      
      Also fix a current->mm reference in nommu that should use the passed mm
      
      [akpm@linux-foundation.org: coding-style fixes]
      [akpm@linux-foundation.org: fix build]
      Reported-by: NJunjiro R. Okajima <hooanon05@yahoo.co.jp>
      Acked-by: NJames Morris <jmorris@namei.org>
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      731572d3
    • R
      kernel.h: fix might_sleep kernel-doc · 7106a27b
      Randy Dunlap 提交于
      Put the kernel-doc for might_sleep() _immediately_ before the macro
      (no intervening lines).  Otherwise kernel-doc complains like so:
      
      Warning(linux-2.6.27-rc3-git2//include/linux/kernel.h:129): No description found for parameter 'file'
      Warning(linux-2.6.27-rc3-git2//include/linux/kernel.h:129): No description found for parameter 'line'
      
      because kernel-doc is looking at the wrong function prototype (i.e.,
      __might_sleep).  [Yes, I have a todo note to myself to check/warn for that
      inconsistency in scripts/kernel-doc.]
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Cc: <Uwe.Kleine-Koenig@digi.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7106a27b
    • N
      fs: remove prepare_write/commit_write · 4e02ed4b
      Nick Piggin 提交于
      Nothing uses prepare_write or commit_write. Remove them from the tree
      completely.
      
      [akpm@linux-foundation.org: schedule simple_prepare_write() for unexporting]
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4e02ed4b
    • L
      cgroups: tiny cleanups · 9b913735
      Li Zefan 提交于
      - remove 'private' field from struct subsys
      - remove cgroup_init_smp()
      Signed-off-by: NLi Zefan <lizf@cn.fujitsu.com>
      Acked-by: NPaul Menage <menage@google.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9b913735
    • L
      freezer_cg: use thaw_process() in unfreeze_cgroup() · 00c2e63c
      Li Zefan 提交于
      Don't duplicate the implementation of thaw_process().
      
      [akpm@linux-foundation.org: make __thaw_process() static]
      Signed-off-by: NLi Zefan <lizf@cn.fujitsu.com>
      Cc: Cedric Le Goater <clg@fr.ibm.com>
      Acked-by: NMatt Helsley <matthltc@us.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      00c2e63c
    • K
      mm: increase the default mlock limit from 32k to 64k · 08334222
      Kurt Garloff 提交于
      By default, non-privileged tasks can only mlock() a small amount of
      memory to avoid a DoS attack by ordinary users.  The Linux kernel
      defaulted to 32k (on a 4k page size system) to accommodate the needs of
      gpg.
      
      However, newer gpg2 needs 64k in various circumstances and otherwise
      fails miserably, see bnc#329675.
      
      Change the default to 64k, and make it more agnostic to PAGE_SIZE.
      Signed-off-by: NKurt Garloff <garloff@suse.de>
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      08334222
  5. 30 10月, 2008 1 次提交
  6. 29 10月, 2008 1 次提交
  7. 28 10月, 2008 2 次提交
  8. 27 10月, 2008 2 次提交
  9. 25 10月, 2008 1 次提交
  10. 24 10月, 2008 3 次提交
  11. 23 10月, 2008 15 次提交