1. 04 3月, 2008 2 次提交
  2. 19 2月, 2008 10 次提交
  3. 08 2月, 2008 4 次提交
  4. 01 2月, 2008 6 次提交
  5. 31 1月, 2008 1 次提交
  6. 30 1月, 2008 9 次提交
  7. 28 1月, 2008 8 次提交
    • J
      cfq-iosched: kill some big inlines · febffd61
      Jens Axboe 提交于
      Use of inlines were a bit over the top, trim them down a bit.
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      febffd61
    • J
      cfq-iosched: relax IOPRIO_CLASS_IDLE restrictions · 0871714e
      Jens Axboe 提交于
      Currently you must be root to set idle io prio class on a process. This
      is due to the fact that the idle class is implemented as a true idle
      class, meaning that it will not make progress if someone else is
      requesting disk access. Unfortunately this means that it opens DOS
      opportunities by locking down file system resources, hence it is root
      only at the moment.
      
      This patch relaxes the idle class a little, by removing the truly idle
      part (which entals a grace period with associated timer). The
      modifications make the idle class as close to zero impact as can be done
      while still guarenteeing progress. This means we can relax the root only
      criteria as well.
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      0871714e
    • J
      block: implement drain buffers · fa0ccd83
      James Bottomley 提交于
      These DMA drain buffer implementations in drivers are pretty horrible
      to do in terms of manipulating the scatterlist.  Plus they're being
      done at least in drivers/ide and drivers/ata, so we now have code
      duplication.
      
      The one use case for this, as I understand it is AHCI controllers doing
      PIO mode to mmc devices but translating this to DMA at the controller
      level.
      
      So, what about adding a callback to the block layer that permits the
      adding of the drain buffer for the problem devices.  The idea is that
      you'd do this in slave_configure after you find one of these devices.
      
      The beauty of doing it in the block layer is that it quietly adds the
      drain buffer to the end of the sg list, so it automatically gets mapped
      (and unmapped) without anything unusual having to be done to the
      scatterlist in driver/scsi or drivers/ata and without any alteration to
      the transfer length.
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      fa0ccd83
    • J
      io_context sharing - anticipatory changes · 521f3bbd
      Jens Axboe 提交于
      changes to anticipatory io scheduler for io_context sharing
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      521f3bbd
    • J
      block: cfq: make the io contect sharing lockless · 4ac845a2
      Jens Axboe 提交于
      The io context sharing introduced a per-ioc spinlock, that would protect
      the cfq io context lookup. That is a regression from the original, since
      we never needed any locking there because the ioc/cic were process private.
      
      The cic lookup is changed from an rbtree construct to a radix tree, which
      we can then use RCU to make the reader side lockless. That is the performance
      critical path, modifying the radix tree is only done on process creation
      (when that process first does IO, actually) and on process exit (if that
      process has done IO).
      
      As it so happens, radix trees are also much faster for this type of
      lookup where the key is a pointer. It's a very sparse tree.
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      4ac845a2
    • N
      io_context sharing - cfq changes · 66dac98e
      Nikanth Karthikesan 提交于
      changes in the cfq for io_context sharing
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      66dac98e
    • J
      io context sharing: preliminary support · d38ecf93
      Jens Axboe 提交于
      Detach task state from ioc, instead keep track of how many processes
      are accessing the ioc.
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      d38ecf93
    • J
      ioprio: move io priority from task_struct to io_context · fd0928df
      Jens Axboe 提交于
      This is where it belongs and then it doesn't take up space for a
      process that doesn't do IO.
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      fd0928df