1. 27 7月, 2008 31 次提交
  2. 26 7月, 2008 9 次提交
    • H
      sys_paccept definition missing __user annotation · b4615e69
      Harvey Harrison 提交于
      Introduced by commit aaca0bdc ("flag
      parameters: paccept"):
      
        net/socket.c:1515:17: error: symbol 'sys_paccept' redeclared with different type (originally declared at include/linux/syscalls.h:413) - incompatible argument 4 (different address spaces)
      Signed-off-by: NHarvey Harrison <harvey.harrison@gmail.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b4615e69
    • J
      bootmem: Move node allocation macros back to !HAVE_ARCH_BOOTMEM_NODE · c6af5e9f
      Johannes Weiner 提交于
      These got unintentionally moved, put them back as x86 provides its own
      versions.
      Signed-off-by: NJohannes Weiner <hannes@saeurebad.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c6af5e9f
    • A
      remove dummy asm/kvm.h files · 7dcf2a9f
      Adrian Bunk 提交于
      This patch removes the dummy asm/kvm.h files on architectures not (yet)
      supporting KVM and uses the same conditional headers installation as
      already used for a.out.h .
      
      Also removed are superfluous install rules in the s390 and x86 Kbuild
      files (they are already in Kbuild.asm).
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Acked-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      7dcf2a9f
    • A
      edac: i5100 new intel chipset driver · 8f421c59
      Arthur Jones 提交于
      Preliminary support for the Intel 5100 MCH.  CE and UE errors are reported
      along with the current DIMM label information and other memory parameters.
      
      Reasons why this is preliminary:
      
      1) This chip has 2 independent memory controllers which, for best
         perforance, use interleaved accesses to the DDR2 memory.  This
         architecture does not map very well to the current edac data structures
         which depend on symmetric channel access to the interleaved data.
         Without core changes, the best I could do for now is to map both memory
         controllers to different csrows (first all ranks of controller 0, then
         all ranks of controller 1).  Someone much more familiar with the edac
         core than I will probably need to come up with a more general data
         structure to handle the interleaving and de-interleaving of the two
         memory controllers.
      
      2) I have not yet tackled the de-interleaving of the rank/controller
         address space into the physical address space of the CPU.  There is
         nothing fundamentally missing, it is just ending up to be a lot of
         code, and I'd rather keep it separate for now, esp since it doesn't
         work yet...
      
      3) The code depends on a particular i5100 chip select to DIMM mainboard
         chip select mapping.  This mapping seems obvious to me in order to
         support dual and single ranked memory, but it is not unique and DIMM
         labels could be wrong on other mainboards.  There is no way to query
         this mapping that I know of.
      
      4) The code requires that the i5100 is in 32GB mode.  Only 4 ranks per
         controller, 2 ranks per DIMM are supported.  I do not have hardware
         (nor do I expect to have hardware anytime soon) for the 48GB (6 ranks
         per controller) mode.
      
      5) The serial presence detect code should be broken out into a "real"
         i2c driver so that decode-dimms.pl can work.
      Signed-off-by: NArthur Jones <ajones@riverbed.com>
      Signed-off-by: NDoug Thompson <dougthompson@xmission.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8f421c59
    • M
      fuse: nfs export special lookups · 33670fa2
      Miklos Szeredi 提交于
      Implement the get_parent export operation by sending a LOOKUP request with
      ".." as the name.
      
      Implement looking up an inode by node ID after it has been evicted from
      the cache.  This is done by seding a LOOKUP request with "." as the name
      (for all file types, not just directories).
      
      The filesystem can set the FUSE_EXPORT_SUPPORT flag in the INIT reply, to
      indicate that it supports these special lookups.
      
      Thanks to John Muir for the original implementation of this feature.
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      Cc: "J. Bruce Fields" <bfields@fieldses.org>
      Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
      Cc: Matthew Wilcox <matthew@wil.cx>
      Cc: David Teigland <teigland@redhat.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      33670fa2
    • M
      locks: add special return value for asynchronous locks · bde74e4b
      Miklos Szeredi 提交于
      Use a special error value FILE_LOCK_DEFERRED to mean that a locking
      operation returned asynchronously.  This is returned by
      
        posix_lock_file() for sleeping locks to mean that the lock has been
        queued on the block list, and will be woken up when it might become
        available and needs to be retried (either fl_lmops->fl_notify() is
        called or fl_wait is woken up).
      
        f_op->lock() to mean either the above, or that the filesystem will
        call back with fl_lmops->fl_grant() when the result of the locking
        operation is known.  The filesystem can do this for sleeping as well
        as non-sleeping locks.
      
      This is to make sure, that return values of -EAGAIN and -EINPROGRESS by
      filesystems are not mistaken to mean an asynchronous locking.
      
      This also makes error handling in fs/locks.c and lockd/svclock.c slightly
      cleaner.
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
      Cc: "J. Bruce Fields" <bfields@fieldses.org>
      Cc: Matthew Wilcox <matthew@wil.cx>
      Cc: David Teigland <teigland@redhat.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      bde74e4b
    • K
      per-task-delay-accounting: update taskstats for memory reclaim delay · 016ae219
      Keika Kobayashi 提交于
      Add members for memory reclaim delay to taskstats, and accumulate them in
      __delayacct_add_tsk() .
      Signed-off-by: NKeika Kobayashi <kobayashi.kk@ncos.nec.co.jp>
      Cc: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
      Cc: Balbir Singh <balbir@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      016ae219
    • K
      per-task-delay-accounting: add memory reclaim delay · 873b4771
      Keika Kobayashi 提交于
      Sometimes, application responses become bad under heavy memory load.
      Applications take a bit time to reclaim memory.  The statistics, how long
      memory reclaim takes, will be useful to measure memory usage.
      
      This patch adds accounting memory reclaim to per-task-delay-accounting for
      accounting the time of do_try_to_free_pages().
      
      <i.e>
      
      - When System is under low memory load,
        memory reclaim may not occur.
      
      $ free
                   total       used       free     shared    buffers     cached
      Mem:       8197800    1577300    6620500          0       4808    1516724
      -/+ buffers/cache:      55768    8142032
      Swap:     16386292          0   16386292
      
      $ vmstat 1
      procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
       r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
       0  0      0 5069748  10612 3014060    0    0     0     0    3   26  0  0 100  0
       0  0      0 5069748  10612 3014060    0    0     0     0    4   22  0  0 100  0
       0  0      0 5069748  10612 3014060    0    0     0     0    3   18  0  0 100  0
      
      Measure the time of tar command.
      
      $ ls -s test.dat
      1501472 test.dat
      
      $ time tar cvf test.tar test.dat
      real    0m13.388s
      user    0m0.116s
      sys     0m5.304s
      
      $ ./delayget -d -p <pid>
      CPU             count     real total  virtual total    delay total
                        428     5528345500     5477116080       62749891
      IO              count    delay total
                        338     8078977189
      SWAP            count    delay total
                          0              0
      RECLAIM         count    delay total
                          0              0
      
      - When system is under heavy memory load
        memory reclaim may occur.
      
      $ vmstat 1
      procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
       r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
       0  0 7159032  49724   1812   3012    0    0     0     0    3   24  0  0 100  0
       0  0 7159032  49724   1812   3012    0    0     0     0    4   24  0  0 100  0
       0  0 7159032  49848   1812   3012    0    0     0     0    3   22  0  0 100  0
      
      In this case, one process uses more 8G memory
      by execution of malloc() and memset().
      
      $ time tar cvf test.tar test.dat
      real    1m38.563s        <-  increased by 85 sec
      user    0m0.140s
      sys     0m7.060s
      
      $ ./delayget -d -p <pid>
      CPU             count     real total  virtual total    delay total
                       9021     7140446250     7315277975      923201824
      IO              count    delay total
                       8965    90466349669
      SWAP            count    delay total
                          3       21036367
      RECLAIM         count    delay total
                        740    61011951153
      
      In the later case, the value of RECLAIM is increasing.
      So, taskstats can show how much memory reclaim influences TAT.
      Signed-off-by: NKeika Kobayashi <kobayashi.kk@ncos.nec.co.jp>
      Acked-by: NBalbir Singh <balbir@linux.vnet.ibm.com>
      Acked-by: NKOSAKI Motohiro <kosaki.motohiro@jp.fujistu.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      873b4771
    • A
      task IO accounting: provide distinct tgid/tid I/O statistics · 297c5d92
      Andrea Righi 提交于
      Report per-thread I/O statistics in /proc/pid/task/tid/io and aggregate
      parent I/O statistics in /proc/pid/io.  This approach follows the same
      model used to account per-process and per-thread CPU times.
      
      As a practial application, this allows for example to quickly find the top
      I/O consumer when a process spawns many child threads that perform the
      actual I/O work, because the aggregated I/O statistics can always be found
      in /proc/pid/io.
      
      [ Oleg Nesterov points out that we should check that the task is still
        alive before we iterate over the threads, but also says that we can do
        that fixup on top of this later.  - Linus ]
      Acked-by: NBalbir Singh <balbir@linux.vnet.ibm.com>
      Signed-off-by: NAndrea Righi <righi.andrea@gmail.com>
      Cc: Matt Heaton <matt@hostmonster.com>
      Cc: Shailabh Nagar <nagar@watson.ibm.com>
      Acked-by-with-comments: Oleg Nesterov <oleg@tv-sign.ru>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      297c5d92