From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:45501) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S7j38-0002l4-R9 for qemu-devel@nongnu.org; Wed, 14 Mar 2012 03:55:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S7j32-0003XB-7c for qemu-devel@nongnu.org; Wed, 14 Mar 2012 03:55:10 -0400 Received: from [222.73.24.84] (port=39435 helo=song.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S7j31-0003UV-Ry for qemu-devel@nongnu.org; Wed, 14 Mar 2012 03:55:04 -0400 Message-ID: <4F604FF9.8010403@cn.fujitsu.com> Date: Wed, 14 Mar 2012 15:59:53 +0800 From: Lai Jiangshan 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> In-Reply-To: <4F5F29CE.70806@suse.de> Content-Type: text/plain; charset=UTF-8 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: =?UTF-8?B?QW5kcmVhcyBGw6RyYmVy?= , Anthony Liguori , Jan Kiszka Cc: Igor Mammedov , "qemu-devel@nongnu.org" , "gleb@redhat.com" 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=5Fdevice=5Finfo =3D { >>>>> + .qdev.name =3D "cpu-pc", >>>>> + .qdev.size =3D sizeof(CPUPC), >>>>> + .qdev.reset =3D cpu=5Fdevice=5Freset, >>>>> + .init =3D cpu=5Fdevice=5Finit, >>>>> + .qdev.props =3D (Property[]) { >>>>> + DEFINE=5FPROP=5FSTRING("model", CPUPC, model), >>>> >>>> And how do you pass in feature flags? Or the core layout? Basically bo= th >>>> -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=5FCOMMON=5FSTATE to a structure named CPUCommonState, qu= ery/replace all references to members of CPU=5FCOMMON=5FSTATE 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 still= 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? >=20 > In short: Don't! >=20 > 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. >=20 > The approach I have taken is: > 1. CPUState -> CPU{X86,...}State, CPUArchState as alias where necessary > 2. Embed CPU$archState in $archCPU > 3. Step by step move CPU=5FCOMMON=5FSTATE from CPUArchState into CPUState >=20 > Steps 1+2 are done, 2 is partially on the list (e.g., [1]), the rest on > 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. Thanks, Lai >=20 > Whatever naming and order we decide on, this WILL touch a lot of code. > If you start doing this in some random different way we'll end up with > conflicting series on the list, wasting each other's time. >=20 > Thanks, > Andreas >=20 > [1] http://patchwork.ozlabs.org/patch/145800/ > [2] http://repo.or.cz/w/qemu/afaerber.git/shortlog/refs/heads/qom-cpu-wip > [3] http://patchwork.ozlabs.org/patch/145874/ >=20