James Bottomley, on 04/02/2009 12:23 AM wrote:On Wed, 2009-04-01 at 08:20 -0400, Ross Walker wrote:On Apr 1, 2009, at 2:29 AM, Bart Van Assche <bart.vanassche@xxxxxxxxx> wrote:SCST explicitly fiddles with the io context to get this to happen. It
On Tue, Mar 31, 2009 at 8:43 PM, Ross S. W. WalkerThank for the update. IET has used 8 threads per target for ages now, I don't think it is that.
<RWalker@xxxxxxxxxxxxx> wrote:
IET just needs to fix how it does it workload with CFQ whichI'm not familiar with the implementation details of CFQ, but I know
somehow SCST has overcome. Of course SCST tweaks the Linux kernel to
gain some extra speed.
that one of the changes between SCST 1.0.0 and SCST 1.0.1 is that the
default number of kernel threads of the scst_vdisk kernel module has
been increased to 5. Could this explain the performance difference
between SCST and IET for FILEIO and BLOCKIO ?
It may be how the I/O threads are forked in SCST that causes them to be in the same I/O context with each other.
I'm pretty sure implementing a version of the patch that was used for the dump command (found on the LKML) will fix this.
But thanks goes to Vlad for pointing this dificiency out so we can fix it to help make IET even better.
has a hack to block to export alloc_io_context:
http://marc.info/?t=122893564800003
Correct, although I wouldn't call it "fiddle", rather "grouping" ;)
But that's not the only reason for good performance. Particularly, it can't explain Bart's tmpfs results from the previous message, where the majority of I/O done to/from RAM without any I/O scheduler involved. (Or does I/O scheduler also involved with tmpfs?) Bart has 4GB RAM, if I remember correctly, i.e. the test data set was 25% of RAM.