All of lore.kernel.org
 help / color / mirror / Atom feed
From: Igor Mammedov <imammedo@redhat.com>
To: Marcel Apfelbaum <marcel.a@redhat.com>
Cc: peter.maydell@linaro.org, Zhu Guihua <zhugh.fnst@cn.fujitsu.com>,
	qemu-devel@nongnu.org, Luiz Capitulino <lcapitulino@redhat.com>
Subject: Re: [Qemu-devel] [PATCH] hmp: fix regression of HMP device_del auto-completion
Date: Fri, 28 Nov 2014 15:33:52 +0100	[thread overview]
Message-ID: <20141128153352.549d02bd@nial.usersys.redhat.com> (raw)
In-Reply-To: <1417154021.14153.4.camel@localhost.localdomain>

On Fri, 28 Nov 2014 07:53:41 +0200
Marcel Apfelbaum <marcel.a@redhat.com> wrote:

> On Fri, 2014-11-28 at 09:50 +0800, Zhu Guihua wrote:
> > On Thu, 2014-11-27 at 15:48 +0200, Marcel Apfelbaum wrote:
> > > On Thu, 2014-11-27 at 13:38 +0100, Igor Mammedov wrote:
> > > > On Thu, 27 Nov 2014 13:41:07 +0200
> > > > Marcel Apfelbaum <marcel.a@redhat.com> wrote:
> > > > 
> > > > > On Thu, 2014-11-27 at 19:35 +0800, Zhu Guihua wrote:
> > > > > > On Thu, 2014-11-27 at 13:11 +0200, Marcel Apfelbaum wrote:
> > > > > > > On Wed, 2014-11-26 at 13:05 -0500, Luiz Capitulino wrote:
> > > > > > > > On Wed, 26 Nov 2014 13:50:01 +0200
> > > > > > > > Marcel Apfelbaum <marcel.a@redhat.com> wrote:
> > > > > > > > 
> > > > > > > > > The commits:
> > > > > > > > >  - 6a1fa9f5 (monitor: add del completion for peripheral device)
> > > > > > > > >  - 66e56b13 (qdev: add qdev_build_hotpluggable_device_list helper)
> > > > > > > > > 
> > > > > > > > > cause a QEMU crash when trying to use HMP device_del auto-completion.
> > > > > > > > > It can be easily reproduced by:
> > > > > > > > >     <qemu-bin> -enable-kvm  ~/images/fedora.qcow2 -monitor stdio -device virtio-net-pci,id=vnet
> > > > > > > > > 
> > > > > > > > >     (qemu) device_del
> > > > > > > > >     /home/mapfelba/git/upstream/qemu/hw/core/qdev.c:941:qdev_build_hotpluggable_device_list: Object 0x7f6ce04e4fe0 is not an instance of type device
> > > > > > > > >     Aborted (core dumped)
> > > > > > > > > 
> > > > > > > > > The root cause is qdev_build_hotpluggable_device_list going recursively over
> > > > > > > > > all peripherals and their children assuming all are devices. It doesn't work
> > > > > > > > > since PCI devices have at least on child which is a memory region (bus master).
> > > > > > > > > 
> > > > > > > > > Solved by observing that all devices appear as direct children of
> > > > > > > > > /machine/peripheral container. No need of going recursively
> > > > > > > > > over all the children.
> > > > > > > > > 
> > > > > > > > > Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com>
> > > > > > > > 
> > > > > > > > Peter, can you apply this patch directly to master to avoid me a pull
> > > > > > > > request? Maybe it's a good idea to wait until tomorrow for more
> > > > > > > > reviewers though.
> > > > > > > Speaking of reviewers, I double checked the patch and indeed it solves
> > > > > > > the crash, but the original patch has another semantic error.
> > > > > > > It looks for hot-pluggable device and not *hot-plugged* ones.
> > > > > > > 
> > > > > > > I'll try to come with a solution fast. It should be a "hot-plugged" property somewhere...
> > > > > > > 
> > > > > > Hi Marcel,
> > > > > > 
> > > > > > May you give an example for a hot-plugged but non-hot-pluggable device?
> > > > > I was talking about something different:
> > > > > A hot-pluggable device that was not hot-plugged is assumed to be hot-unpluggable.
> > > > That's applicable to most of devices.
> > > > 
> > > > > This is not true for pci-2-pci device.
> > > > Do you have a reproducer?
> > > Sure:
> > > <qemu-bin> <img>  -device pci-bridge,chassis_nr=1,id=bridge
> > > 
> > 
> > It is also not true for pc-dimm.
> > <qemu-bin> <img> -m 512,slots=10,maxmem=100G -object
> > memory-backend-ram,id=ram0,size=128M -device pc-dimm,id=d0,memdev=ram0
It's just that unplug is not implemented for pc-dimm,
but eventually it should be unpluggable.

> 
> Thanks for finding it!
> I'll try to add a "can be hot-unplugged" flag whose default value
> is "hotpluggable".
> This can be overridden by sub-classes to meet their needs.
> 
> 2.3 material, of course
> 
> Thanks,
> Marcel
>  
> [...]
> 

  reply	other threads:[~2014-11-28 14:34 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-26 11:50 [Qemu-devel] [PATCH] hmp: fix regression of HMP device_del auto-completion Marcel Apfelbaum
2014-11-26 12:21 ` Igor Mammedov
2014-11-26 18:05 ` Luiz Capitulino
2014-11-26 19:09   ` Peter Maydell
2014-11-26 19:32   ` Marcel Apfelbaum
2014-11-27 11:11   ` Marcel Apfelbaum
2014-11-27 11:26     ` Marcel Apfelbaum
2014-11-27 11:35     ` Zhu Guihua
2014-11-27 11:41       ` Marcel Apfelbaum
2014-11-27 12:08         ` Zhu Guihua
2014-11-27 12:15           ` Marcel Apfelbaum
2014-11-28  1:23             ` Zhu Guihua
2014-11-27 12:38         ` Igor Mammedov
2014-11-27 13:48           ` Marcel Apfelbaum
2014-11-28  1:50             ` Zhu Guihua
2014-11-28  5:53               ` Marcel Apfelbaum
2014-11-28 14:33                 ` Igor Mammedov [this message]
2014-11-27 14:04         ` Luiz Capitulino
2014-11-27 14:13         ` Peter Maydell
2014-11-27 14:49           ` Marcel Apfelbaum
2014-11-27 15:53 ` Peter Maydell

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=20141128153352.549d02bd@nial.usersys.redhat.com \
    --to=imammedo@redhat.com \
    --cc=lcapitulino@redhat.com \
    --cc=marcel.a@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=zhugh.fnst@cn.fujitsu.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 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.