qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC 0/9] Introduce light weight PC platform pc-lite


From: Chao Peng
Subject: Re: [Qemu-devel] [RFC 0/9] Introduce light weight PC platform pc-lite
Date: Tue, 28 Jun 2016 18:10:51 +0800
User-agent: Mutt/1.5.23 (2014-03-12)

On Thu, Jun 23, 2016 at 01:55:06PM +0100, Daniel P. Berrange wrote:
> On Mon, Jun 20, 2016 at 02:12:17PM +0800, Chao Peng wrote:
> > On Sun, Jun 19, 2016 at 06:51:04AM +0300, Michael S. Tsirkin wrote:
> > > On Fri, Jun 17, 2016 at 04:14:08AM -0400, Chao Peng wrote:
> > > > - it is FAST;
> > > 
> > > Any numbers to demonstrate just how fast it is and fast at what?
> > 
> > On a 2.30GHz Haswell server, guest kernel booting time is 59.9ms by
> > following test steps listed at
> > 
> > https://github.com/chao-p/qemu-lite-tools
> > 
> > Ran the same test with "-machine q35", the guest kernel booting
> > time is 129.8ms. There is additional 75ms in SeaBIOS for Q35 case.
> 
> I think it'd be useful / interesting to understand why we have saved
> this time vs Q35. I'm not a huge fan of the idea of defining an
> arbitrarily cut down machine type, because inevitably one applications
> view of what is the "bare minimum required functionality" will be
> different from another applications' view.
> 
> It seems to me that whether some features emulated by QEMU are slow
> or not should only matter if the guest OS actually tries to use those
> features. IOW, could we achieve the same speed up in boot time, by
> making Linux more configurable at runtime. eg so with a single Linux
> kernel binary and standard Q35/PIIX machine type, we can disable
> slow functionality by just giving Linux suitable kernel command
> line arguments.

I totally agree with you. And our goal is reducing boot time so I don't
mind using existing code to achieve this goal.

When I looked into this. I have thought there might be a minimal
platform with which I can add other stuff on demand, or a full
functional platform that allow me to disable unnecessary functionalities.

But in practice I can't get a system that exactly fit for me, regardless
there is lots of configuration methods in both QEMU/BIOS/kernel.

Taking kernel time overhead with Q35 here for example. The most time
saving comes from PCI initialization. New pc-lite platform supports only
1 bus so guest don't need to scan all the possible buses which save ~60ms.
Another time saving place is new pc-lite platform removed SMBUS/SATA/LPC
bridges that Q35 creates by default. Initialization for these devices
costs ~20ms.

The problem is not all these functionalities can be disabled either in
kernel or in QEMU, so in the end, turns out to introduce a new one.

Thanks,
Chao



reply via email to

[Prev in Thread] Current Thread [Next in Thread]