From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:39898) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S7jiC-0002cE-1Y for qemu-devel@nongnu.org; Wed, 14 Mar 2012 04:37:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S7ji4-0003Ja-MH for qemu-devel@nongnu.org; Wed, 14 Mar 2012 04:37:35 -0400 Received: from mx1.redhat.com ([209.132.183.28]:52457) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S7ji4-0003JE-E3 for qemu-devel@nongnu.org; Wed, 14 Mar 2012 04:37:28 -0400 Message-ID: <4F6058BE.4060403@redhat.com> Date: Wed, 14 Mar 2012 09:37:18 +0100 From: Igor Mammedov MIME-Version: 1.0 References: <1329347774-23262-1-git-send-email-imammedo@redhat.com> <1329347774-23262-3-git-send-email-imammedo@redhat.com> <4F3CF010.1040607@siemens.com> <4F3CFBBB.5020600@codemonkey.ws> <4F5F141F.8080202@cn.fujitsu.com> <4F5F29CE.70806@suse.de> <4F604FF9.8010403@cn.fujitsu.com> In-Reply-To: <4F604FF9.8010403@cn.fujitsu.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH 2/7] Convert pc cpu to qdev List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Lai Jiangshan Cc: Jan Kiszka , "gleb@redhat.com" , =?UTF-8?B?QW5kcmVhcyBGw6RyYmVy?= , Anthony Liguori , "qemu-devel@nongnu.org" On 03/14/2012 08:59 AM, Lai Jiangshan wrote: > On 03/13/2012 07:04 PM, Andreas F=C3=A4rber wrote: >> Am 13.03.2012 10:32, schrieb Lai Jiangshan: >>> On 02/16/2012 08:51 PM, Anthony Liguori wrote: >>>> On 02/16/2012 06:01 AM, Jan Kiszka wrote: >>>>> On 2012-02-16 00:16, Igor Mammedov wrote: >>>>>> +static ICCBusDeviceInfo cpu_device_info =3D { >>>>>> + .qdev.name =3D "cpu-pc", >>>>>> + .qdev.size =3D sizeof(CPUPC), >>>>>> + .qdev.reset =3D cpu_device_reset, >>>>>> + .init =3D cpu_device_init, >>>>>> + .qdev.props =3D (Property[]) { >>>>>> + DEFINE_PROP_STRING("model", CPUPC, model), >>>>> >>>>> And how do you pass in feature flags? Or the core layout? Basically= both >>>>> -cpu and -smp need to be expressible via multiple "-device cpu-x86,= xxx" >>>>> (not "pc") commands. >>>> >>>> The approach that I'd recommend is: >>>> >>>> 1) convert CPU_COMMON_STATE to a structure named CPUCommonState, que= ry/replace all references to members of CPU_COMMON_STATE appropriately. >>> >>> I just tried this for several days, it will result a huge patch, >>> it is hard for human, any suggestion? >>> (I used Semantic patches script: http://coccinelle.lip6.fr/, it is st= ill hard, >>> it still leaves huge part which needs manual conversion/fix) >>> >>> I will take part in implementing cpu-hotplug future for qemu, >>> Could you give me some tips/suggestions? What approach should I take? >> >> In short: Don't! >> >> Please instead provide feedback on my series which already does >> something like that for you, available since multiple weeks. If a >> different naming is preferred, I can change it. >> >> The approach I have taken is: >> 1. CPUState -> CPU{X86,...}State, CPUArchState as alias where necessa= ry >> 2. Embed CPU$archState in $archCPU >> 3. Step by step move CPU_COMMON_STATE from CPUArchState into CPUState >> >> Steps 1+2 are done, 2 is partially on the list (e.g., [1]), the rest o= n >> my qom-cpu-wip branch [2]. >> Step 3 is shown for icount on qom-cpu-wip as well as for multiple >> target-specific fields such as target-arm features [3]. Contributions >> welcome. > > > OK, your work can't be done automatically, but it do be worth when > there are multiple target-specific fields existed. > > Anthony Liguori, Jan Kiszka, > > Could you light me what can I do for cpu-hotplug. > I saw several approaches are sent to the maillist, but they are > not accepted, so I don't know how to take part in. As I see it, there is not much to do from cpu hot-plug perspective. It's just a matter of adaptation QOM-ified cpus for usage from qdev device_add, and I'm working on it. However, there is a lot to be done in cpu unplug area: - host side: there is unaccepted patches to destroy vcpu during VM-lifecycle. They are still need to be worked on: "[Qemu-devel] [PATCH 0] A series patches for kvm&qemu to enable vcp= u destruction in kvm" - linux guest side: kernel can receive ACPI request to unplug cpu, but does nothing with it (last time I've tested it with 3.2 kernel), You might wish to look at following mail threads: https://lkml.org/lkml/2011/9/30/18 http://lists.gnu.org/archive/html/qemu-devel/2011-10/msg02254.html --=20 ----- Igor