[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [Qemu-devel] [PATCH 3/4] spapr: disable hotplugging witho
From: |
Laurent Vivier |
Subject: |
Re: [Qemu-ppc] [Qemu-devel] [PATCH 3/4] spapr: disable hotplugging without OS |
Date: |
Wed, 24 May 2017 18:02:30 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0 |
On 24/05/2017 17:54, Greg Kurz wrote:
> On Wed, 24 May 2017 12:14:02 +0200
> Igor Mammedov <address@hidden> wrote:
>
>> On Wed, 24 May 2017 11:28:57 +0200
>> Greg Kurz <address@hidden> wrote:
>>
>>> On Wed, 24 May 2017 15:07:54 +1000
>>> David Gibson <address@hidden> wrote:
>>>
>>>> On Tue, May 23, 2017 at 01:18:11PM +0200, Laurent Vivier wrote:
>>>>> If the OS is not started, QEMU sends an event to the OS
>>>>> that is lost and cannot be recovered. An unplug is not
>>>>> able to restore QEMU in a coherent state.
>>>>> So, while the OS is not started, disable CPU and memory hotplug.
>>>>> We use option vector 6 to know if the OS is started
>>>>>
>>>>> Signed-off-by: Laurent Vivier <address@hidden>
>>>>
>>>> Urgh.. I'm not terribly confident that this is really correct. As
>>>> discussed on the previous patch, you're essentially using OV6 as a
>>>> flag that CAS is complete.
>>>>
>>>> But while it undoubtedly makes the race window much smaller, I don't
>>>> see that there's any guarantee the guest OS will really be able to
>>>> handle hotplug events immediately after CAS.
>>>>
>>>> In particular if the CAS process completes partially but then needs to
>>>> trigger a reboot, I think that would end up setting the ov6 variable,
>>>> but the OS would definitely not be in a state to accept events.
>> wouldn't guest on reboot pick up updated fdt and online hotplugged
>> before crash cpu along with initial cpus?
>>
>
> Yes and that's what actually happens with cpus.
>
> But catching up with the background for this series, I have the
> impression that the issue isn't the fact we loose an event if the OS
> isn't started (which is not true), but more something wrong happening
> when hotplugging+unplugging memory as described in this commit:
>
> commit fe6824d12642b005c69123ecf8631f9b13553f8b
> Author: Laurent Vivier <address@hidden>
> Date: Tue Mar 28 14:09:34 2017 +0200
>
> spapr: fix memory hot-unplugging
>
Yes, this commit try to fix that, but it's not possible. Some objects
remain in memory: you can see with "info cpus" or "info memory-devices"
that they are not really removed, and this prevents to hotplug them
again, and moreover in the case of the memory hot-unplug we can rerun
the device_del and crash qemu (as before the fix).
Moreover all stuff normally cleared in detach() are not, and we can't do
it later in set_allocation_state() because some are in use by the
kernel, and this is the last call from the kernel.
Laurent
- [Qemu-ppc] [PATCH 0/4] spapr: disable hotplugging without OS, Laurent Vivier, 2017/05/23
- [Qemu-ppc] [PATCH 3/4] spapr: disable hotplugging without OS, Laurent Vivier, 2017/05/23
- Re: [Qemu-ppc] [PATCH 3/4] spapr: disable hotplugging without OS, David Gibson, 2017/05/24
- Re: [Qemu-ppc] [PATCH 3/4] spapr: disable hotplugging without OS, Greg Kurz, 2017/05/24
- Re: [Qemu-ppc] [Qemu-devel] [PATCH 3/4] spapr: disable hotplugging without OS, Igor Mammedov, 2017/05/24
- Re: [Qemu-ppc] [Qemu-devel] [PATCH 3/4] spapr: disable hotplugging without OS, Greg Kurz, 2017/05/24
- Re: [Qemu-ppc] [Qemu-devel] [PATCH 3/4] spapr: disable hotplugging without OS,
Laurent Vivier <=
- Re: [Qemu-ppc] [Qemu-devel] [PATCH 3/4] spapr: disable hotplugging without OS, Michael Roth, 2017/05/24
- Re: [Qemu-ppc] [Qemu-devel] [PATCH 3/4] spapr: disable hotplugging without OS, David Gibson, 2017/05/24
- Re: [Qemu-ppc] [Qemu-devel] [PATCH 3/4] spapr: disable hotplugging without OS, Michael Roth, 2017/05/30
- Re: [Qemu-ppc] [Qemu-devel] [PATCH 3/4] spapr: disable hotplugging without OS, David Gibson, 2017/05/31
- Re: [Qemu-ppc] [Qemu-devel] [PATCH 3/4] spapr: disable hotplugging without OS, David Gibson, 2017/05/24
- Re: [Qemu-ppc] [PATCH 3/4] spapr: disable hotplugging without OS, David Gibson, 2017/05/24
[Qemu-ppc] [PATCH 2/4] spapr: add option vector 6, Laurent Vivier, 2017/05/23
[Qemu-ppc] [PATCH 1/4] spapr: add pre_plug function for memory, Laurent Vivier, 2017/05/23