Hello, is it at least theoretically possible that the guest atomic instructions (e.g. XCHG, LOCK CMPXCHG) on target-i386 are somehow not atomic when simulated/translated by Qemu?
I am observing a problem with one of my HelenOS/ia32 builds which suggests me that for some reason HelenOS spinlocks are not working as expected, because at one point there are two CPUs in one spinlock-protected critical section. I have been looking into this for several days and could not find anything on the HelenOS side. The assembly code which does the locking looks good and the respective spinlock is not corrupted. The problem shows in about 2/3 of all dual-CPU boots. When it shows, the stack trace is always the same. When it does not show during the boot, the system continues to run stable and I never see the problem after the system started up. I reproduced this on Qemu 0.11.1 and 0.12.2-3 without kvm, both on ia32 and amd64 hosts. Any idea appreciated. Regards, Jakub