2016-03-18 01:09-0500, Suravee Suthikulpanit:
From: Suravee Suthikulpanit <suravee.suthikulpanit@xxxxxxx>
+
+ WRITE_ONCE(*entry, new_entry);
This will translate to two writes in 32 bit mode and we need to write
physical ID first to avoid spurious doorbells ...
is the order guaranteed?
+ } else {
+ new_entry = READ_ONCE(*entry);
+ /**
+ * This handles the case when vcpu is scheduled out
+ * and has not yet not called blocking. We save the
+ * AVIC running flag so that we can restore later.
+ */
is_running must be disabled in between ...blocking and ...unblocking,
because we don't want to miss interrupts and block forever.
I somehow don't get it from the comment. :)