1. 06 3月, 2010 1 次提交
  2. 04 3月, 2010 33 次提交
  3. 03 3月, 2010 2 次提交
  4. 01 3月, 2010 4 次提交
    • B
      GFS2: print glock numbers in hex · 4818972e
      Bob Peterson 提交于
      This patch changes glock numbers from printing in decimal to hex.
      Since DLM prints corresponding resource IDs in hex, it makes debugging
      easier.
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      4818972e
    • D
      GFS2: ordered writes are backwards · e5884636
      Dave Chinner 提交于
      When we queue data buffers for ordered write, the buffers are added
      to the head of the ordered write list. When the log needs to push
      these buffers to disk, it also walks the list from the head. The
      result is that the the ordered buffers are submitted to disk in
      reverse order.
      
      For large writes, this means that whenever the log flushes large
      streams of reverse sequential order buffers are pushed down into the
      block layers. The elevators don't handle this particularly well, so
      IO rates tend to be significantly lower than if the IO was issued in
      ascending block order.
      
      Queue new ordered buffers to the tail of the ordered buffer list to
      ensure that IO is dispatched in the order it was submitted. This
      should significantly improve large sequential write speeds. On a
      disk capable of 85MB/s, speeds increase from 50MB/s to 65MB/s for
      noop and from 38MB/s to 50MB/s for cfq.
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      e5884636
    • S
      GFS2: Remove loopy umount code · c1184f8a
      Steven Whitehouse 提交于
      As a consequence of the previous patch, we can now remove the
      loop which used to be required due to the circular dependency
      between the inodes and glocks. Instead we can just invalidate
      the inodes, and then clear up any glocks which are left.
      
      Also we no longer need the rwsem since there is no longer any
      danger of the inode invalidation calling back into the glock
      code (and from there back into the inode code).
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      c1184f8a
    • S
      GFS2: Metadata address space clean up · 009d8518
      Steven Whitehouse 提交于
      Since the start of GFS2, an "extra" inode has been used to store
      the metadata belonging to each inode. The only reason for using
      this inode was to have an extra address space, the other fields
      were unused. This means that the memory usage was rather inefficient.
      
      The reason for keeping each inode's metadata in a separate address
      space is that when glocks are requested on remote nodes, we need to
      be able to efficiently locate the data and metadata which relating
      to that glock (inode) in order to sync or sync and invalidate it
      (depending on the remotely requested lock mode).
      
      This patch adds a new type of glock, which has in addition to
      its normal fields, has an address space. This applies to all
      inode and rgrp glocks (but to no other glock types which remain
      as before). As a result, we no longer need to have the second
      inode.
      
      This results in three major improvements:
       1. A saving of approx 25% of memory used in caching inodes
       2. A removal of the circular dependency between inodes and glocks
       3. No confusion between "normal" and "metadata" inodes in super.c
      
      Although the first of these is the more immediately apparent, the
      second is just as important as it now enables a number of clean
      ups at umount time. Those will be the subject of future patches.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      009d8518