From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34497) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bcroY-00034w-Gn for qemu-devel@nongnu.org; Thu, 25 Aug 2016 06:23:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bcroS-0001WB-Gt for qemu-devel@nongnu.org; Thu, 25 Aug 2016 06:23:13 -0400 Received: from mga03.intel.com ([134.134.136.65]:15072) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bcroS-0001Ur-AP for qemu-devel@nongnu.org; Thu, 25 Aug 2016 06:23:08 -0400 From: Chao Peng Date: Thu, 25 Aug 2016 06:14:53 -0400 Message-Id: <1472120105-29235-1-git-send-email-chao.p.peng@linux.intel.com> Subject: [Qemu-devel] [RFC PATCH v2 00/12] Guest startup time optimization List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: "Michael S. Tsirkin" , gor Mammedov , Xiao Guangrong , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Haozhong Zhang 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 -- 1.8.3.1