From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:36616) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S7PXD-0004Hz-Bc for qemu-devel@nongnu.org; Tue, 13 Mar 2012 07:04:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S7PX6-0000wn-Kv for qemu-devel@nongnu.org; Tue, 13 Mar 2012 07:04:54 -0400 Received: from cantor2.suse.de ([195.135.220.15]:54658 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S7PX6-0000we-BC for qemu-devel@nongnu.org; Tue, 13 Mar 2012 07:04:48 -0400 Message-ID: <4F5F29CE.70806@suse.de> Date: Tue, 13 Mar 2012 12:04:46 +0100 From: =?UTF-8?B?QW5kcmVhcyBGw6RyYmVy?= 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> In-Reply-To: <4F5F141F.8080202@cn.fujitsu.com> 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: Lai Jiangshan Cc: Jan Kiszka , "gleb@redhat.com" , "qemu-devel@nongnu.org" , Anthony Liguori , Igor Mammedov 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 b= oth >>> -cpu and -smp need to be expressible via multiple "-device cpu-x86,xx= x" >>> (not "pc") commands. >> >> The approach that I'd recommend is: >> >> 1) convert CPU_COMMON_STATE to a structure named CPUCommonState, query= /replace all references to members of CPU_COMMON_STATE appropriately. >=20 > 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 stil= l hard, > it still leaves huge part which needs manual conversion/fix) >=20 > 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 necessary 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 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. 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. Thanks, Andreas [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 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=C3=BCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=C3=B6rffer; HRB 16746 AG N=C3=BC= rnberg