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

Pingfan Liu piliu at redhat.com
Mon Oct 21 23:25:27 PDT 2024


Hi Philipp,

Thanks for sharing your thoughts.

On Tue, Oct 22, 2024 at 12:25 AM Philipp Rudo <prudo at redhat.com> wrote:
>
> 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?
>

Yes, there should be one for x86. I will do it after this series is merged.

> 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.
>

I had thought about it, and the scenario should look like this: a
system with a UKI image so there is no direct access to get initrd,
which obstructs the use of --initrd option. On the other hand,
--reuse-cmdline can always get the cmdline from /proc/cmdline without
trouble.

Thanks,

Pingfan

> 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