1. 01 Mar, 2010 4 commits
    • Dave Chinner's avatar
      GFS2: ordered writes are backwards · e5884636
      Dave Chinner authored
      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: default avatarDave Chinner <dchinner@redhat.com>
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
      e5884636
    • Abhijith Das's avatar
      GFS2: Remove old, unused linked list code from quota · 1ccaba30
      Abhijith Das authored
      This is the kernel portion of the patch-set for upstream gfs2,
      to remove the quota-linked-list stuff and replace it with
      fiemap-based traversal of the quota file.
      
      The corresponding userland fixes have been pushed to
      STABLE3 and master branches of cluster.git and gfs2-utils.git
      respectively (Refer Red Hat bug #536902).
      Signed-off-by: default avatarAbhi Das <adas@redhat.com>
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
      1ccaba30
    • Steven Whitehouse's avatar
      GFS2: Remove loopy umount code · c1184f8a
      Steven Whitehouse authored
      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: default avatarSteven Whitehouse <swhiteho@redhat.com>
      c1184f8a
    • Steven Whitehouse's avatar
      GFS2: Metadata address space clean up · 009d8518
      Steven Whitehouse authored
      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: default avatarSteven Whitehouse <swhiteho@redhat.com>
      009d8518
  2. 28 Feb, 2010 23 commits
  3. 27 Feb, 2010 13 commits