Hi, I have been confused by this question for a long time, both in
hardware and software.
First, in the real x86 hardware architectures, while the DMA is
operating, can other CPUs access the same memory region? Or the DMA
controller will hold the bus and the memory exclusively and CPUs have
to wait? Of course, we assume that the operating system is too stupid
to provide the mutex in software.
Second, if the CPUs have to wait, then how about in QEMU? When QEMU is
emulating the DMA, can other vcpus access the memory (or exactly, the
same memory region)? If not, how does QEMU achieve this? That is, how
does QEMU prevent other vcpus to access the memory? I have read
through the part of the emulation of DMA, but I didn't see anything
related to this.
Thanks very much!

--Le Tan

Reply via email to