Re: [PATCH] libata error handling fixes (ATAPI)

Jens Axboe
2005-11-16T13:13:33Z

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.

--
Jens Axboe