[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] Virtio-BLK/SCSI write requests and data payload checksu
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-block] Virtio-BLK/SCSI write requests and data payload checksums |
Date: |
Mon, 17 Dec 2018 18:07:10 -0500 |
On Mon, Dec 17, 2018 at 04:19:53PM +0100, Peter Lieven wrote:
> Am 17.12.18 um 15:48 schrieb Stefan Hajnoczi:
> > On Sun, Dec 16, 2018 at 06:53:44PM +0100, Peter Lieven wrote:
> > > It turned out that for writes a bounce buffer is indeed always necessary.
> > > But what I found out is that
> > > it seems that even for reads it happens that the OS (Windows in this
> > > case) issues 2 read requests with
> > > the same buffer in parallel. Is it possible that this is a bug in the
> > > virtio or has anybone ever seen this before?
> > Is it Windows resume-from-sleep? I remember a race condition that
> > Microsoft fixed.
>
>
> Its a running guest, no resume. From the dumped Data it seems that its often
> (not always) log files.
>
>
> >
> > The other weird thing I've seen is scatter-gather lists where the same
> > buffer address is used multiple times within one request (this can go
> > wrong if the host splits up the request, causing races).
>
>
> The requests go to different LBAs often several 100MB apart from each other.
> The only thing I
>
> can see it that the request size always seems to be 4096 byte.
>
>
> I have not seen data corruption so far, but this at all seems very strange.
>
> I only have observed this because the data digest checksum is wrong. After a
> retry it is correct.
>
> When dumping the buffer addresses (in this case the address from the first
> buffer in the qiov)
>
> that came from Qemu/the guest the address is the same.
>
>
> Actually I don't know for sure that the address comes from the guest. In
> theory it could be that
>
> the request from the guest was less than 4096 byte and Qemu just assigned a
> bounce buffer
>
> to read the whole block and copied the relevant part to the guest. Can I see
> from the
>
> address (0x7fa4354c0000) if it comes from Qemu or the guest?
>
>
> Thanks,
>
> Peter
>
+cc some windows driver developers.
--
MST