From: Jan Kiszka <jan.kiszka@siemens.com>
To: Gleb Natapov <gleb@redhat.com>
Cc: Vasilis Liaskovitis <vliaskov@gmail.com>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>
Subject: Re: [PATCH] cpu hotplug issue
Date: Thu, 21 Jul 2011 13:55:26 +0200 [thread overview]
Message-ID: <4E2813AE.7090102@siemens.com> (raw)
In-Reply-To: <20110721115118.GD3044@redhat.com>
On 2011-07-21 13:51, Gleb Natapov wrote:
> On Thu, Jul 21, 2011 at 01:42:08PM +0200, Jan Kiszka wrote:
>> On 2011-07-21 13:33, Gleb Natapov wrote:
>>> On Thu, Jul 21, 2011 at 01:06:41PM +0200, Vasilis Liaskovitis wrote:
>>>> Hi,
>>>>
>>>> On Wed, Jul 20, 2011 at 10:35 AM, Gleb Natapov <gleb@redhat.com> wrote:
>>>>> On Tue, Jul 19, 2011 at 07:40:55PM +0200, Vasilis Liaskovitis wrote:
>>>>>> Hello,
>>>>>>
>>>>>> I have encountered a problem trying to hotplug a CPU in my x86_64 guest setup.
>>>>>>
>>>>> You do everything right. It's qemu who is buggy. Since qemu need a patch
>>>>> for cpu hotplug to not crash it nobody tests it, so code bit rots.
>>>>
>>>> thanks for your reply.
>>>>
>>>> As I mentioned in the original email, onlining a hotplugged-cpu with
>>>> qemu-kvm/master results in:
>>>>
>>>>>> echo 1 > /sys/devices/system/cpu/cpu1/online
>>>>>> bash: echo: write error: Input/output error
>>>>>>
>>>>>> in the guest, dmesg reports:
>>>>>>
>>>>>> [ 2325.376355] Booting Node 0 Processor 1 APIC 0x1
>>>>>> [ 2325.376357] smpboot cpu 1: start_ip = 9a000
>>>>>> [ 2330.821306] CPU1: Not responding.
>>>>
>>>> I tried to git-bisect between qemu-kvm-0.13.0 (last known version
>>>> where cpu hotplug works correctly
>>>> for me) and qemu-kvm/master.
>>>>
>>>> More precisely: To enable cpu-hotplug at each bisect stage, I apply
>>>> this patch derived from:
>>>> http://lists.gnu.org/archive/html/qemu-devel/2010-08/msg00850.html
>>>>
>>>> diff --git a/hw/qdev.c b/hw/qdev.c
>>>> index 1aa1ea0..aed48ce 100644
>>>> --- a/hw/qdev.c
>>>> +++ b/hw/qdev.c
>>>> @@ -327,6 +327,7 @@ BusState *sysbus_get_default(void)
>>>> if (!main_system_bus) {
>>>> main_system_bus = qbus_create(&system_bus_info, NULL,
>>>> "main-system-bus");
>>>> + main_system_bus->allow_hotplug = 1;
>>>> }
>>>> return main_system_bus;
>>>> }
>>>>
>>>> and test cpu hotplug functionality.
>>>> The commit that appears to break CPU hotplug is:
>>>>
>>> Thank you for going through the pain of bisecting it! Bisects that
>>> require patch to be applied between each step are especially annoying.
>>>
>>>> commit f4de8c1451f2265148ff4d895a27e21c0a8788aa
>>>> Author: Jan Kiszka <jan.kiszka@siemens.com>
>>>> Date: Mon Feb 21 12:28:07 2011 +0100
>>>> qemu-kvm: Mark VCPU state dirty on creation
>>>>
>>> Jan can you look at this please?
>>
>> I can't promise to do debugging myself.
>>
>> Also, as I never succeeded in getting anything working with CPU hotplug,
>> even back in the days it was supposed to work, I'm a bit clueless /wrt
>> to the right test cases.
>>
> CPU hotplug for Linux suppose to be easy (with allow_hotplug patch
> applied). But we have two bugs currently. One is that ACPI interrupt
I bet we have multiple bugs for quite a while now, which accelerated bit
rotting even further.
> is not send when cpu is onlined (at least this appears to be the case).
> I will look at that one. Another is that after new cpu is detected it
> can't be onlined.
>
> After fixing the first bug the test should look like this:
> 1. start vm with -smp 1,macpus=2
> 2. wait for it to boot
> 3. do "cpu 1 online" in monitor.
> 4. do "echo 1 > /sys/devices/system/cpu/cpu1/online"
>
> If step 4 should succeed. It fails now.
Should the above work even with the current ACPI issue unfixed?
Jan
--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
next prev parent reply other threads:[~2011-07-21 11:55 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-19 17:40 cpu hotplug issue Vasilis Liaskovitis
2011-07-20 8:35 ` Gleb Natapov
2011-07-21 11:06 ` [PATCH] " Vasilis Liaskovitis
2011-07-21 11:33 ` Gleb Natapov
2011-07-21 11:42 ` Jan Kiszka
2011-07-21 11:51 ` Gleb Natapov
2011-07-21 11:55 ` Jan Kiszka [this message]
2011-07-21 12:00 ` Gleb Natapov
2011-07-21 12:18 ` Avi Kivity
2011-07-21 12:22 ` Gleb Natapov
2011-07-21 12:39 ` Jan Kiszka
2011-07-21 13:27 ` Lucas Meneghel Rodrigues
2011-07-21 12:45 ` Gleb Natapov
2011-07-22 10:56 ` Jan Kiszka
2011-07-24 11:56 ` Gleb Natapov
2011-07-24 16:11 ` Jan Kiszka
2011-07-25 13:18 ` Jan Kiszka
2011-07-25 13:21 ` Gleb Natapov
2011-07-25 13:26 ` Jan Kiszka
2011-07-27 16:35 ` Vasilis Liaskovitis
2011-07-28 16:52 ` Jan Kiszka
2011-08-02 9:46 ` Vasilis Liaskovitis
2011-08-02 10:24 ` Jan Kiszka
2011-08-02 13:41 ` Vasilis Liaskovitis
2011-08-03 10:07 ` Vasilis Liaskovitis
2011-08-03 10:37 ` Jan Kiszka
2011-08-03 10:38 ` Gleb Natapov
2011-08-03 10:42 ` Jan Kiszka
2011-08-03 16:25 ` Vasilis Liaskovitis
2011-08-04 8:01 ` Gleb Natapov
2011-08-04 8:40 ` Jan Kiszka
2011-07-21 13:08 ` Vasilis Liaskovitis
2011-07-21 13:11 ` Gleb Natapov
2011-07-21 13:12 ` Vasilis Liaskovitis
2011-07-21 13:13 ` Gleb Natapov
2011-07-21 13:15 ` Avi Kivity
2011-07-21 13:15 ` Avi Kivity
2011-07-21 11:36 ` Jan Kiszka
2011-07-21 12:22 ` Jan Kiszka
2011-07-21 12:25 ` Gleb Natapov
2011-07-21 12:35 ` Jan Kiszka
2011-07-21 12:40 ` Gleb Natapov
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=4E2813AE.7090102@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=gleb@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=vliaskov@gmail.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