From: John Levon <movement@us...> - 2001-12-31 05:53:51
Update of /cvsroot/oprofile/oprofile/module
In directory usw-pr-cvs1:/tmp/cvs-serv13234/module
minor changes, Michel's patch
RCS file: /cvsroot/oprofile/oprofile/module/oprofile.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- oprofile.c 2001/11/14 21:19:01 1.14
+++ oprofile.c 2001/12/31 05:53:47 1.15
@@ -92,7 +92,13 @@
* for the current CPU, we might have interrupted another user of e.g.
* runqueue_lock, deadlocking on SMP and racing on UP. So we check that IRQs
- * were not disabled (corresponding to the irqsave/restores in __wake_up()
+ * were not disabled (corresponding to the irqsave/restores in __wake_up().
+ * Note that this requires all spinlocks taken by the full wake_up path
+ * to have saved IRQs - otherwise we can interrupt whilst holding a spinlock
+ * taken from some non-wake_up() path and deadlock. Currently this means only
+ * oprof_wait->lock and runqueue_lock: all instances disable IRQs before
+ * taking the lock.
* This will mean that approaching the end of the buffer, a number of the
* evictions may fail to wake up the daemon. We simply hope this doesn't
Get latest updates about Open Source Projects, Conferences and News.