From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:33894) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SC9Va-0001VD-N9 for qemu-devel@nongnu.org; Mon, 26 Mar 2012 08:58:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SC9VY-0005ZJ-Po for qemu-devel@nongnu.org; Mon, 26 Mar 2012 08:58:50 -0400 Received: from e28smtp06.in.ibm.com ([122.248.162.6]:50075) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SC9V9-0005Nf-KP for qemu-devel@nongnu.org; Mon, 26 Mar 2012 08:58:48 -0400 Received: from /spool/local by e28smtp06.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 26 Mar 2012 18:28:02 +0530 Received: from d28av01.in.ibm.com (d28av01.in.ibm.com [9.184.220.63]) by d28relay05.in.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id q2QCvxa24030640 for ; Mon, 26 Mar 2012 18:28:00 +0530 Received: from d28av01.in.ibm.com (loopback [127.0.0.1]) by d28av01.in.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id q2QIRhU8013949 for ; Mon, 26 Mar 2012 23:57:44 +0530 Date: Mon, 26 Mar 2012 20:57:57 +0800 From: Wanpeng Li Message-ID: <20120326125757.GA17898@liwp@linux.vnet.ibm.com> References: <1332727608-26523-1-git-send-email-liwp@linux.vnet.ibm.com> <4F706557.4040305@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <4F706557.4040305@suse.de> Subject: Re: [Qemu-devel] [PATCH 0/6] refactor PC machine, i440fx and piix3 to take advantage of QOM Reply-To: Wanpeng Li List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Andreas =?iso-8859-1?Q?F=E4rber?= Cc: qemu-devel On Mon, Mar 26, 2012 at 02:47:19PM +0200, Andreas Färber wrote: >Am 26.03.2012 04:06, schrieb Wanpeng Li: >> From: Anthony Liguori > >Resending an old cover letter is not a good idea. This looks like a v2, >so please mark it as such in the subjects; it's missing a Change Log >against Anthony's version. I take it, some patches were dropped? > No, I just help him rebase his patches. >> This series aggressively refactors the PC machine initialization to be more >> modelled and less ad-hoc. The highlights of this series are: >> >> 1) Things like -m and -bios-name are now device model properties >> >> 2) The i440fx and piix3 are now modelled in a thorough fashion >> >> 3) Most of the chipset features of the piix3 are modelled through composition >> >> 4) i440fx_init is trivialized to creating devices and setting properties >> >> 5) convert MemoryRegion to QOM >> >> 6) convert PCI host bridge to QOM >> >> The point (4) is the most important one. As we refactor in this fashion, >> we should quickly get to the point where machine->init disappears completely in >> favor of just creating a handful of devices. > >I agree that machine->init needs to be refactored, however I don't think >it'll disappear, just be moved into initfn/realize functions. > >Andreas > >> >> The two stage initialization of QOM is important here. instance_init() is when >> composed devices are created which means that after you've created a device, all >> of its children are visible in the device model. This lets you set properties >> of the parent and its children. >> >> realize() (which is still called DeviceState::init today) will be called right >> before the guest starts up for the first time. >> >> Signed-off-by: Anthony Liguori >> Signed-off-by: Wanpeng Li >> >> --- >> Makefile.target | 3 +- >> hw/hpet.c | 39 +--- >> hw/hpet_emul.h | 41 +++ >> hw/i440fx.c | 431 ++++++++++++++++++++++++++ >> hw/i440fx.h | 78 +++++ >> hw/i8254_internal.h | 2 +- >> hw/mc146818rtc.c | 26 -- >> hw/mc146818rtc.h | 29 ++ >> hw/pc.c | 838 +++++++++++++++++++++++++++++++++++++++++++++------ >> hw/pc.h | 46 +--- >> hw/pc_piix.c | 762 ---------------------------------------------- >> hw/pci_host.c | 26 ++ >> hw/pci_host.h | 5 + >> hw/piix3.c | 274 +++++++++++++++++ >> hw/piix3.h | 79 +++++ >> hw/piix_pci.c | 600 ------------------------------------ >> memory.c | 94 +++++-- >> memory.h | 8 + >> 18 files changed, 1795 insertions(+), 1586 deletions(-) >> create mode 100644 hw/i440fx.c >> create mode 100644 hw/i440fx.h >> delete mode 100644 hw/pc_piix.c >> create mode 100644 hw/piix3.c >> create mode 100644 hw/piix3.h >> delete mode 100644 hw/piix_pci.c >> -- > >-- >SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany >GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg > -- LTC China, IBM, Shanghai