Author: tychon
Date: Tue Oct 13 18:28:48 2020
New Revision: 366678
URL: https://svnweb.freebsd.org/changeset/base/366678

Log:
  eliminate possible race in parallel TLB shootdown IPI
  
  On the target side TLB shootdown IPI handler, prevent the compiler
  from performing a forward store optimization which may mask a
  subsequent update to the scoreboard by the initiator.
  
  Reported by:  Max Laier, Anton Rang
  Discussed with:       kib
  Sponsored by: Dell EMC Isilon

Modified:
  head/sys/amd64/amd64/mp_machdep.c

Modified: head/sys/amd64/amd64/mp_machdep.c
==============================================================================
--- head/sys/amd64/amd64/mp_machdep.c   Tue Oct 13 18:04:19 2020        
(r366677)
+++ head/sys/amd64/amd64/mp_machdep.c   Tue Oct 13 18:28:48 2020        
(r366678)
@@ -1094,7 +1094,7 @@ invlop_handler(void)
        for (;;) {
                for (initiator_cpu_id = 0; initiator_cpu_id <= mp_maxid;
                    initiator_cpu_id++) {
-                       if (scoreboard[initiator_cpu_id] == 0)
+                       if (atomic_load_int(&scoreboard[initiator_cpu_id]) == 0)
                                break;
                }
                if (initiator_cpu_id > mp_maxid)
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to