AW: Long latencies during disk-io

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sebastian

> Von: Sebastian Andrzej Siewior [mailto:bigeasy@xxxxxxxxxxxxx]
> So this delay is caused by the softirq rework. I didn't think about this
> but now that you show the trace it is obvious.
> 
> If you use
> 	request_threaded_irq(, NULL, vInterruptService, …);
> 
> instead of
> 	request_irq(, vInterruptService, …);
> 
> then the IRQ will not be force threaded (but threaded on request) and
> there will be no local_bh_disable() before the thread is invoked. So no
> waiting until the AHCI thread is done.
> 
> If vInterruptService() does nothing else than just wake up userland then
> you could use swait_event_…() / swake_up_one() instead of the
> wait_event_… / wake_up() combo. That would be allowed from the primary
> handler and you could avoid the switch to the threaded-handler.

thanks for the thorough analysis!

I will try the request_threaded_irq(, NULL, vInterruptService, …) solution on 
Monday and report back. Since the driver also allows to poll several cards 
(which I don't use at the moment) I think it is not possible to switch to swait/swake...
And the interrupt line may be shared and if I remember correctly in this case it is also 
not possible to use primary handlers, or am I wrong?  
 
Cheers,
Martin




[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux