[PATCH 2/3] [PATCH 2/3] kexec: split kexec_load syscall from kexec core code

Dave Young dyoung at redhat.com
Tue Jul 14 02:24:48 PDT 2015


Hi, Geert

On 07/14/15 at 11:16am, Geert Uytterhoeven wrote:
> Hi Dave,
> 
> On Tue, Jul 14, 2015 at 11:11 AM, Dave Young <dyoung at redhat.com> wrote:
> > On 07/14/15 at 10:50am, Geert Uytterhoeven wrote:
> >> On Tue, Jul 14, 2015 at 10:46 AM, Dave Young <dyoung at redhat.com> wrote:
> >> >> > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> >> >> > index 1c50210..20c48b3 100644
> >> >> > --- a/arch/arm/Kconfig
> >> >> > +++ b/arch/arm/Kconfig
> >> >> > @@ -2001,10 +2001,14 @@ config XIP_PHYS_ADDR
> >> >> >           be linked for and stored to.  This address is dependent on your
> >> >> >           own flash usage.
> >> >> >
> >> >> > +config KEXEC_CORE
> >> >> > +       bool
> >> >> > +
> >> >> >  config KEXEC
> >> >> >         bool "Kexec system call (EXPERIMENTAL)"
> >> >> >         depends on (!SMP || PM_SLEEP_SMP)
> >> >> >         depends on !CPU_V7M
> >> >> > +       select KEXEC_CORE
> >> >> >         help
> >> >> >           kexec is a system call that implements the ability to shutdown your
> >> >> >           current kernel, and to start another kernel.  It is like a reboot
> >> >>
> >> >> As this KEXEC_CORE is appearing in all arch/*/Kconfig files, I think it's
> >> >> time to add an ARCH_HAS_KEXEC symbol (to a common Kconfig file),
> >> >> and let arch/*/Kconfig select that if the architecture has kexec support.
> >> >>
> >> >> Then KEXEC and KEXEC_CORE can live in the common Kconfig file,
> >> >> without the need to duplicate it.
> >> >
> >> > I'm not sure I understand your idea well, do you means like
> >> > in arch/Kconfig add ARCH_HAS_KEXEC which depends on KEXEC_CORE?
> >>
> >> No, ARCH_HAS_KEXEC and all other KEXEC config options in arch/Kconfig.
> >> All other KEXEC config options should depend on ARCH_HAS_KEXEC,
> >> which can be selected by architectures that support kexec.
> >
> > So it will be like below? problem is KEXEC_FILE is x86 only now, how
> > to handle it then?
> >
> > arch/Kconfig:
> > config ARCH_HAS_KEXEC
> >         ...
> > config KEXEC_CORE
> >         ...
> > config KEXEC
> 
> depends on ARCH_HAS_KEXEC
> 
> >         ...
> > config KEXEC_FILE
> 
> depends on ARCH_HAS_KEXEC

But only x86 has KEXEC_FILE, if we make this change one will see KEXEC_FILE
on arches other than x86.. 

> 
> >         ...
> >
> > arch/arm/Kconfig:
> >         select ARCH_HAS_KEXEC
> 
> Right, that's the idea.
> 
> (Minor nit: ARM has dependencies for kexec, so it should be
>  "select ARCH_HAS_KEXEC if (!SMP || PM_SLEEP_SMP) && !CPU_V7M")
> 
> >> > How about simply move below chunk to arch/Kconfig instead of introducing
> >> > another ARCH_HAS_KEXEC:
> >> > config KEXEC_CORE
> >> >         bool
> >>
> >> Not all architectures support kexec, hence my proposed dependency on
> >> ARCH_HAS_KEXEC.
> >
> > KEXEC_CORE is not visible in menuconfig, it is selected by KEXEC and KEXEC_FILE
> > so move it in arch/Kconfig is ok?
> 
> Yes.

I means how about only moving KEXEC_CORE to general Kconfig, but do not introduce
ARCH_HAS_KEXEC..

Thanks
Dave



More information about the kexec mailing list