qemu-block
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]