From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38328) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UiIMc-0007sk-VY for qemu-devel@nongnu.org; Fri, 31 May 2013 01:58:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UiIMa-00013v-22 for qemu-devel@nongnu.org; Fri, 31 May 2013 01:58:58 -0400 Received: from mail-ie0-x22f.google.com ([2607:f8b0:4001:c03::22f]:58838) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UiIMZ-00013o-U4 for qemu-devel@nongnu.org; Fri, 31 May 2013 01:58:55 -0400 Received: by mail-ie0-f175.google.com with SMTP id tp5so2839062ieb.6 for ; Thu, 30 May 2013 22:58:55 -0700 (PDT) Message-ID: <51A83C18.2030102@ozlabs.ru> Date: Fri, 31 May 2013 15:58:48 +1000 From: Alexey Kardashevskiy MIME-Version: 1.0 References: <1367545092-19980-1-git-send-email-david@gibson.dropbear.id.au> <1367545092-19980-8-git-send-email-david@gibson.dropbear.id.au> <51875DA7.4090308@redhat.com> <51A301AC.8070101@ozlabs.ru> <51A30528.9020708@redhat.com> In-Reply-To: <51A30528.9020708@redhat.com> Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 7/8] pseries: savevm support for PAPR virtual SCSI List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: quintela@redhat.com, agraf@suse.de, qemu-devel@nongnu.org, qemu-ppc@nongnu.org, David Gibson On 05/27/2013 05:03 PM, Paolo Bonzini wrote: > Il 27/05/2013 08:48, Alexey Kardashevskiy ha scritto: >>>> >>>> This is only true when the rerror and werror options have the values >>>> "ignore" or "report". See virtio-scsi for an example of how to save the >>>> requests using the save_request and load_request callbacks in SCSIBusInfo. >> >> Sigh. > > ? I thought the series is ready to go but I was wrong. Furthermore when I got to the point where I could actually test the save/restore for vscsi_req, migration was totally broken on PPC and it took some time to fix it :-/ >> How do you test that requests are saved/restored correctly? What does >> happen to requests which were already sent to the real hardware (real block >> device, etc) but have not completed at the moment of the end of migration? > > They aren't saved, there is a bdrv_drain_all() in the migration code. > > This is only used for rerror=stop or werror=stop. To test it you can > use blkdebug (also a bit underdocumented) or hack block/raw-posix.c with > code that makes it fail the 100th write or something like that. Start > the VM and migrate it while paused to a QEMU that doesn't have the hack. I run QEMU as (this is the destination, the source just does not have -incoming): ./qemu-system-ppc64 \ -L "qemu-ppc64-bios/" \ -device "spapr-vscsi,id=ibmvscsi0" \ -drive "file=virtimg/fc18guest,if=none,id=dddrive0,readonly=off,format=blkdebug,media=disk,werror=stop,rerror=stop" \ -device "scsi-disk,id=scsidisk0,bus=ibmvscsi0.0,channel=0,scsi-id=0,lun=0,drive=dddrive0,removable=off" \ -incoming "tcp:localhost:4000" \ -m "1024" \ -machine "pseries" \ -nographic \ -vga "none" \ -enable-kvm Am I using werror/rerror correctly? I did not really understand how to use blkdebug or what else to hack in raw-posix but the point is I cannot get QEMU into a state with at least one vcsci_req.active==1, they are always inactive no matter what I do - I run 10 instances of "dd if=/def/sda of=/dev/null bs=4K" (on 8GB image with FC18) and increase migration speed to 500MB/s, no effect. How do you trigger the situation when there are inactive requests which have to be migrated? And another question (sorry I am not very familiar with terminology but cc:Ben is :) ) - what happens with indirect requests if migration happened in the middle of handling such a request? virtio-scsi does not seem to handle this situation anyhow, it just reconstructs the whole request and that's it. -- Alexey