public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Laszlo Ersek <lersek@redhat.com>
To: edk2-devel-01 <edk2-devel@lists.01.org>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	Jordan Justen <jordan.l.justen@intel.com>,
	Shannon Zhao <zhaoshenglong@huawei.com>,
	Xiang Zheng <xiang.zheng@linaro.org>
Subject: [PATCH 0/6] OvmfPkg, ArmVirtQemu: leaner platform BDS policy for connecting devices
Date: Tue, 13 Mar 2018 22:22:27 +0100	[thread overview]
Message-ID: <20180313212233.19215-1-lersek@redhat.com> (raw)

Repo:   https://github.com/lersek/edk2.git
Branch: qemu_bootorder_connect

Adding tens or hundreds of bootable devices to a QEMU VM config slows
the OVMF and ArmVirtQemu boots to a crawl, several people have reported
in the past.

There are at least two reasons for this (high pflash traffic due to
heavy nvvar massaging per device, and PCI config space access slowing
down on QEMU as the number of regions increases). However, part of the
pain is self-inflicted in our PlatformBootManagerLib instances: we
connect all bootable devices (for maximum compatibility with the user's
VM config) even if the user doesn't intend to boot off most of them.

It's oft repeated that the set of devices connected during boot is
platform policy, so this series replaces the culprit
EfiBootManagerConnectAll() calls with a bit smarter algorithm.

I sought to keep the commit messages under control.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Shannon Zhao <zhaoshenglong@huawei.com>
Cc: Xiang Zheng <xiang.zheng@linaro.org>

Thanks,
Laszlo

Laszlo Ersek (6):
  OvmfPkg/QemuBootOrderLib: wrap overlong line
  OvmfPkg/QemuBootOrderLib: add missing EFIAPI specifiers
  OvmfPkg/QemuBootOrderLib: clean up translation of virtio-net over MMIO
  OvmfPkg/QemuBootOrderLib: add ConnectDevicesFromQemu()
  OvmfPkg/PlatformBootManagerLib: minimize the set of connected devices
  ArmVirtPkg/PlatformBootManagerLib: minimize the set of connected
    devices

 ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c |  12 +-
 OvmfPkg/Include/Library/QemuBootOrderLib.h             |  41 ++++-
 OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c   |  16 +-
 OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c    | 165 +++++++++++++++++++-
 4 files changed, 218 insertions(+), 16 deletions(-)

-- 
2.14.1.3.gb7cf6e02401b



             reply	other threads:[~2018-03-13 21:16 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-13 21:22 Laszlo Ersek [this message]
2018-03-13 21:22 ` [PATCH 1/6] OvmfPkg/QemuBootOrderLib: wrap overlong line Laszlo Ersek
2018-03-13 21:22 ` [PATCH 2/6] OvmfPkg/QemuBootOrderLib: add missing EFIAPI specifiers Laszlo Ersek
2018-03-13 21:22 ` [PATCH 3/6] OvmfPkg/QemuBootOrderLib: clean up translation of virtio-net over MMIO Laszlo Ersek
2018-03-13 21:22 ` [PATCH 4/6] OvmfPkg/QemuBootOrderLib: add ConnectDevicesFromQemu() Laszlo Ersek
2018-03-13 21:22 ` [PATCH 5/6] OvmfPkg/PlatformBootManagerLib: minimize the set of connected devices Laszlo Ersek
2018-03-13 21:22 ` [PATCH 6/6] ArmVirtPkg/PlatformBootManagerLib: " Laszlo Ersek
2018-03-14  9:01 ` [PATCH 0/6] OvmfPkg, ArmVirtQemu: leaner platform BDS policy for connecting devices Ard Biesheuvel
2018-03-14  9:16 ` zhengxiang (A)
2018-03-14 10:30 ` Laszlo Ersek

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-list 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=20180313212233.19215-1-lersek@redhat.com \
    --to=devel@edk2.groups.io \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox