qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC PATCH] qdev: Mark devices as non-hotpluggable by d


From: Thomas Huth
Subject: Re: [Qemu-devel] [RFC PATCH] qdev: Mark devices as non-hotpluggable by default
Date: Fri, 22 Sep 2017 09:52:53 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0

On 22.09.2017 09:38, Cornelia Huck wrote:
> On Thu, 21 Sep 2017 15:50:28 -0300
> Eduardo Habkost <address@hidden> wrote:
> 
>> On Tue, Sep 19, 2017 at 10:55:53AM +0200, Thomas Huth wrote:
>>> Historically we've marked all devices as hotpluggable by default. However,
>>> most devices are not hotpluggable, and you also need a HotplugHandler to
>>> support these devices. So if the user tries to "device_add" or "device_del"
>>> such a non-hotpluggable device during runtime, either nothing really usable
>>> happens, or QEMU even crashes/aborts unexpectedly (see for example commit
>>> 84ebd3e8c7d4fe955b - "Mark diag288 watchdog as non-hotpluggable").
>>> So let's change this dangerous default behaviour and mark the devices as
>>> non-hotpluggable by default. Certain parent devices classes which are known
>>> as hotpluggable (e.g. PCI, USB, etc.) are marked with "hotpluggable = true",
>>> so that devices that are derived from these classes continue to work as
>>> expected.  
>>
>> These seem to be missing:
>> * TYPE_CPU (or at least TYPE_X86_CPU and TYPE_S390_CPU)
> 
> I think it would be better to set it for TYPE_CPU (and have
> architectures override if needed).

Hmm, no, I think TYPE_CPU should stay non-notpluggable, and we should
only do this for TYPE_X86_CPU, TYPE_S390_CPU and TYPE_SPAPR_CPU_CORE.
Most CPU types are not hot-pluggable, so that should be the default.
Having seen all those "device_add" crashes in the past weeks, I'm afraid
that we'll run into weird problems again otherwise since people will
keep forgetting to add "hotpluggable = false" for new CPU types that are
not hotpluggable.

 Thomas



reply via email to

[Prev in Thread] Current Thread [Next in Thread]