On Fri, Sep 24, 2010 at 8:41 AM, Jens Axboe <jaxboe@xxxxxxxxxxxx> wrote: > > [ ... ] > > Bart, can you try with this patchset added: > > git://git.kernel.dk/linux-2.6-block.git blk-alloc-optimize > > It's a work in progress and not suitable for general consumption yet, > but it's tested working at least. There will be more built on top of > this, but at least even this simple stuff is making a big difference > for IOPS testing for me. Hello Jens, Thanks for the feedback. I see a nice 10% speedup after having applied the four block layer optimization patches from the blk-alloc-optimize branch on an already patched 2.6.35.5 SRP initiator. Note: according to the output of perf record -g, most spinlock calls still originate from the block layer. This is what the perf tool reported for a fio run using libaio with small blocks (512 bytes): Event: cycles - 7.06% fio [kernel.kallsyms] [k] _raw_spin_lock_irqsave - _raw_spin_lock_irqsave + 19.51% blk_run_queue + 13.71% blk_end_bidi_request + 10.04% mlx4_ib_poll_cq + 4.68% lock_timer_base + 4.22% aio_complete + 3.97% srp_send_completion + 3.71% srp_queuecommand + 3.55% dio_bio_end_aio + 3.37% __srp_get_tx_iu + 3.14% srp_recv_completion + 3.00% scsi_device_unbusy + 2.87% __scsi_put_command + 2.82% __blockdev_direct_IO_newtrunc + 2.76% scsi_put_command + 2.69% scsi_run_queue + 2.65% dio_bio_submit + 2.54% srp_remove_req + 2.46% mlx4_ib_post_send + 2.33% scsi_get_command + 1.95% mlx4_ib_post_recv [ ... ] The script I used to generate a patched kernel can be found here (r2271): https://scst.svn.sourceforge.net/svnroot/scst/trunk/scripts/generate-kernel-with-srp-patches. Bart. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html