* Interrupt synchronisation questions for SMP experts
@ 2009-02-11 17:14 Guillaume Knispel
0 siblings, 0 replies; only message in thread
From: Guillaume Knispel @ 2009-02-11 17:14 UTC (permalink / raw)
To: linux-kernel
Hi,
1. Imagine an interrupt storm from an evil device on an evil SMP
machine, is there any guarantee that if the ISR call
disable_irq_nosync() on its own irq it won't be called again just after
it returns? I feel this could be a reasonable expectation while i fail
to see anything that could provide it in the for (;;) loop of
__do_IRQ().
2. Does using synchronizing functions like disable_irq(),
tasklet_kill(), or del_timer_sync() provide sequentiality between the
effects of the end of the interrupt servicing code and the effects of
the code immediately after the call to the synchronizing function?
3. Consider this:
(a initially set to 0)
CPU 1. CPU 2.
z = 3; while (!a) barrier();
smp_wmb(); smp_mb();
a = 1; z = 42;
Does the semantic of smp_mb() and smp_wmb() guarantee that the final
value of z will be 42? (This has something to do with 2.)
Cheers,
Guillaume KNISPEL
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2009-02-11 17:21 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-02-11 17:14 Interrupt synchronisation questions for SMP experts Guillaume Knispel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®