[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v6 2/2] kconfig: add xenconfig defconfig helper



On Thu, May 21, 2015 at 11:49:17PM +0900, Masahiro Yamada wrote:
> Hi,
> 
> I am not familiar with xen at all, just some comments
> from the build system side.
> 
> 
> 
> 2015-05-21 3:53 GMT+09:00 Luis R. Rodriguez <mcgrof@xxxxxxxxxxxxxxxx>:
> > From: "Luis R. Rodriguez" <mcgrof@xxxxxxxx>
> >
> > This lets you build a kernel which can support xen dom0
> > or xen guests on i386, x86-64 and arm64 by just using:
> >
> >    make xenconfig
> >
> > You can start from an allnoconfig and then switch to xenconfig.
> > This also splits out the options which are available currently
> > to be built with x86 and 'make ARCH=arm64' under a shared config.
> >
> > Technically xen supports a dom0 kernel and also a guest
> > kernel configuration but upon review with the xen team
> > since we don't have many dom0 options its best to just
> > combine these two into one.
> >
> > A few generic notes: we enable both of these:
> >
> > CONFIG_INET=y
> > CONFIG_BINFMT_ELF=y
> >
> > although technically not required given you likely will
> > end up with a pretty useless system otherwise.
> >
> > A few architectural differences worth noting:
> >
> > $ make allnoconfig; make xenconfig > /dev/null ; \
> >         grep XEN .config > 64-bit-config
> > $ make ARCH=i386 allnoconfig; make ARCH=i386 xenconfig > /dev/null; \
> >         grep XEN .config > 32-bit-config
> > $ make ARCH=arm64 allnoconfig; make ARCH=arm64 xenconfig > /dev/null; \
> >         grep XEN .config > arm64-config
> >
> > Since the options are already split up with a generic config and
> > architecture specific configs you anything on the x86 configs
> > are known to only work right now on x86. For instance arm64 doesn't
> > support MEMORY_HOTPLUG yet as such although we try to enabe it
> > generically arm64 doesn't have it yet, so we leave the xen
> > specific kconfig option XEN_BALLOON_MEMORY_HOTPLUG on x86's config
> > file to set expecations correctly.
> >
> > Then on x86 we have differences between i386 and x86-64. The difference
> > between 64-bit-config and 32-bit-config is you don't get XEN_MCE_LOG as
> > this is only supported on 64-bit. You also do not get on i386
> > XEN_BALLOON_MEMORY_HOTPLUG, there does not seem to be any technical
> > reasons to not allow this but I gave up after a few attempts.
> >
> > Cc: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
> > Cc: Borislav Petkov <bp@xxxxxxx>
> > Cc: Pekka Enberg <penberg@xxxxxxxxxx>
> > Cc: David Rientjes <rientjes@xxxxxxxxxx>
> > Cc: Michal Marek <mmarek@xxxxxxx>
> > Cc: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> > Cc: penberg@xxxxxxxxxx
> > Cc: levinsasha928@xxxxxxxxx
> > Cc: mtosatti@xxxxxxxxxx
> > Cc: fengguang.wu@xxxxxxxxx
> > Cc: David Vrabel <david.vrabel@xxxxxxxxxx>
> > Cc: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
> > Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> > Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx
> > Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
> > Acked-by: Julien Grall <julien.grall@xxxxxxxxxx>
> > Acked-by: Michal Marek <mmarek@xxxxxxx>
> > Acked-by: David Rientjes <rientjes@xxxxxxxxxx>
> > Reviewed-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
> > Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxx>
> > ---
> 
> > diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
> > index 6950032..f52abae 100644
> > --- a/scripts/kconfig/Makefile
> > +++ b/scripts/kconfig/Makefile
> > @@ -115,6 +115,10 @@ PHONY += kvmconfig
> >  kvmconfig: kvm_guest.config
> >         @:
> >
> > +PHONY += xenconfig
> > +xenconfig: xen.config
> > +       @:
> > +
> >  PHONY += tinyconfig
> >  tinyconfig:
> >         $(Q)$(MAKE) -f $(srctree)/Makefile allnoconfig tiny.config
> 
> 
> "make xenconfig" is equivalent to "make xen.config"
> and only saves one character.
> 
> Now we have only three targets for mergeconfig (tiny, kvm, xen),
> so it is OK to add this as an alias.
> But if we have more such targets, we might have
> to consider to use generic targets (*.config) at some point.

I'm frankly terrified of all these config target options growing more and
the possible large collateral of patches to Kconfig files in the future. Since
this is a small specialized group now, I think we should treat it as such but
I think what you say has good merit long run.

For now I'm more of a fan we limit what we stuff in here and if this explodes
then only have new options use the subject.config target. Thoughts?

> I do not intend to block this.
> Just take my comment with a grain of salt..
> 
> 
> > @@ -140,6 +144,7 @@ help:
> >         @echo  '  listnewconfig   - List new options'
> >         @echo  '  olddefconfig    - Same as silentoldconfig but sets new 
> > symbols to their default value'
> >         @echo  '  kvmconfig       - Enable additional options for kvm guest 
> > kernel support'
> > +       @echo  '  xenconfig       - Enable additional options for xen dom0 
> > and guest kernel support'
> >         @echo  '  tinyconfig      - Configure the tiniest possible kernel'
> >
> >  # lxdialog stuff
> 
> 
> If kvmconfig and xenconfig are only available for x86,
> is it better to enclose those helps with
> ifeq ($(ARCH),x86)
>  ...
> endif

That's true if kvm was only for x86 but it is not, and likewise for xen.

mcgrof@ergon ~/linux-next (git::sumadre)$ git grep "config KVM$"
arch/arm/kvm/Kconfig:config KVM
arch/arm64/kvm/Kconfig:config KVM
arch/mips/kvm/Kconfig:config KVM
arch/powerpc/kvm/Kconfig:config KVM
arch/s390/kvm/Kconfig:config KVM
arch/tile/kvm/Kconfig:config KVM
arch/x86/kvm/Kconfig:config KVM

mcgrof@ergon ~/linux-next (git::supadre)$ git grep "config XEN$"
arch/arm/Kconfig:config XEN
arch/arm64/Kconfig:config XEN
arch/x86/xen/Kconfig:config XEN

  Luis

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.