Messages in this thread | | | Date | Tue, 23 Sep 2014 16:57:10 -0400 | From | Tejun Heo <> | Subject | Re: [PATCH RESEND v3 5/6] AHCI: Optimize single IRQ interrupt processing |
| |
Hello, Alexander.
On Sun, Sep 21, 2014 at 03:19:28PM +0200, Alexander Gordeev wrote: > Split interrupt service routine into hardware context handler > and threaded context handler. That allows to protect ports with > individual locks rather than with a single host-wide lock and > move port interrupts handling out of the hardware interrupt > context. > > Testing was done by transferring 8GB on two hard drives in > parallel using command 'dd if=/dev/sd{a,b} of=/dev/null'. With > lock_stat statistics I measured access times to ata_host::lock > spinlock (since interrupt handler code is fully embraced with > this lock). The average lock's holdtime decreased eight times > while average waittime decreased two times. > > Both before and after the change the transfer time is the same, > while 'perf record -e cycles:k ...' shows 1%-4% CPU time spent > in ahci_single_irq_intr() routine before the update and not even > sampled/shown ahci_single_irq_intr() after the update.
Hmmm... how does it affect single device operation tho? It does make individual interrupt handling heavier, no?
Thanks.
-- tejun
| |