On Wed, 15 Jul 2020 at 09:36, Jason Wang <[email protected]> wrote: > I think the point is to make DMA to MMIO work as real hardware.
I wouldn't care to give a 100% guarantee that asking a real h/w device to DMA to itself didn't cause it to misbehave :-) It's more likely to happen-to-work because the DMA engine bit of a real h/w device is going to be decoupled somewhat from the respond-to-memory-transactions-for-registers logic, but it probably wasn't something the designers were actively thinking about either... > For > e1000e and other networking devices we need make sure such DMA doesn't > break anything. Yeah, this is the interesting part for QEMU. How should we structure devices that do DMA so that we can be sure that the device emulation at least doesn't crash? We could have a rule that all devices that do DMA must always postpone all of that DMA to a bottom-half, but that's a lot of refactoring of a lot of device code... thanks -- PMM
