All of lore.kernel.org
 help / color / mirror / Atom feed
From: Igor Mammedov <imammedo@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>,
	Sergio Lopez <slp@redhat.com>,
	qemu-devel@nongnu.org, Gerd Hoffmann <kraxel@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Richard Henderson <rth@twiddle.net>
Subject: Re: [PATCH 00/13] microvm: add acpi support
Date: Thu, 26 Mar 2020 11:59:43 +0100	[thread overview]
Message-ID: <20200326115943.5e19119b@redhat.com> (raw)
In-Reply-To: <20200326032841-mutt-send-email-mst@kernel.org>

On Thu, 26 Mar 2020 03:33:35 -0400
"Michael S. Tsirkin" <mst@redhat.com> wrote:

> On Wed, Mar 25, 2020 at 07:44:34PM +0100, Igor Mammedov wrote:
> > On Wed, 25 Mar 2020 16:03:39 +0100
> > Gerd Hoffmann <kraxel@redhat.com> wrote:
> >   
> > > On Wed, Mar 25, 2020 at 01:32:12PM +0100, Igor Mammedov wrote:  
> > > > On Thu, 19 Mar 2020 09:01:04 +0100
> > > > Gerd Hoffmann <kraxel@redhat.com> wrote:
> > > >     
> > > > > I know that not supporting ACPI in microvm is intentional.  If you still
> > > > > don't want ACPI this is perfectly fine, you can use the usual -no-acpi
> > > > > switch to toggle ACPI support.
> > > > > 
> > > > > These are the advantages you are going to loose then:
> > > > > 
> > > > >   (1) virtio-mmio device discovery without command line hacks (tweaking
> > > > >       the command line is a problem when not using direct kernel boot).
> > > > >   (2) Better IO-APIC support, we can use IRQ lines 16-23.
> > > > >   (3) ACPI power button (aka powerdown request) works.
> > > > >   (4) machine poweroff (aka S5 state) works.
> > > > > 
> > > > > Together with seabios patches for virtio-mmio support this allows to
> > > > > boot standard fedora images (cloud, coreos, workstation live) with the
> > > > > microvm machine type.    
> > > > 
> > > > what CLI do you use to test it?    
> > > 
> > > Test script below.  "qemu-default" is a wrapper script which starts
> > > qemu-system-x86_64 from my build directory.  "qemu-firmware" is the
> > > same plus isa-debugcon configured for a firmware log on stdout.
> > > 
> > > Latest bits (with some of the review comments addressed) just pushed
> > > to git://git,kraxel.org/qemu sirius/microvm  
> > 
> > thanks, below are test results I got on my system,
> > spoiler hw-reduced reduces boot time on ~0.02s compared to full blown acpi
> > ----
> > using timestamp at "Run /init as init process" as measuring point
> > 
> > no acpi
> > 1.967316
> > 1.975272
> > 1.981267
> > 1.974316
> > 1.962452
> > 1.960988
> > 
> > hw reduced acpi
> > 0.893838
> > 0.892573
> > 0.890585
> > 0.900306
> > 0.897902
> > 
> > normal acpi:
> > 0.921647
> > 0.916298
> > 0.923518
> > 0.916298
> > 0.913234
> > 
> > PS:
> > I just quickly hacked hw-reduced acpi (using arm/virt as model)
> > without implementing power button but I doubt that would affect results noticeably 
> > on qemu side it probably also will save some time since there are less
> > things to setup for qemu.  
> 
> And no ACPI is faster because of PS/2 probing, right?
I suppose you've meant -slower- because of ...

if I compare at 'i8042: PNP: No PS/2 controller found.' to rule out
probing, then no-api and hw-reduced are about in the same ballpark
(3-4ms difference in favor of no-acpi).

no-acpi
0.765785
0.783540
0.785269
0.777751
0.774474
0.770611
0.789309

hw-reduced
0.788733
0.775982
0.793132
0.769077
0.774771
0.775191
0.771170

 

