forked from pool/grub2
Accepting request 980213 from home:michael-chang:branches:Base:System
- Use boot disks in OpenFirmware, fixing regression caused by 0001-ieee1275-implement-FCP-methods-for-WWPN-and-LUNs.patch, when the root LV is completely in the boot LUN (bsc#1197948) * 0001-ofdisk-improve-boot-time-by-lookup-boot-disk-first.patch - Fix error message in displaying help on bootable snapshot (bsc#1199609) OBS-URL: https://build.opensuse.org/request/show/980213 OBS-URL: https://build.opensuse.org/package/show/Base:System/grub2?expand=0&rev=415
This commit is contained in:
parent
db2c247b25
commit
2d223e0f89
@ -0,0 +1,63 @@
|
|||||||
|
From b0f9dcabe96e5689ecfba9b6abcd27e685eabd48 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michael Chang <mchang@suse.com>
|
||||||
|
Date: Wed, 11 May 2022 09:56:11 -0400
|
||||||
|
Subject: [PATCH] ofdisk: improve boot time by lookup boot disk first
|
||||||
|
|
||||||
|
While booting lvm, grub will try to build up logical volumes via hooks
|
||||||
|
to disk iteration where on-disk metadata can be read and parsed. However
|
||||||
|
the process can become very slow on multipath as reachable disks are
|
||||||
|
duplicated by multiple I/O paths and they all get inspected.
|
||||||
|
|
||||||
|
Fortunately grub allows lvm to be lazy binding and opportunistic that
|
||||||
|
root volume can be created when it's needed using a smaller set of
|
||||||
|
discovered disks. The disk iteration can also be controlled by pull
|
||||||
|
methods to only returning specified disks. That said we may be able to
|
||||||
|
take advantage of existing design to cause less overhead in lvm
|
||||||
|
construction.
|
||||||
|
|
||||||
|
This patch will return boot disks in OpenFirmware so they can be used
|
||||||
|
first. If lvm managed to create root volume out of those boot disks then
|
||||||
|
it is all very nice as they are readily available. Otherwise disk
|
||||||
|
scanning will be performed to present all discoverable disks to grub as
|
||||||
|
what it was done in the past. The result maybe again time consuming but
|
||||||
|
we have nothing to lose here.
|
||||||
|
|
||||||
|
Signed-off-by: Michael Chang <mchang@suse.com>
|
||||||
|
---
|
||||||
|
grub-core/disk/ieee1275/ofdisk.c | 11 +++++++++--
|
||||||
|
1 file changed, 9 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/grub-core/disk/ieee1275/ofdisk.c b/grub-core/disk/ieee1275/ofdisk.c
|
||||||
|
index 258a6e3891..410f4b849f 100644
|
||||||
|
--- a/grub-core/disk/ieee1275/ofdisk.c
|
||||||
|
+++ b/grub-core/disk/ieee1275/ofdisk.c
|
||||||
|
@@ -491,10 +491,11 @@ grub_ofdisk_iterate (grub_disk_dev_iterate_hook_t hook, void *hook_data,
|
||||||
|
{
|
||||||
|
unsigned i;
|
||||||
|
|
||||||
|
- if (pull != GRUB_DISK_PULL_NONE)
|
||||||
|
+ if (pull > GRUB_DISK_PULL_REMOVABLE)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
- scan ();
|
||||||
|
+ if (pull == GRUB_DISK_PULL_REMOVABLE)
|
||||||
|
+ scan ();
|
||||||
|
|
||||||
|
for (i = 0; i < ARRAY_SIZE (ofdisk_hash); i++)
|
||||||
|
{
|
||||||
|
@@ -532,6 +533,12 @@ grub_ofdisk_iterate (grub_disk_dev_iterate_hook_t hook, void *hook_data,
|
||||||
|
if (!ent->is_boot && ent->is_removable)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
+ if (pull == GRUB_DISK_PULL_NONE && !ent->is_boot)
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
+ if (pull == GRUB_DISK_PULL_REMOVABLE && ent->is_boot)
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
if (hook (ent->grub_shortest, hook_data))
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
@ -1,3 +1,16 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue May 31 04:41:44 UTC 2022 - Michael Chang <mchang@suse.com>
|
||||||
|
|
||||||
|
- Use boot disks in OpenFirmware, fixing regression caused by
|
||||||
|
0001-ieee1275-implement-FCP-methods-for-WWPN-and-LUNs.patch, when
|
||||||
|
the root LV is completely in the boot LUN (bsc#1197948)
|
||||||
|
* 0001-ofdisk-improve-boot-time-by-lookup-boot-disk-first.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 26 10:10:56 UTC 2022 - Michael Chang <mchang@suse.com>
|
||||||
|
|
||||||
|
- Fix error message in displaying help on bootable snapshot (bsc#1199609)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue May 17 10:46:38 UTC 2022 - Michael Chang <mchang@suse.com>
|
Tue May 17 10:46:38 UTC 2022 - Michael Chang <mchang@suse.com>
|
||||||
|
|
||||||
|
@ -374,6 +374,7 @@ Patch848: 0001-grub-probe-Deduplicate-probed-partmap-output.patch
|
|||||||
Patch849: 0001-powerpc-do-CAS-in-a-more-compatible-way.patch
|
Patch849: 0001-powerpc-do-CAS-in-a-more-compatible-way.patch
|
||||||
Patch850: 0001-Fix-infinite-boot-loop-on-headless-system-in-qemu.patch
|
Patch850: 0001-Fix-infinite-boot-loop-on-headless-system-in-qemu.patch
|
||||||
Patch851: 0001-libc-config-merge-from-glibc.patch
|
Patch851: 0001-libc-config-merge-from-glibc.patch
|
||||||
|
Patch852: 0001-ofdisk-improve-boot-time-by-lookup-boot-disk-first.patch
|
||||||
|
|
||||||
Requires: gettext-runtime
|
Requires: gettext-runtime
|
||||||
%if 0%{?suse_version} >= 1140
|
%if 0%{?suse_version} >= 1140
|
||||||
@ -644,7 +645,7 @@ CD_MODULES="all_video boot cat configfile echo true \
|
|||||||
PXE_MODULES="tftp http"
|
PXE_MODULES="tftp http"
|
||||||
CRYPTO_MODULES="luks gcry_rijndael gcry_sha1 gcry_sha256"
|
CRYPTO_MODULES="luks gcry_rijndael gcry_sha1 gcry_sha256"
|
||||||
%ifarch %{efi}
|
%ifarch %{efi}
|
||||||
CD_MODULES="${CD_MODULES} chain efifwsetup efinet"
|
CD_MODULES="${CD_MODULES} chain efifwsetup efinet read"
|
||||||
PXE_MODULES="${PXE_MODULES} efinet"
|
PXE_MODULES="${PXE_MODULES} efinet"
|
||||||
%else
|
%else
|
||||||
CD_MODULES="${CD_MODULES} net"
|
CD_MODULES="${CD_MODULES} net"
|
||||||
|
Loading…
Reference in New Issue
Block a user