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