[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH RFC v2 09/16] vfio-user: region read/write
From: |
John Johnson |
Subject: |
Re: [PATCH RFC v2 09/16] vfio-user: region read/write |
Date: |
Thu, 9 Sep 2021 06:00:36 +0000 |
> On Sep 7, 2021, at 10:24 AM, John Levon <john.levon@nutanix.com> wrote:
>
> On Mon, Aug 16, 2021 at 09:42:42AM -0700, Elena Ufimtseva wrote:
>
>> +int vfio_user_region_write(VFIODevice *vbasedev, uint32_t index,
>> + uint64_t offset, uint32_t count, void *data)
>> +{
>> + g_autofree VFIOUserRegionRW *msgp = NULL;
>> + int size = sizeof(*msgp) + count;
>> +
>> + msgp = g_malloc0(size);
>> + vfio_user_request_msg(&msgp->hdr, VFIO_USER_REGION_WRITE, size,
>> + VFIO_USER_NO_REPLY);
>
> Mirroring https://github.com/oracle/qemu/issues/10 here for visibility:
>
> Currently, vfio_user_region_write uses VFIO_USER_NO_REPLY unconditionally,
> meaning essentially all writes are posted. But that shouldn't be the case, for
> example for PCI config space, where it's expected that writes will wait for an
> ack before the VCPU continues.
>
I’m not sure following the PCI spec (mem writes posted, config & IO
are not) completely solves the issue if the device uses sparse mmap. A store
to went over the socket can be passed by a load that goes directly to memory,
which could break a driver that assumes a load completion means older stores
to the same device have also completed.
JJ