1. 19 11月, 2010 3 次提交
  2. 16 11月, 2010 1 次提交
  3. 13 11月, 2010 1 次提交
  4. 12 11月, 2010 4 次提交
  5. 11 11月, 2010 3 次提交
  6. 10 11月, 2010 1 次提交
  7. 01 11月, 2010 2 次提交
  8. 31 10月, 2010 1 次提交
  9. 30 10月, 2010 1 次提交
  10. 29 10月, 2010 9 次提交
  11. 28 10月, 2010 9 次提交
    • A
    • L
      ext4: add support for lazy inode table initialization · bfff6873
      Lukas Czerner 提交于
      When the lazy_itable_init extended option is passed to mke2fs, it
      considerably speeds up filesystem creation because inode tables are
      not zeroed out.  The fact that parts of the inode table are
      uninitialized is not a problem so long as the block group descriptors,
      which contain information regarding how much of the inode table has
      been initialized, has not been corrupted However, if the block group
      checksums are not valid, e2fsck must scan the entire inode table, and
      the the old, uninitialized data could potentially cause e2fsck to
      report false problems.
      
      Hence, it is important for the inode tables to be initialized as soon
      as possble.  This commit adds this feature so that mke2fs can safely
      use the lazy inode table initialization feature to speed up formatting
      file systems.
      
      This is done via a new new kernel thread called ext4lazyinit, which is
      created on demand and destroyed, when it is no longer needed.  There
      is only one thread for all ext4 filesystems in the system. When the
      first filesystem with inititable mount option is mounted, ext4lazyinit
      thread is created, then the filesystem can register its request in the
      request list.
      
      This thread then walks through the list of requests picking up
      scheduled requests and invoking ext4_init_inode_table(). Next schedule
      time for the request is computed by multiplying the time it took to
      zero out last inode table with wait multiplier, which can be set with
      the (init_itable=n) mount option (default is 10).  We are doing
      this so we do not take the whole I/O bandwidth. When the thread is no
      longer necessary (request list is empty) it frees the appropriate
      structures and exits (and can be created later later by another
      filesystem).
      
      We do not disturb regular inode allocations in any way, it just do not
      care whether the inode table is, or is not zeroed. But when zeroing, we
      have to skip used inodes, obviously. Also we should prevent new inode
      allocations from the group, while zeroing is on the way. For that we
      take write alloc_sem lock in ext4_init_inode_table() and read alloc_sem
      in the ext4_claim_inode, so when we are unlucky and allocator hits the
      group which is currently being zeroed, it just has to wait.
      
      This can be suppresed using the mount option no_init_itable.
      Signed-off-by: NLukas Czerner <lczerner@redhat.com>
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      bfff6873
    • M
      delay-accounting: reimplement -c for getdelays.c to report information on a target command · db9e5679
      Mel Gorman 提交于
      Task delay-accounting was identified as one means of determining how long
      a process spends in congestion_wait() without adding new statistics.  For
      example, if the workload should not be doing IO, delay-accounting could
      reveal how long it was spending in unexpected IO or delays.
      Unfortunately, on closer examination it was clear that getdelays does not
      act as documented.
      
      Commit a3baf649 ("per-task-delay-accounting: documentation") added
      Documentation/accounting/getdelays.c with a -c switch that was documented
      to fork/exec a child and report statistics on it but for reasons that are
      unclear to me, commit 9e06d3f9 deleted support for this switch but did not
      update the documentation.  It might be an oversight or it might be because
      the control flow of the program meant that accounting information would be
      printed once early in the lifetime of the program making it of limited
      use.
      
      This patch reimplements -c for getdelays.c to act as documented.  Unlike
      the original version, it waits until the command completes before printing
      any information on it.  An example of it being used looks like
      
      $ ./getdelays -d -c find /home/mel -name mel
      print delayacct stats ON
      /home/mel
      /home/mel/.notes-wine/drive_c/windows/profiles/mel
      /home/mel/.wine/drive_c/windows/profiles/mel
      /home/mel/git-configs/dot.kde/share/apps/konqueror/home/mel
      PID	5923
      
      CPU             count     real total  virtual total    delay total
                      42779     5051232096     5164722692      564207988
      IO              count    delay total
                      41727    97804147758
      SWAP            count    delay total
                          0              0
      RECLAIM         count    delay total
                          0              0
      
      [akpm@linux-foundation.org: coding-style fixes]
      Signed-off-by: NMel Gorman <mel@csn.ul.ie>
      Acked-by: NBalbir Singh <balbir@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      db9e5679
    • N
      /proc/pid/pagemap: document in Documentation/filesystems/proc.txt · 03f890f8
      Nikanth Karthikesan 提交于
      Document /proc/pid/pagemap in Documentation/filesystems/proc.txt
      Signed-off-by: NNikanth Karthikesan <knikanth@suse.de>
      Cc: Richard Guenther <rguenther@suse.de>
      Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Acked-by: NMatt Mackall <mpm@selenic.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      03f890f8
    • N
      /proc/pid/smaps: export amount of anonymous memory in a mapping · b40d4f84
      Nikanth Karthikesan 提交于
      Export the number of anonymous pages in a mapping via smaps.
      
      Even the private pages in a mapping backed by a file, would be marked as
      anonymous, when they are modified. Export this information to user-space via
      smaps.
      
      Exporting this count will help gdb to make a better decision on which
      areas need to be dumped in its coredump; and should be useful to others
      studying the memory usage of a process.
      Signed-off-by: NNikanth Karthikesan <knikanth@suse.de>
      Acked-by: NHugh Dickins <hughd@google.com>
      Reviewed-by: NKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Matt Mackall <mpm@selenic.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b40d4f84
    • D
      cgroup: notify ns_cgroup deprecated · 45531757
      Daniel Lezcano 提交于
      The ns_cgroup will be removed very soon.  Let's warn, for this version,
      ns_cgroup is deprecated.
      
      Make ns_cgroup and clone_children exclusive.  If the clone_children is set
      and the ns_cgroup is mounted, let's fail with EINVAL when the ns_cgroup
      subsys is created (a printk will help the user to understand why the
      creation fails).
      
      Update the feature remove schedule file with the deprecated ns_cgroup.
      Signed-off-by: NDaniel Lezcano <daniel.lezcano@free.fr>
      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>
      45531757
    • D
      cgroup: add clone_children control file · 97978e6d
      Daniel Lezcano 提交于
      The ns_cgroup is a control group interacting with the namespaces.  When a
      new namespace is created, a corresponding cgroup is automatically created
      too.  The cgroup name is the pid of the process who did 'unshare' or the
      child of 'clone'.
      
      This cgroup is tied with the namespace because it prevents a process to
      escape the control group and use the post_clone callback, so the child
      cgroup inherits the values of the parent cgroup.
      
      Unfortunately, the more we use this cgroup and the more we are facing
      problems with it:
      
      (1) when a process unshares, the cgroup name may conflict with a
          previous cgroup with the same pid, so unshare or clone return -EEXIST
      
      (2) the cgroup creation is out of control because there may have an
          application creating several namespaces where the system will
          automatically create several cgroups in his back and let them on the
          cgroupfs (eg.  a vrf based on the network namespace).
      
      (3) the mix of (1) and (2) force an administrator to regularly check
          and clean these cgroups.
      
      This patchset removes the ns_cgroup by adding a new flag to the cgroup and
      the cgroupfs mount option.  It enables the copy of the parent cgroup when
      a child cgroup is created.  We can then safely remove the ns_cgroup as
      this flag brings a compatibility.  We have now to manually create and add
      the task to a cgroup, which is consistent with the cgroup framework.
      
      This patch:
      
      Sent as an answer to a previous thread around the ns_cgroup.
      
      https://lists.linux-foundation.org/pipermail/containers/2009-June/018627.html
      
      It adds a control file 'clone_children' for a cgroup.  This control file
      is a boolean specifying if the child cgroup should be a clone of the
      parent cgroup or not.  The default value is 'false'.
      
      This flag makes the child cgroup to call the post_clone callback of all
      the subsystem, if it is available.
      
      At present, the cpuset is the only one which had implemented the
      post_clone callback.
      
      The option can be set at mount time by specifying the 'clone_children'
      mount option.
      Signed-off-by: NDaniel Lezcano <daniel.lezcano@free.fr>
      Signed-off-by: NSerge E. Hallyn <serge.hallyn@canonical.com>
      Cc: Eric W. Biederman <ebiederm@xmission.com>
      Acked-by: NPaul Menage <menage@google.com>
      Reviewed-by: NLi Zefan <lizf@cn.fujitsu.com>
      Cc: Jamal Hadi Salim <hadi@cyberus.ca>
      Cc: Matt Helsley <matthltc@us.ibm.com>
      Acked-by: NBalbir Singh <balbir@linux.vnet.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      97978e6d
    • A
      doc: clarify the behaviour of dirty_ratio/dirty_bytes · abffc020
      Andrea Righi 提交于
      When dirty_ratio or dirty_bytes is written the other parameter is disabled
      and set to 0 (in dirty_bytes_handler() / dirty_ratio_handler()).
      
      We do the same for dirty_background_ratio and dirty_background_bytes.
      
      However, in the sysctl documentation, we say that the counterpart becomes
      a function of the old value, that is not correct.
      
      Clarify the documentation reporting the actual behaviour.
      Reviewed-by: NGreg Thelen <gthelen@google.com>
      Acked-by: NDavid Rientjes <rientjes@google.com>
      Signed-off-by: NAndrea Righi <arighi@develer.com>
      Cc: Randy Dunlap <rdunlap@xenotime.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      abffc020
    • N
      Coccinelle: Fix documentation · 9dcf7990
      Nicolas Palix 提交于
      A file used as example has been moved elsewhere.
      Update the documentation accordingly
      Signed-off-by: NNicolas Palix <npalix.work@gmail.com>
      Reported-by: NJulia Lawall <julia@diku.dk>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      9dcf7990
  12. 27 10月, 2010 5 次提交