On Wed, 14 Mar 2007 20:59:29 +0000, David Howells <[EMAIL PROTECTED]> wrote:

> Oliver Neukum <[EMAIL PROTECTED]> wrote:
> 
> > It is called in interrupt and uses no locking. What happens if the next
> > irq is processed on another cpu? Is that cpu guaranteed to see the updates
> > to the incremented variables?
> 
> I thought that possibility was prevented by IRQ_INPROGRESS.

As far as I can tell, Oliver is not talking about two CPUs executing
the same IRQ handler simultaneously (even the same chain, actually).
We know that it's impossible. I think he is concerned about CPU A
executing an interrupt handler, its stores getting stuck in its store
buffer or its write-back cache, the IRQ finished, IRQ get migrated
to CPU B, CPU B taking next interrupt and seeing old RAM state.
I don't see this possible, because we take too many spinlocks
when IRQ is processed and they definitely drain store buffers
and caches. Not to mention the IRQ migration from A to B...

-- Pete

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to