On Wed, Nov 16 2005, Jeff Garzik wrote:
Jens Axboe wrote:
I updated that patch, and converted IDE and SCSI to use it. See the
results here:
http://brick.kernel.dk/git/?p=linux-2.6-block.git;a=shortlog;h=blk-softirq
The main change from the version posted last october is killing the
'slightly' overdesigned completion queue hashing.
Nifty, I like. Comments:
* use of spin_lock_irq() in all completion paths now makes me nervous.
Should be fine from the paths originating from blk_done_softirq(), as we
know interrupts are enabled in the first place. But generally I agree,
whenever in doubt always always use the irq saving variants.
* certainly it's what SCSI does now, but is a softirq really necessary? Using a tasklet would kill all that per-cpu code, and notifier.
It would work fine with a tasklet of course, but it's going to generate
a _lot_ of traffic on io busy systems so I felt a dedicated softirq was
the way to go.