All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Chao Peng <chao.p.peng@linux.intel.com>,
	qemu-devel@nongnu.org, gor Mammedov <imammedo@redhat.com>,
	Xiao Guangrong <guangrong.xiao@linux.intel.com>,
	Richard Henderson <rth@twiddle.net>,
	Eduardo Habkost <ehabkost@redhat.com>,
	Haozhong Zhang <haozhong.zhang@intel.com>
Subject: Re: [Qemu-devel] [RFC PATCH v2 00/12] Guest startup time optimization
Date: Mon, 5 Sep 2016 05:37:00 +0300	[thread overview]
Message-ID: <20160905053519-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <e633c19b-3386-42e9-38df-2469b3eafa39@redhat.com>

On Fri, Sep 02, 2016 at 01:08:29PM +0200, Paolo Bonzini wrote:
> 
> 
> On 25/08/2016 12:14, Chao Peng wrote:
> > This patchset is trying to optimize guest startup time by disabling
> > or simplifying some features in QEMU. The version 1 can be found at:
> > https://lists.nongnu.org/archive/html/qemu-devel/2016-06/msg04842.html
> > 
> > Unlike version 1, this version optimizes Q35 directly instead of
> > introducing a totally new platform. But we still keep the design of
> > skipping firmware as till now we don't have good idea to optimize
> > firmware to get the comparable boot time.
> > 
> > The patchset is against commit 5f0e775 (Update version for v2.7.0-rc3
> > release) on master branch.
> > 
> > Basically this patchset introduces several switches to qemu comandline
> > so that several features can be turned off in some use cases. The
> > default behavior will not change in case no switches are provided.
> > 
> > Performance data:
> > feature(switches)       time saved in guest
> > -nosmbus                4ms
> > -nosata                 6ms
> > -nopic                  2ms
> > -nopit                  5ms
> > -static-prt             8ms
> > -nofw                   62ms
> > 
> > Thanks,
> > Chao
> > 
> > Chao Peng (9):
> >   pc: make smbus configurable
> >   pc: make sata configurable
> >   pc: make pic configurable
> >   pc: make pit configurable
> >   acpi: build static _PRT
> >   ich9: enable pm registers when there is no firmware
> >   q35: initialize MMCFG base when there is no firmware
> >   pc: support direct loading protected/long mode kernel
> >   pc: skip firmware
> > 
> > Haozhong Zhang (3):
> >   acpi: expose data structurs and functions of BIOS linker loader
> >   acpi: expose acpi_checksum()
> >   acpi: patch guest ACPI when there is no firmware
> > 
> >  hw/acpi/bios-linker-loader.c         |  83 +---------
> >  hw/acpi/core.c                       |   2 +-
> >  hw/acpi/nvdimm.c                     |   6 +-
> >  hw/i386/Makefile.objs                |   2 +-
> >  hw/i386/acpi-build-nofw.c            | 295 ++++++++++++++++++++++++++++++++++
> >  hw/i386/acpi-build.c                 | 102 +++++++-----
> >  hw/i386/acpi-build.h                 |   5 +
> >  hw/i386/pc.c                         | 301 +++++++++++++++++++++++++++++++----
> >  hw/i386/pc_piix.c                    |   2 +-
> >  hw/i386/pc_q35.c                     |  60 ++++---
> >  hw/isa/lpc_ich9.c                    |  12 +-
> >  hw/pci-host/q35.c                    |  15 +-
> >  include/hw/acpi/acpi.h               |   2 +
> >  include/hw/acpi/bios-linker-loader.h |  85 ++++++++++
> >  include/hw/i386/pc.h                 |  16 +-
> >  15 files changed, 800 insertions(+), 188 deletions(-)
> >  create mode 100644 hw/i386/acpi-build-nofw.c
> 
> Patches 1-4 are okay, though I think it would be easier to add a -M
> q35-lite too that just removes the legacy devices.  The -M q35-lite
> machine doesn't have to support versioning for now.