> 
> > > 
> > > HTH,
> > >   Gerd
> > > 
> > > ============================ cut here ============================
> > > #!/bin/sh
> > > 
> > > mode="${1}"
> > > shift
> > > 
> > > back=()
> > > devs=()
> > > args=()
> > > qemu="qemu-firmware -monitor none -boot menu=on"
> > > disk=""
> > > liso=""
> > > krnl=""
> > > karg="console=ttyS0,115200"
> > > 
> > > case "$mode" in
> > > kernel)
> > > 	qemu="qemu-default -nographic"
> > > 	disk="/vmdisk/imagefish/rhel-8.1.0-ks-x86_64-testboot-sys-disk.qcow2"
> > > 	krnl="$HOME/build/linux-sirius-x86_64-qemu/arch/x86/boot/bzImage"
> > > 	karg="$karg root=/dev/sda4"
> > > 	karg="$karg quiet"
> > > 	;;
> > > seabios)
> > > 	disk="/vmdisk/imagefish/rhel-8.1.0-ks-x86_64-testboot-sys-disk.qcow2"
> > > 	krnl="$HOME/build/linux-sirius-x86_64-qemu/arch/x86/boot/bzImage"
> > > 	karg="$karg root=/dev/sda4"
> > > 	args+=("-bios" "/home/kraxel/projects/seabios/out-bios-microvm/bios.bin")
> > > 	;;
> > > cloud)
> > > 	disk="/vmdisk/iso/Fedora-Cloud-Base-31-1.9.x86_64.raw"
> > > 	;;
> > > coreos)
> > > 	disk="/vmdisk/iso/fedora-coreos-31.20200210.3.0-metal.x86_64.raw"
> > > 	;;
> > > live)
> > > 	liso="/vmdisk/iso/Fedora-Workstation-Live-x86_64-30-1.2.iso"
> > > 	devs+=("-device" "virtio-gpu-device")
> > > 	devs+=("-device" "virtio-keyboard-device")
> > > 	devs+=("-device" "virtio-tablet-device")
> > > 	;;
> > > *)
> > > 	echo "unknown mode: $mode"
> > > 	echo "known modes: kernel seabios cloud coreos live"
> > > 	exit 1
> > > 	;;
> > > esac
> > > 
> > > if test "$disk" != ""; then
> > > 	format="${disk##*.}"
> > > 	back+=("-drive" "if=none,id=disk,format=${format},file=${disk}")
> > > 	devs+=("-device" "scsi-hd,drive=disk,bootindex=1")
> > > fi
> > > if test "$liso" != ""; then
> > > 	back+=("-drive" "if=none,id=cdrom,media=cdrom,readonly,format=raw,file=${liso}")
> > > 	devs+=("-device" "scsi-cd,drive=cdrom,bootindex=2")
> > > fi
> > > if test "$krnl" != ""; then
> > > 	args+=("-kernel" "$krnl")
> > > 	args+=("-append" "$karg")
> > > fi
> > > 
> > > set -ex
> > > $qemu \
> > > 	-enable-kvm \
> > > 	-cpu host \
> > > 	-M microvm,graphics=off,pit=off,pic=on,rtc=on \
> > > 	\
> > > 	-m 4G \
> > > 	\
> > > 	-netdev user,id=net \
> > > 	"${back[@]}" \
> > > 	\
> > > 	-global virtio-mmio.force-legacy=false \
> > > 	-device virtio-net-device,netdev=net \
> > > 	-device virtio-scsi-device \
> > > 	"${devs[@]}" \
> > > 	\
> > > 	"${args[@]}" \
> > > 	"$@"  
> 
> 



  reply	other threads:[~2020-03-26 11:01 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-19  8:01 [PATCH 00/13] microvm: add acpi support Gerd Hoffmann
2020-03-19  8:01 ` [PATCH 01/13] acpi: make build_madt() more generic Gerd Hoffmann
2020-03-19  9:34   ` Philippe Mathieu-Daudé
2020-03-19  8:01 ` [PATCH 02/13] acpi: factor out acpi_dsdt_add_fw_cfg() Gerd Hoffmann
2020-03-19  9:36   ` Philippe Mathieu-Daudé
2020-03-19 12:16   ` Igor Mammedov
2020-03-19  8:01 ` [PATCH 03/13] microvm: add isa-acpi device Gerd Hoffmann
2020-03-19 13:42   ` Igor Mammedov
2020-03-20  8:22     ` Gerd Hoffmann
2020-03-20 14:54       ` Igor Mammedov
2020-03-19  8:01 ` [PATCH 04/13] microvm: add minimal acpi support Gerd Hoffmann
2020-03-19 14:00   ` Igor Mammedov
2020-03-25  9:04     ` Gerd Hoffmann
2020-03-25 18:59       ` Igor Mammedov
2020-03-19  8:01 ` [PATCH 05/13] microvm: add acpi_dsdt_add_virtio() for x86 Gerd Hoffmann
2020-03-19 14:30   ` Igor Mammedov
2020-03-20  8:19     ` Gerd Hoffmann
2020-03-19  8:01 ` [PATCH 06/13] microvm: disable virtio-mmio cmdline hack Gerd Hoffmann
2020-03-19  8:01 ` [PATCH 07/13] [testing] seabios: update submodule to experimental microvm branch Gerd Hoffmann
2020-03-19  8:01 ` [PATCH 08/13] [testing] seabios: update config & build rules Gerd Hoffmann
2020-03-19  8:01 ` [PATCH 09/13] [testing] seabios: update binaries to experimental microvm branch Gerd Hoffmann
2020-03-19  8:01 ` [PATCH 10/13] microvm/acpi: add rtc Gerd Hoffmann
2020-03-19  8:01 ` [PATCH 11/13] microvm/acpi: add serial Gerd Hoffmann
2020-03-19  8:01 ` [PATCH 12/13] microvm: make virtio irq base runtime configurable Gerd Hoffmann
2020-03-19  8:01 ` [PATCH 13/13] microvm/acpi: use GSI 16-23 for virtio Gerd Hoffmann
2020-03-20 15:30   ` Konrad Rzeszutek Wilk
2020-03-23 10:23     ` Gerd Hoffmann
2020-03-19  8:19 ` [PATCH 00/13] microvm: add acpi support no-reply
2020-03-19  8:23 ` no-reply
2020-03-19  8:24 ` no-reply
2020-03-19  8:49 ` Paolo Bonzini
2020-03-19  9:33   ` Gerd Hoffmann
2020-03-19  9:59     ` Paolo Bonzini
2020-03-19 11:28       ` Gerd Hoffmann
2020-03-19 13:40   ` Gerd Hoffmann
2020-03-19 17:34     ` Paolo Bonzini
2020-03-20  8:32       ` Gerd Hoffmann
2020-03-20 10:41         ` Paolo Bonzini
2020-03-23 10:51 ` Michael S. Tsirkin
2020-03-23 12:09   ` Gerd Hoffmann
2020-03-23 12:16     ` Igor Mammedov
2020-03-25  9:16       ` Gerd Hoffmann
2020-03-25  9:53         ` Igor Mammedov
2020-03-25 18:56         ` Igor Mammedov
2020-03-25 12:32 ` Igor Mammedov
2020-03-25 15:03   ` Gerd Hoffmann
2020-03-25 18:44     ` Igor Mammedov
2020-03-26  7:33       ` Michael S. Tsirkin
2020-03-26 10:59         ` Igor Mammedov [this message]
2020-03-27 12:06       ` Gerd Hoffmann
2020-03-27 14:05         ` Igor Mammedov

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=20200326115943.5e19119b@redhat.com \
    --to=imammedo@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    --cc=slp@redhat.com \
    /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.