On Mon, Feb 24, 2020 at 12:10:25PM -0500, Michael S. Tsirkin wrote: > On Sat, Feb 22, 2020 at 08:19:16PM +0000, Stefan Hajnoczi wrote: > > The KVM_IOREGIONFD_POSTED_WRITES flag > > skips waiting for an acknowledgement on write accesses. This is > > suitable for accesses that do not require synchronous emulation, such as > > doorbell register writes. > > I would avoid hacks like this until we understand this better. > Specificlly one needs to be very careful since memory ordering semantics > can differ between a write into an uncacheable range and host writes into > a data structure. Reads from one region are also assumed to be ordered with > writes to another region, and drivers are known to make assumptions > like this. > > Memory ordering being what it is, this isn't a field I'd be comfortable > device writes know what they are doing. Unlike PCI Posted Writes the idea is not to let the write operations sit in a cache. They will be sent immediately just like ioeventfd is signalled immediately before re-entering the guest. The purpose of this feature is to let the device emulation program handle these writes asynchronously (without holding up the vCPU for a response from the device emulation program) but the order of reads/writes remains unchanged. Stefan
Attachment:
signature.asc
Description: PGP signature