Where q35-lite will be same as q35 with different defaults?
Sure, I don't have a problem with this.
In particular this will allow things like "q35-lite but with sata" etc.

> As you might expect, I don't agree with removing the firmware.  There's
> room for much more optimization before duplicating firmware code in
> QEMU.  I'd rather see numbers for:
> 
> 1) qboot optimizations: adopt the fw_cfg DMA interface instead of the
> cbfs flash hack (so that -kernel works), drop PCI bridge initialization,
> copy less than 64K of memory from ROM to 0xf0000;
> 
> 2) Linux optimizations: using an uncompressed image to avoid the cost of
> copying and decompressing.  QEMU can already load the image at the right
> place and the real mode stub can do little more than GDT/IDT setup.
> 
> 3) PAM optimizations: for -M q35-lite initialize the machine with RAM
> from 0xc0000 to 1MB.
> 
> I know that you ultimately would like to mmap the kernel, but I would
> like to have a better understanding of where the time is spent.
> 
> Thanks,
> 
> Paolo

  reply	other threads:[~2016-09-05  2:37 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-25 10:14 [Qemu-devel] [RFC PATCH v2 00/12] Guest startup time optimization Chao Peng
2016-08-25 10:14 ` [Qemu-devel] [RFC PATCH v2 01/12] pc: make smbus configurable Chao Peng
2016-09-06 20:18   ` Eduardo Habkost
2016-08-25 10:14 ` [Qemu-devel] [RFC PATCH v2 02/12] pc: make sata configurable Chao Peng
2016-08-25 10:14 ` [Qemu-devel] [RFC PATCH v2 03/12] pc: make pic configurable Chao Peng
2016-08-25 10:14 ` [Qemu-devel] [RFC PATCH v2 04/12] pc: make pit configurable Chao Peng
2016-08-25 10:14 ` [Qemu-devel] [RFC PATCH v2 05/12] acpi: build static _PRT Chao Peng
2016-08-29 17:06   ` Paolo Bonzini
2016-08-25 10:14 ` [Qemu-devel] [RFC PATCH v2 06/12] acpi: expose data structurs and functions of BIOS linker loader Chao Peng
2016-08-25 10:15 ` [Qemu-devel] [RFC PATCH v2 07/12] acpi: expose acpi_checksum() Chao Peng
2016-08-25 10:15 ` [Qemu-devel] [RFC PATCH v2 08/12] acpi: patch guest ACPI when there is no firmware Chao Peng
2016-08-25 10:15 ` [Qemu-devel] [RFC PATCH v2 09/12] ich9: enable pm registers " Chao Peng
2016-08-25 10:15 ` [Qemu-devel] [RFC PATCH v2 10/12] q35: initialize MMCFG base " Chao Peng
2016-08-25 10:15 ` [Qemu-devel] [RFC PATCH v2 11/12] pc: support direct loading protected/long mode kernel Chao Peng
2016-08-25 10:15 ` [Qemu-devel] [RFC PATCH v2 12/12] pc: skip firmware Chao Peng
2016-08-29 17:08   ` Paolo Bonzini
2016-09-02 11:08 ` [Qemu-devel] [RFC PATCH v2 00/12] Guest startup time optimization Paolo Bonzini
2016-09-05  2:37   ` Michael S. Tsirkin [this message]
2016-09-06 10:48   ` Chao Peng
2016-09-06 11:53     ` Michael S. Tsirkin
2016-09-06 14:28       ` Chao Peng
2016-09-12 15:15         ` Gerd Hoffmann
2016-09-12 17:57           ` [Qemu-devel] [SeaBIOS] " Peter Stuge
2016-09-06 14:21     ` [Qemu-devel] " Paolo Bonzini
2016-09-06 14:31       ` Chao Peng
2016-09-06 14:45       ` Michael S. Tsirkin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160905053519-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=chao.p.peng@linux.intel.com \
    --cc=ehabkost@redhat.com \
    --cc=guangrong.xiao@linux.intel.com \
    --cc=haozhong.zhang@intel.com \
    --cc=imammedo@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.