On 11/22/22 06:35, Peter Maydell wrote:
+ /*
+ * Here we have the architectural atomicity of the operation.
+ * However, when executing in a serial context, we need no extra
+ * host atomicity in order to avoid racing. This reduction
+ * avoids looping with cpu_loop_exit_atomic.
+ */
+ if (cpu_in_serial_context(env_cpu(env))) {
Is it OK to use cpu_in_serial_context() here ? Even if
there's no other vCPU executing in parallel, there might
be device model code doing a memory write in the iothread,
I think.
Well, it's no different from how we currently treat compare-and-swap expansion. But you
have a point -- we should probably be doing something with the iothread lock for both
EXCP_ATOMIC and round-robin mode.
r~