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. Note: manually flushing with qemu_fflush in s390-skeys vmsave also works (maybe got lost in the noise). > Two questions: > > 1) Can you also reproduce the issue manually, without running iotest > 267? ... I tried, but so far I failed. Thanks for the suggestion, will try. > > 2) Since all the information so far sounds like the problem could be > elsewhere in the code, and the skeys just catch it by accident ... have > you tried running with valgrind? Maybe it catches something useful? Nothing yet, but will fiddle with the options a bit more. > > Thomas > Ciao, Claudio