From: Alexey Kardashevskiy <aik@ozlabs.ru>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-devel@nongnu.org, quintela@redhat.com, qemu-ppc@nongnu.org,
agraf@suse.de, David Gibson <david@gibson.dropbear.id.au>
Subject: Re: [Qemu-devel] [PATCH 7/8] pseries: savevm support for PAPR virtual SCSI
Date: Mon, 27 May 2013 16:48:12 +1000 [thread overview]
Message-ID: <51A301AC.8070101@ozlabs.ru> (raw)
In-Reply-To: <51875DA7.4090308@redhat.com>
On 05/06/2013 05:37 PM, Paolo Bonzini wrote:
> Il 03/05/2013 03:38, David Gibson ha scritto:
>> This patch adds the necessary support for saving the state of the PAPR VIO
>> virtual SCSI device. This turns out to be trivial, because the generiC
>> SCSI code already quiesces the attached virtual SCSI bus.
>>
>> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
>> ---
>> hw/scsi/spapr_vscsi.c | 28 ++++++++++++++++++++++++++++
>> 1 file changed, 28 insertions(+)
>>
>> diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c
>> index 3d322d5..f416871 100644
>> --- a/hw/scsi/spapr_vscsi.c
>> +++ b/hw/scsi/spapr_vscsi.c
>> @@ -954,6 +954,33 @@ static Property spapr_vscsi_properties[] = {
>> DEFINE_PROP_END_OF_LIST(),
>> };
>>
>> +static void spapr_vscsi_pre_save(void *opaque)
>> +{
>> + VSCSIState *s = opaque;
>> + int i;
>> +
>> + /* Can't save active requests, apparently the general SCSI code
>> + * quiesces the queue for us on vmsave */
>> + for (i = 0; i < VSCSI_REQ_LIMIT; i++) {
>> + assert(!s->reqs[i].active);
>> + }
>> +}
>
> 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.
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?
> Paolo
>
>> +static const VMStateDescription vmstate_spapr_vscsi = {
>> + .name = "spapr_vscsi",
>> + .version_id = 1,
>> + .minimum_version_id = 1,
>> + .minimum_version_id_old = 1,
>> + .pre_save = spapr_vscsi_pre_save,
>> + .fields = (VMStateField []) {
>> + VMSTATE_SPAPR_VIO(vdev, VSCSIState),
>> + /* VSCSI state */
>> + /* ???? */
>> +
>> + VMSTATE_END_OF_LIST()
>> + },
>> +};
>> +
>> static void spapr_vscsi_class_init(ObjectClass *klass, void *data)
>> {
>> DeviceClass *dc = DEVICE_CLASS(klass);
>> @@ -968,6 +995,7 @@ static void spapr_vscsi_class_init(ObjectClass *klass, void *data)
>> k->signal_mask = 0x00000001;
>> dc->props = spapr_vscsi_properties;
>> k->rtce_window_size = 0x10000000;
>> + dc->vmsd = &vmstate_spapr_vscsi;
>> }
>>
>> static const TypeInfo spapr_vscsi_info = {
>>
>
--
Alexey
next prev parent reply other threads:[~2013-05-27 6:48 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-03 1:38 [Qemu-devel] [0/8] pseries: savevm / migration support David Gibson
2013-05-03 1:38 ` [Qemu-devel] [PATCH 1/8] savevm: Implement VMS_DIVIDE flag David Gibson
2013-05-03 1:38 ` [Qemu-devel] [PATCH 2/8] target-ppc: Convert ppc cpu savevm to VMStateDescription David Gibson
2013-05-03 11:29 ` Andreas Färber
2013-05-03 14:26 ` [Qemu-devel] [Qemu-ppc] " David Gibson
2013-05-03 1:38 ` [Qemu-devel] [PATCH 3/8] pseries: savevm support for XICS interrupt controller David Gibson
2013-05-03 1:38 ` [Qemu-devel] [PATCH 4/8] pseries: savevm support for VIO devices David Gibson
2013-05-03 1:38 ` [Qemu-devel] [PATCH 5/8] pseries: savevm support for PAPR VIO logical lan David Gibson
2013-05-03 1:38 ` [Qemu-devel] [PATCH 6/8] pseries: savevm support for PAPR TCE tables David Gibson
2013-05-03 1:38 ` [Qemu-devel] [PATCH 7/8] pseries: savevm support for PAPR virtual SCSI David Gibson
2013-05-06 7:37 ` Paolo Bonzini
2013-05-07 3:07 ` [Qemu-devel] [Qemu-ppc] " David Gibson
2013-05-27 6:48 ` Alexey Kardashevskiy [this message]
2013-05-27 7:03 ` [Qemu-devel] " Paolo Bonzini
2013-05-31 5:58 ` Alexey Kardashevskiy
2013-05-31 8:18 ` Paolo Bonzini
2013-05-31 10:12 ` Alexey Kardashevskiy
2013-05-31 10:26 ` Paolo Bonzini
2013-05-31 10:33 ` Alexey Kardashevskiy
2013-05-31 10:34 ` Paolo Bonzini
2013-05-31 10:07 ` Benjamin Herrenschmidt
2013-05-31 10:25 ` Alexey Kardashevskiy
2013-05-31 10:41 ` Paolo Bonzini
2013-06-01 0:01 ` Benjamin Herrenschmidt
2013-06-03 6:21 ` Paolo Bonzini
2013-06-03 5:46 ` Alexey Kardashevskiy
2013-06-03 6:23 ` Paolo Bonzini
2013-06-03 8:07 ` Benjamin Herrenschmidt
2013-06-03 9:37 ` Alexey Kardashevskiy
2013-06-03 9:41 ` Paolo Bonzini
2013-05-03 1:38 ` [Qemu-devel] [PATCH 8/8] pseries: savevm support for pseries machine David Gibson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51A301AC.8070101@ozlabs.ru \
--to=aik@ozlabs.ru \
--cc=agraf@suse.de \
--cc=david@gibson.dropbear.id.au \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=quintela@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).