Re: [PATCH 11/12] libata: use IRQ expecting

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Tejun Heo
Date: Saturday, June 26, 2010 - 1:31 am

Hello, Jeff.

On 06/26/2010 05:45 AM, Jeff Garzik wrote:

Well, it can indicte the start of cluster of completions, which is the
necessary information anyway.  From the second call on, it's a simple
flag test and return.  I doubt it will affect anything even w/ high
performance SSDs but please read on.


The point of ata_qc_complete_multiple() is giving libata core layer
better visibility into how commands are being executed, which in turn
allows (continued below)


ata_qc_complete_multiple() call [un]expect_irq() only once by
introducing an internal completion function w/o irq expect handling,
say ata_qc_complete_raw() and making both ata_qc_complete() and
ata_qc_complete_multiple() simple wrapper around it w/ irq expect
handling.


I think we're much better off applying it to all the drivers.  IRQ
expecting is very cheap and scalable and there definitely are plenty
of IRQ delivery problems with modern controllers although their
patterns tend to be different from legacy ones.  Plus, it will also be
useful for power state predictions.


As I wrote above, I don't think N*unexpect_irq() really matters but
with ata_qc_complete_multiple() conversion, there will only be single
pair of expect/unexpect for each cluster of completions anyway.

Thanks.

-- 
tejun
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCHSET] irq: better lost/spurious irq handling, Tejun Heo, (Sun Jun 13, 8:31 am)
[PATCH 01/12] irq: cleanup irqfixup, Tejun Heo, (Sun Jun 13, 8:31 am)
[PATCH 04/12] irq: kill IRQF_IRQPOLL, Tejun Heo, (Sun Jun 13, 8:31 am)
[PATCH 06/12] irq: implement irq_schedule_poll(), Tejun Heo, (Sun Jun 13, 8:31 am)
[PATCH 07/12] irq: improve spurious IRQ handling, Tejun Heo, (Sun Jun 13, 8:31 am)
[PATCH 11/12] libata: use IRQ expecting, Tejun Heo, (Sun Jun 13, 8:31 am)
[PATCH 12/12] usb: use IRQ watching, Tejun Heo, (Sun Jun 13, 8:31 am)
Re: [PATCH 12/12] usb: use IRQ watching, Greg KH, (Mon Jun 14, 2:41 pm)
Re: [PATCH 12/12] usb: use IRQ watching, Tejun Heo, (Mon Jun 14, 2:52 pm)
Re: [PATCH 12/12] usb: use IRQ watching, Greg KH, (Mon Jun 14, 3:11 pm)
Re: [PATCH 12/12] usb: use IRQ watching, Tejun Heo, (Mon Jun 14, 3:19 pm)
Re: [PATCH 02/12] irq: make spurious poll timer per desc, Konrad Rzeszutek Wilk, (Mon Jun 14, 10:10 pm)
Re: [PATCH 12/12] usb: use IRQ watching, Kay Sievers, (Tue Jun 15, 3:30 am)
Re: [PATCH 12/12] usb: use IRQ watching, Jean Delvare, (Tue Jun 15, 4:05 am)
Re: [PATCH 12/12] usb: use IRQ watching, Tejun Heo, (Tue Jun 15, 4:20 am)
Re: [PATCH 12/12] usb: use IRQ watching, Kay Sievers, (Tue Jun 15, 6:30 am)
Re: [PATCH 12/12] usb: use IRQ watching, Kay Sievers, (Tue Jun 15, 6:36 am)
Re: [PATCH 12/12] usb: use IRQ watching, Tejun Heo, (Tue Jun 15, 10:36 am)
Re: [PATCH 06/12] irq: implement irq_schedule_poll(), Jonathan Corbet, (Tue Jun 15, 10:40 am)
Re: [PATCH 12/12] usb: use IRQ watching, Greg KH, (Tue Jun 15, 10:47 am)
Re: [PATCH 06/12] irq: implement irq_schedule_poll(), Tejun Heo, (Tue Jun 15, 10:51 am)
Re: [PATCH 12/12] usb: use IRQ watching, Tejun Heo, (Tue Jun 15, 10:52 am)
Re: [PATCH 12/12] usb: use IRQ watching, Tejun Heo, (Mon Jun 21, 6:51 am)
Re: [PATCH 11/12] libata: use IRQ expecting, Tejun Heo, (Mon Jun 21, 6:52 am)
Re: [PATCH 12/12] usb: use IRQ watching, Greg KH, (Mon Jun 21, 1:27 pm)
Re: [PATCH 12/12] usb: use IRQ watching, Tejun Heo, (Tue Jun 22, 12:32 am)
Re: [PATCH 11/12] libata: use IRQ expecting, Jeff Garzik, (Thu Jun 24, 5:22 pm)
Re: [PATCH 11/12] libata: use IRQ expecting, Tejun Heo, (Fri Jun 25, 12:44 am)
Re: [PATCH 11/12] libata: use IRQ expecting, Jeff Garzik, (Fri Jun 25, 2:48 am)
Re: [PATCH 11/12] libata: use IRQ expecting, Tejun Heo, (Fri Jun 25, 2:51 am)
Re: [PATCH 11/12] libata: use IRQ expecting, Jeff Garzik, (Fri Jun 25, 8:45 pm)
Re: [PATCH 11/12] libata: use IRQ expecting, Jeff Garzik, (Fri Jun 25, 8:52 pm)
Re: [PATCH 11/12] libata: use IRQ expecting, Tejun Heo, (Sat Jun 26, 1:31 am)
Re: [PATCH 11/12] libata: use IRQ expecting, Jeff Garzik, (Sat Jun 26, 2:16 am)
Re: [PATCH 11/12] libata: use IRQ expecting, Tejun Heo, (Sat Jun 26, 2:44 am)
Re: [PATCH 11/12] libata: use IRQ expecting, Tejun Heo, (Fri Jul 2, 7:41 am)
Re: [PATCH 11/12] libata: use IRQ expecting, Tejun Heo, (Fri Jul 2, 7:53 am)
[GIT PULL] irq: better lost/spurious irq handling, Tejun Heo, (Fri Jul 2, 7:59 am)
Re: [PATCH 11/12] libata: use IRQ expecting, Tejun Heo, (Sat Jul 10, 3:06 am)
Re: [PATCH 11/12] libata: use IRQ expecting, Jeff Garzik, (Wed Jul 14, 12:58 am)
Re: [PATCH 11/12] libata: use IRQ expecting, Tejun Heo, (Wed Jul 14, 2:26 am)
Re: [PATCH 11/12] libata: use IRQ expecting, Jeff Garzik, (Tue Jul 27, 10:37 am)