Re: patch "Revert "USB/host: Cleanup unneccessary irq disable code"" added to usb tree

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

 



On Thu, 15 Nov 2012, Thomas Gleixner wrote:

> > I see.  The USB code does do a reasonably large amount of work in
> > interrupt context.  It doesn't have to be that way; it could be in
> > process context -- but the design of the USB subsystem requires that
> > much of the work be carried out with interrupts disabled.  (The API
> > states that all the driver callbacks occur with disabled interrupts.)  
> 
> Well, the reason why the API says that is because you are doing lots
> of work in interrupt context and you probably not only disable
> interrupts for that, you also hold the proper locks to protect against
> the eventually incoming interrupt on the other cpu.

Certainly.

> So sure, this needs some thought whether it's worth the trouble, but
> last I looked a few years ago (when I just had a stab on it), it
> definitely looked worthwhile to simplify a lot of things by simply
> serializing them naturaly. Don't misunderstand me. You still will need
> locks :)

Right, because we can't accept requests while the handler thread is
modifying the driver's internal state.  Those requests could be
submitted by timer routines in other drivers, which means the handler
thread would have to do almost all of its work inside a spin_lock_irq
region.

That private spinlock already serializes most of what the driver does.
I don't see how using a threaded interrupt handler would give any
significant improvement in this respect.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux