[PATCHv2 0/3] kexec: Add support for UKI format kernel

Philipp Rudo prudo at redhat.com
Mon Oct 21 09:25:06 PDT 2024


Hi Pingfan,
Hi Simon,

I know I'm a little bit too late, but I finally had time to take a
look. All in all the series looks fine to me. But I have two questions.

1) Is there a reason why you don't enable the UKI for x86 as well? The
way I see it patch 1 and 2 cover x86 as well. So you only should need a
patch similar to patch 3. Or am I missing something?

2) Would it make sense to "reuse" the mechanism you introduced for the
initrd for the command line as well. I.e. if it's a UKI with a .cmdline
section and the user didn't provide any of the --command-line,
--reuse-cmdline, etc. then use the command line from the UKI.

Thanks
Philipp

On Wed, 16 Oct 2024 19:34:12 +0800
Pingfan Liu <piliu at redhat.com> wrote:

> As a UEFI PE format kernel image becomes more popular, there is a need
> for kexec to reboot those kinds of images.
> 
> After the introduction of the UKI (another PE), at present, there are
> three competitive methods to support that goal, but all of them have
> pros and cons.[1] It seems that none of them can be accepted in the near
> future.  Therefore, we are resorting to the user space kexec-tools to
> parse the UKI format for the time being.
> 
> By parsing the UKI, systemd-stub is stepped around and PCM will not affect
> the boot up of the second system.
> 
> [1]: https://github.com/rhkdump/kexec_uefi/blob/main/overview.md#the-competitive-solutions
> 
> Cc: Simon Horman <horms at kernel.org>
> Cc: Eric Biederman <ebiederm at xmission.com>
> Cc: Baoquan He <bhe at redhat.com>
> Cc: Dave Young <dyoung at redhat.com>
> Cc: Ard Biesheuvel <ardb at kernel.org>
> Cc: Jan Hendrik Farr <kernel at jfarr.cc>
> Cc: Philipp Rudo <prudo at redhat.com>
> Cc: Lennart Poettering <mzxreary at 0pointer.de>
> Cc: kexec at lists.infradead.org
> ---
> v1 -> v2:
> Add include/pe.h in makefile to fix 'make dist'
> Rename default_initrd_fd to implicit_initrd_fd
> 
> 
> Pingfan Liu (3):
>   kexec: Introduce implicit_initrd_fd to pass internal initrd
>     information
>   kexec: Introduce UKI image parser
>   arm64: Support UKI image format
> 
>  include/Makefile                     |   1 +
>  include/pe.h                         | 104 +++++++++++++++++++++++
>  kexec/Makefile                       |   1 +
>  kexec/arch/arm64/kexec-arm64.c       |   1 +
>  kexec/arch/arm64/kexec-image-arm64.c |   3 +-
>  kexec/arch/x86_64/kexec-bzImage64.c  |   3 +-
>  kexec/kexec-uki.c                    | 122 +++++++++++++++++++++++++++
>  kexec/kexec.c                        |   2 +
>  kexec/kexec.h                        |   5 ++
>  9 files changed, 240 insertions(+), 2 deletions(-)
>  create mode 100644 include/pe.h
>  create mode 100644 kexec/kexec-uki.c
> 




More information about the kexec mailing list