Paolo Bonzini <pbonz...@redhat.com> writes: > Il 28/06/2013 22:41, Anthony Liguori ha scritto: >> Tiny copy/paste error here: s/qemu memory/memory/g". >> >> One thing I've been thinking about reviewing this code, what should we >> be doing in virtio.c? >> >> We have barriers but we're relying on st[u][wlb]_phys having atomic >> semantics. I think it's okay in practice but if we're taking a more >> diligent approach here should we introduce atomic variants that work on >> guest phys addresses? > > I think it's part of the semantics of stu?[wlb]_phys that they (a) are > not CSE'd by the compiler (b) are atomic for aligned addresses. I > cannot find the commit exactly, but I think mst added specific code for > that.
Right, I'm not questioning whether these functions have strong enough semantics in their implementation, but asking what their contract should be. Either we should document that these functions have atomic semantics or we should introduce another variant that guarantee atomic access. I think the later makes more sense since the majority of users probably don't need atomic semantics. Regards, Anthony Liguori > > Paolo