[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 00/13] microvm: add acpi support
From: |
Igor Mammedov |
Subject: |
Re: [PATCH 00/13] microvm: add acpi support |
Date: |
Wed, 25 Mar 2020 19:44:34 +0100 |
On Wed, 25 Mar 2020 16:03:39 +0100
Gerd Hoffmann <address@hidden> 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 <address@hidden> 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.
>
> 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[@]}" \
> "$@"
- Re: [PATCH 00/13] microvm: add acpi support, (continued)
Re: [PATCH 00/13] microvm: add acpi support, Michael S. Tsirkin, 2020/03/23
Re: [PATCH 00/13] microvm: add acpi support, Igor Mammedov, 2020/03/25