Author: mjg
Date: Thu Jan 30 19:38:51 2020
New Revision: 357308
URL: https://svnweb.freebsd.org/changeset/base/357308

Log:
  Assert that smp_rendezvous_cpus is called with interrupts enabled.

Modified:
  head/sys/kern/subr_smp.c

Modified: head/sys/kern/subr_smp.c
==============================================================================
--- head/sys/kern/subr_smp.c    Thu Jan 30 19:38:12 2020        (r357307)
+++ head/sys/kern/subr_smp.c    Thu Jan 30 19:38:51 2020        (r357308)
@@ -563,6 +563,12 @@ smp_rendezvous_cpus(cpuset_t map,
                return;
        }
 
+       /*
+        * Make sure we come here with interrupts enabled.  Otherwise we
+        * livelock if smp_ipi_mtx is owned by a thread which sent as an IPI.
+        */
+       MPASS(curthread->td_md.md_spinlock_count == 0);
+
        CPU_FOREACH(i) {
                if (CPU_ISSET(i, &map))
                        ncpus++;
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to