On 7/15/20 1:10 PM, Claudio Fontana wrote: > Hi Thomas, > > On 7/14/20 4:35 PM, Thomas Huth wrote: >> On 14/07/2020 16.29, Claudio Fontana wrote: >>> Hello, >>> >>> I have some tiny progress in narrowing down this issue, possibly a qcow2 >>> issue, still unclear, >>> but involving Kevin Wolf and Max Reitz. >>> >>> >>> The reproducer again: >>> >>>> --------------------------------------------cut------------------------------------------- >>>> diff --git a/cpus.c b/cpus.c >>>> index 41d1c5099f..443b88697a 100644 >>>> --- a/cpus.c >>>> +++ b/cpus.c >>>> @@ -643,7 +643,7 @@ static void qemu_account_warp_timer(void) >>>> >>>> static bool icount_state_needed(void *opaque) >>>> { >>>> - return use_icount; >>>> + return 0; >>>> } >>>> >>>> static bool warp_timer_state_needed(void *opaque) >>>> --------------------------------------------cut------------------------------------------- >>> >>> This issue for now appears on s390 only: >>> >>> On s390 hardware, test 267 fails (both kvm and tcg) in the qcow2 backing >>> file part, with broken migration stream data in the s390-skeys vmsave (old >>> style). >> [...] >>> If someone has a good idea let me know - first attempts to reproduce on x86 >>> failed, but maybe more work could lead to it. >> > > small update: in the GOOD case (enough padding added) a qcow_merge() is > triggered for the last write of 16202 bytes. > In the BAD case (not enough padding added) a qcow_merge() is not triggered > for the last write of 16201 bytes.
I am talking about merge_cow() here, and it is more complicated. Will post a better explanation later on. > > Note: manually flushing with qemu_fflush in s390-skeys vmsave also works > (maybe got lost in the noise).