From: Juan Quintela <quintela@redhat.com>
To: Mark McLoughlin <markmc@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [PATCH] Fix incoming migration
Date: Tue, 10 Nov 2009 19:55:12 +0100 [thread overview]
Message-ID: <m38weexl9r.fsf@neno.mitica> (raw)
In-Reply-To: <1257872916.2888.72.camel@blaa> (Mark McLoughlin's message of "Tue, 10 Nov 2009 17:08:36 +0000")
Mark McLoughlin <markmc@redhat.com> wrote:
> On Tue, 2009-11-10 at 18:03 +0100, Juan Quintela wrote:
>> Mark McLoughlin <markmc@redhat.com> wrote:
>> > On Fri, 2009-11-06 at 15:58 +0100, Juan Quintela wrote:
>> >> commit b04c4134d6de28c249277de19e523bfbe4aebbd6
>> >> broke incoming migration. After talking with Gleb, code was intended
>> >> to be the way is in this fix. This fixes migration here.
>> >
>> > Tried to reproduce and it works fine for me. More details?
>> >
>> >> Signed-off-by: Juan Quintela <quintela@redhat.com>
>> >> ---
>> >> savevm.c | 7 ++++++-
>> >> 1 files changed, 6 insertions(+), 1 deletions(-)
>> >>
>> >> diff --git a/savevm.c b/savevm.c
>> >> index b7abf43..fd98ccd 100644
>> >> --- a/savevm.c
>> >> +++ b/savevm.c
>> >> @@ -126,6 +126,8 @@ static int announce_self_create(uint8_t *buf,
>> >> static void qemu_announce_self_once(void *opaque)
>> >> {
>> >> int i, len;
>> >> + VLANState *vlan;
>> >> + VLANClientState *vc;
>> >> uint8_t buf[60];
>> >> static int count = SELF_ANNOUNCE_ROUNDS;
>> >> QEMUTimer *timer = *(QEMUTimer **)opaque;
>> >> @@ -134,7 +136,10 @@ static void qemu_announce_self_once(void *opaque)
>> >> if (!nd_table[i].used)
>> >> continue;
>> >> len = announce_self_create(buf, nd_table[i].macaddr);
>> >> - qemu_send_packet_raw(nd_table[i].vc, buf, len);
>> >> + vlan = nd_table[i].vlan;
>> >> + QTAILQ_FOREACH(vc, &vlan->clients, next) {
>> >> + qemu_send_packet_raw(vc, buf, len);
>> >> + }
>> >
>> > A NIC isn't necessarily connected to a vlan any more, which is why the
>> > change was made.
>> >
>> > With your patch, I'd expect it to crash if you used -netdev rather than
>> > -net
>>
>> Without this patch, migration don't work at all. nd_table[i].vc is NULL
>> at this point. Any better idea?
>
> Right, I can't reproduce that. Exactly what command line did you use?
/scratch/qemu/x86_64-softmmu/qemu-system-x86_64 -M pc -m 512 -smp 1
-name test -drive file=/scratch/tmp/f11b.img,if=ide -drive
file=/scratch/tmp/temp.img,if=virtio -net
nic,macaddr=54:52:00:53:7e:5b,vlan=0,model=virtio -net
tap,script=/etc/kvm-ifup,vlan=0,ifname=vnet1,downscript=no --monitor
stdio --serial telnet:0:5553,server --virtioconsole telnet:0:5554,server
--enable-kvm -usbdevice tablet -soundhw ac97 -loadvm virtio
virtio is an image saved with the same command line.
(I am rebasing to upstream, but I am getting a different error)
qemu)
Program received signal SIGSEGV, Segmentation fault.
0x00000000004ddb53 in qdev_reset (opaque=0xd32cc0)
at /scratch/qemu/hw/qdev.c:228
228 if (dev->info->reset)
(gdb) bt
#0 0x00000000004ddb53 in qdev_reset (opaque=0xd32cc0)
at /scratch/qemu/hw/qdev.c:228
#1 0x000000000040ce9d in qemu_system_reset () at /scratch/qemu/vl.c:3240
#2 0x000000000040da71 in main_loop () at /scratch/qemu/vl.c:4047
#3 0x0000000000411452 in main (argc=30, argv=0x7fffffffe388,
envp=0x7fffffffe480) at /scratch/qemu/vl.c:5909
(gdb) p *dev
$1 = {id = 0x0,
state = DEV_STATE_INITIALIZED, opts = 0x0, hotplugged = 0,
info = 0x10000007f7ee2a0, parent_bus = 0x137f80, num_gpio_out = 0,
gpio_out = 0x0, num_gpio_in = 0, gpio_in = 0x0, child_bus = {
lh_first = 0x0}, num_child_bus = 0, sibling = {le_next = 0xd0a8d0,
le_prev = 0xcf6400}}
(gdb)
Will try again once that I have fixed that one.
Later, Juan.
next prev parent reply other threads:[~2009-11-10 18:55 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-06 14:58 [Qemu-devel] [PATCH] Fix incoming migration Juan Quintela
2009-11-10 16:47 ` Mark McLoughlin
2009-11-10 17:03 ` [Qemu-devel] " Juan Quintela
2009-11-10 17:08 ` Mark McLoughlin
2009-11-10 18:55 ` Juan Quintela [this message]
2009-11-10 17:07 ` [Qemu-devel] " Glauber Costa
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=m38weexl9r.fsf@neno.mitica \
--to=quintela@redhat.com \
--cc=markmc@redhat.com \
--cc=qemu-devel@nongnu.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.