1. 28 Jul, 2008 1 commit
  2. 29 Feb, 2008 1 commit
  3. 15 Oct, 2007 1 commit
    • David Chinner's avatar
      [XFS] Radix tree based inode caching · da353b0d
      David Chinner authored
      One of the perpetual scaling problems XFS has is indexing it's incore
      inodes. We currently uses hashes and the default hash sizes chosen can
      only ever be a tradeoff between memory consumption and the maximum
      realistic size of the cache.
      
      As a result, anyone who has millions of inodes cached on a filesystem
      needs to tunes the size of the cache via the ihashsize mount option to
      allow decent scalability with inode cache operations.
      
      A further problem is the separate inode cluster hash, whose size is based
      on the ihashsize but is smaller, and so under certain conditions (sparse
      cluster cache population) this can become a limitation long before the
      inode hash is causing issues.
      
      The following patchset removes the inode hash and cluster hash and
      replaces them with radix trees to avoid the scalability limitations of the
      hashes. It also reduces the size of the inodes by 3 pointers....
      
      SGI-PV: 969561
      SGI-Modid: xfs-linux-melb:xfs-kern:29481a
      Signed-off-by: default avatarDavid Chinner <dgc@sgi.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@infradead.org>
      Signed-off-by: default avatarTim Shimmin <tes@sgi.com>
      da353b0d
  4. 14 Jul, 2007 1 commit
    • David Chinner's avatar
      [XFS] Concurrent Multi-File Data Streams · 2a82b8be
      David Chinner authored
      In media spaces, video is often stored in a frame-per-file format. When
      dealing with uncompressed realtime HD video streams in this format, it is
      crucial that files do not get fragmented and that multiple files a placed
      contiguously on disk.
      
      When multiple streams are being ingested and played out at the same time,
      it is critical that the filesystem does not cross the streams and
      interleave them together as this creates seek and readahead cache miss
      latency and prevents both ingest and playout from meeting frame rate
      targets.
      
      This patch set creates a "stream of files" concept into the allocator to
      place all the data from a single stream contiguously on disk so that RAID
      array readahead can be used effectively. Each additional stream gets
      placed in different allocation groups within the filesystem, thereby
      ensuring that we don't cross any streams. When an AG fills up, we select a
      new AG for the stream that is not in use.
      
      The core of the functionality is the stream tracking - each inode that we
      create in a directory needs to be associated with the directories' stream.
      Hence every time we create a file, we look up the directories' stream
      object and associate the new file with that object.
      
      Once we have a stream object for a file, we use the AG that the stream
      object point to for allocations. If we can't allocate in that AG (e.g. it
      is full) we move the entire stream to another AG. Other inodes in the same
      stream are moved to the new AG on their next allocation (i.e. lazy
      update).
      
      Stream objects are kept in a cache and hold a reference on the inode.
      Hence the inode cannot be reclaimed while there is an outstanding stream
      reference. This means that on unlink we need to remove the stream
      association and we also need to flush all the associations on certain
      events that want to reclaim all unreferenced inodes (e.g. filesystem
      freeze).
      
      SGI-PV: 964469
      SGI-Modid: xfs-linux-melb:xfs-kern:29096a
      Signed-off-by: default avatarDavid Chinner <dgc@sgi.com>
      Signed-off-by: default avatarBarry Naujok <bnaujok@sgi.com>
      Signed-off-by: default avatarDonald Douwsma <donaldd@sgi.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@infradead.org>
      Signed-off-by: default avatarTim Shimmin <tes@sgi.com>
      Signed-off-by: default avatarVlad Apostolov <vapo@sgi.com>
      2a82b8be
  5. 31 Mar, 2006 1 commit
  6. 14 Mar, 2006 1 commit
  7. 11 Jan, 2006 1 commit
  8. 02 Nov, 2005 2 commits
  9. 01 Nov, 2005 3 commits
    • Nathan Scott's avatar
      [XFS] Ondisk format extension for extended attributes (attr2). Basically, · af4e34a5
      Nathan Scott authored
      the data/attr forks now grow up/down from either end of the literal area,
      rather than dividing the literal area into two chunks and growing both
      upward.  Means we can now make much more efficient use of the attribute
      space, incl. fitting DMF attributes inline in 256 byte inodes, and large
      jumps in dbench3 performance numbers.  It is self enabling, but can be
      forced on/off via the attr2/noattr2 mount options.
      
      SGI-PV: 941645
      SGI-Modid: xfs-linux:xfs-kern:23836a
      Signed-off-by: default avatarNathan Scott <nathans@sgi.com>
      af4e34a5
    • David Chinner's avatar
      [XFS] Introduce two new mount options (nolargeio/largeio) to allow · e8c8b3a7
      David Chinner authored
      filesystems to expose the filesystem stripe width in stat(2) rather than
      the page cache size. This allows applications requiring high bandwidth to
      easily determine the optimum I/O size for the underlying filesystem. The
      default is to report the page cache size (i.e. "nolargeio").
      
      SGI-PV: 942818
      SGI-Modid: xfs-linux:xfs-kern:23830a
      Signed-off-by: default avatarDavid Chinner <dgc@sgi.com>
      Signed-off-by: default avatarNathan Scott <nathans@sgi.com>
      e8c8b3a7
    • Christoph Hellwig's avatar
      [XFS] write barrier support Issue all log sync operations as ordered · f538d4da
      Christoph Hellwig authored
      writes.  In addition flush the disk cache on fsync if the sync cached
      operation didn't sync the log to disk (this requires some additional
      bookeping in the transaction and log code). If the device doesn't claim to
      support barriers, the filesystem has an extern log volume or the trial
      superblock write with barriers enabled failed we disable barriers and
      print a warning.  We should probably fail the mount completely, but that
      could lead to nasty boot failures for the root filesystem.  Not enabled by
      default yet, needs more destructive testing first.
      
      SGI-PV: 912426
      SGI-Modid: xfs-linux:xfs-kern:198723a
      Signed-off-by: default avatarChristoph Hellwig <hch@sgi.com>
      Signed-off-by: default avatarNathan Scott <nathans@sgi.com>
      f538d4da
  10. 16 Apr, 2005 1 commit
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4