diff mbox

[v2,2/2] x86, arm, platform, xen, kconfig: add xen defconfig helper

Message ID 1418168138-6425-3-git-send-email-mcgrof@do-not-panic.com (mailing list archive)
State New, archived
Headers show

Commit Message

Luis R. Rodriguez Dec. 9, 2014, 11:35 p.m. UTC
From: "Luis R. Rodriguez" <mcgrof@suse.com>

This lets you build a kernel which can support xen dom0
or xen guests by just using:

   make xenconfig

on both x86 and arm64 kernels. 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.

Cc: Josh Triplett <josh@joshtriplett.org>
Cc: Borislav Petkov <bp@suse.de>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Michal Marek <mmarek@suse.cz>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: penberg@kernel.org
Cc: levinsasha928@gmail.com
Cc: mtosatti@redhat.com
Cc: fengguang.wu@intel.com
Cc: David Vrabel <david.vrabel@citrix.com>
Cc: Ian Campbell <Ian.Campbell@citrix.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: xen-devel@lists.xenproject.org
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
---
 arch/x86/configs/xen.config |  7 +++++++
 kernel/configs/xen.config   | 30 ++++++++++++++++++++++++++++++
 scripts/kconfig/Makefile    |  5 +++++
 3 files changed, 42 insertions(+)
 create mode 100644 arch/x86/configs/xen.config
 create mode 100644 kernel/configs/xen.config

Comments

David Rientjes Dec. 12, 2014, 8:46 p.m. UTC | #1
On Tue, 9 Dec 2014, Luis R. Rodriguez wrote:

> From: "Luis R. Rodriguez" <mcgrof@suse.com>
> 
> This lets you build a kernel which can support xen dom0
> or xen guests by just using:
> 
>    make xenconfig
> 
> on both x86 and arm64 kernels. 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.
> 
> Cc: Josh Triplett <josh@joshtriplett.org>
> Cc: Borislav Petkov <bp@suse.de>
> Cc: Pekka Enberg <penberg@kernel.org>
> Cc: David Rientjes <rientjes@google.com>
> Cc: Michal Marek <mmarek@suse.cz>
> Cc: Randy Dunlap <rdunlap@infradead.org>
> Cc: penberg@kernel.org
> Cc: levinsasha928@gmail.com
> Cc: mtosatti@redhat.com
> Cc: fengguang.wu@intel.com
> Cc: David Vrabel <david.vrabel@citrix.com>
> Cc: Ian Campbell <Ian.Campbell@citrix.com>
> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> Cc: xen-devel@lists.xenproject.org
> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
> Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>

Acked-by: David Rientjes <rientjes@google.com>
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Julien Grall Dec. 15, 2014, 11:58 a.m. UTC | #2
Hello Luis,

On 09/12/14 23:35, Luis R. Rodriguez wrote:
> From: "Luis R. Rodriguez" <mcgrof@suse.com>
> 
> This lets you build a kernel which can support xen dom0
> or xen guests by just using:
> 
>    make xenconfig
> 
> on both x86 and arm64 kernels. This also splits out the
> options which are available currently to be built with x86
> and 'make ARCH=arm64' under a shared config.

I guess this is also working for arm (32bits)?

> diff --git a/kernel/configs/xen.config b/kernel/configs/xen.config
> new file mode 100644
> index 0000000..d2ec010
> --- /dev/null
> +++ b/kernel/configs/xen.config
> @@ -0,0 +1,30 @@
> +# generic config
> +CONFIG_XEN=y
> +CONFIG_XEN_DOM0=y
> +CONFIG_PCI_XEN=y
> +CONFIG_XEN_PCIDEV_FRONTEND=m
> +CONFIG_XEN_BLKDEV_FRONTEND=m
> +CONFIG_XEN_BLKDEV_BACKEND=m
> +CONFIG_XEN_NETDEV_FRONTEND=m
> +CONFIG_XEN_NETDEV_BACKEND=m
> +CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
> +CONFIG_HVC_XEN=y
> +CONFIG_HVC_XEN_FRONTEND=y
> +CONFIG_TCG_XEN=m
> +CONFIG_XEN_WDT=m
> +CONFIG_XEN_FBDEV_FRONTEND=y
> +CONFIG_XEN_BALLOON=y
> +CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
> +CONFIG_XEN_SCRUB_PAGES=y
> +CONFIG_XEN_DEV_EVTCHN=m
> +CONFIG_XEN_BACKEND=y
> +CONFIG_XENFS=m
> +CONFIG_XEN_COMPAT_XENFS=y
> +CONFIG_XEN_SYS_HYPERVISOR=y
> +CONFIG_XEN_XENBUS_FRONTEND=y
> +CONFIG_XEN_GNTDEV=m
> +CONFIG_XEN_GRANT_DEV_ALLOC=m
> +CONFIG_SWIOTLB_XEN=y
> +CONFIG_XEN_PCIDEV_BACKEND=m
> +CONFIG_XEN_PRIVCMD=m
> +CONFIG_XEN_ACPI_PROCESSOR=m

The common fragment config looks good for both ARM32 and ARM64:

Acked-by: Julien Grall <julien.grall@linaro.org>

Regards,
Stefano Stabellini Dec. 15, 2014, 2:58 p.m. UTC | #3
On Tue, 9 Dec 2014, Luis R. Rodriguez wrote:
> From: "Luis R. Rodriguez" <mcgrof@suse.com>
> 
> This lets you build a kernel which can support xen dom0
> or xen guests by just using:
> 
>    make xenconfig
> 
> on both x86 and arm64 kernels. 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.
> 
> Cc: Josh Triplett <josh@joshtriplett.org>
> Cc: Borislav Petkov <bp@suse.de>
> Cc: Pekka Enberg <penberg@kernel.org>
> Cc: David Rientjes <rientjes@google.com>
> Cc: Michal Marek <mmarek@suse.cz>
> Cc: Randy Dunlap <rdunlap@infradead.org>
> Cc: penberg@kernel.org
> Cc: levinsasha928@gmail.com
> Cc: mtosatti@redhat.com
> Cc: fengguang.wu@intel.com
> Cc: David Vrabel <david.vrabel@citrix.com>
> Cc: Ian Campbell <Ian.Campbell@citrix.com>
> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> Cc: xen-devel@lists.xenproject.org
> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
> Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
> ---
>  arch/x86/configs/xen.config |  7 +++++++
>  kernel/configs/xen.config   | 30 ++++++++++++++++++++++++++++++
>  scripts/kconfig/Makefile    |  5 +++++
>  3 files changed, 42 insertions(+)
>  create mode 100644 arch/x86/configs/xen.config
>  create mode 100644 kernel/configs/xen.config
> 
> diff --git a/arch/x86/configs/xen.config b/arch/x86/configs/xen.config
> new file mode 100644
> index 0000000..92b8587f
> --- /dev/null
> +++ b/arch/x86/configs/xen.config
> @@ -0,0 +1,7 @@
> +# x86 xen specific config options
> +CONFIG_XEN_PVHVM=y
> +CONFIG_XEN_MAX_DOMAIN_MEMORY=500
> +CONFIG_XEN_SAVE_RESTORE=y
> +# CONFIG_XEN_DEBUG_FS is not set
> +CONFIG_XEN_PVH=y
> +CONFIG_XEN_MCE_LOG=y
> diff --git a/kernel/configs/xen.config b/kernel/configs/xen.config
> new file mode 100644
> index 0000000..d2ec010
> --- /dev/null
> +++ b/kernel/configs/xen.config
> @@ -0,0 +1,30 @@
> +# generic config
> +CONFIG_XEN=y
> +CONFIG_XEN_DOM0=y
> +CONFIG_PCI_XEN=y

This shouldn't be here


> +CONFIG_XEN_PCIDEV_FRONTEND=m
> +CONFIG_XEN_BLKDEV_FRONTEND=m
> +CONFIG_XEN_BLKDEV_BACKEND=m
> +CONFIG_XEN_NETDEV_FRONTEND=m
> +CONFIG_XEN_NETDEV_BACKEND=m
> +CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
> +CONFIG_HVC_XEN=y
> +CONFIG_HVC_XEN_FRONTEND=y
> +CONFIG_TCG_XEN=m

neither should this


> +CONFIG_XEN_WDT=m
> +CONFIG_XEN_FBDEV_FRONTEND=y
> +CONFIG_XEN_BALLOON=y
> +CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
> +CONFIG_XEN_SCRUB_PAGES=y
> +CONFIG_XEN_DEV_EVTCHN=m
> +CONFIG_XEN_BACKEND=y
> +CONFIG_XENFS=m
> +CONFIG_XEN_COMPAT_XENFS=y
> +CONFIG_XEN_SYS_HYPERVISOR=y
> +CONFIG_XEN_XENBUS_FRONTEND=y
> +CONFIG_XEN_GNTDEV=m
> +CONFIG_XEN_GRANT_DEV_ALLOC=m
> +CONFIG_SWIOTLB_XEN=y
> +CONFIG_XEN_PCIDEV_BACKEND=m
> +CONFIG_XEN_PRIVCMD=m
> +CONFIG_XEN_ACPI_PROCESSOR=m

and this


> diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
> index ff612b0..f4a8f89 100644
> --- a/scripts/kconfig/Makefile
> +++ b/scripts/kconfig/Makefile
> @@ -117,6 +117,10 @@ PHONY += kvmconfig
>  kvmconfig:
>  	$(call mergeconfig,kvm_guest)
>  
> +PHONY += xenconfig
> +xenconfig:
> +	$(call mergeconfig,xen)
> +
>  PHONY += tinyconfig
>  tinyconfig: allnoconfig
>  	$(call mergeconfig,tiny)
> @@ -142,6 +146,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
> -- 
> 2.1.1
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
> 
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Luis Chamberlain Jan. 13, 2015, 7:03 p.m. UTC | #4
On Mon, Dec 15, 2014 at 11:58:34AM +0000, Julien Grall wrote:
> Hello Luis,
> 
> On 09/12/14 23:35, Luis R. Rodriguez wrote:
> > From: "Luis R. Rodriguez" <mcgrof@suse.com>
> > 
> > This lets you build a kernel which can support xen dom0
> > or xen guests by just using:
> > 
> >    make xenconfig
> > 
> > on both x86 and arm64 kernels. This also splits out the
> > options which are available currently to be built with x86
> > and 'make ARCH=arm64' under a shared config.
> 
> I guess this is also working for arm (32bits)?

Yeap!

> 
> > diff --git a/kernel/configs/xen.config b/kernel/configs/xen.config
> > new file mode 100644
> > index 0000000..d2ec010
> > --- /dev/null
> > +++ b/kernel/configs/xen.config
> > @@ -0,0 +1,30 @@
> > +# generic config
> > +CONFIG_XEN=y
> > +CONFIG_XEN_DOM0=y
> > +CONFIG_PCI_XEN=y
> > +CONFIG_XEN_PCIDEV_FRONTEND=m
> > +CONFIG_XEN_BLKDEV_FRONTEND=m
> > +CONFIG_XEN_BLKDEV_BACKEND=m
> > +CONFIG_XEN_NETDEV_FRONTEND=m
> > +CONFIG_XEN_NETDEV_BACKEND=m
> > +CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
> > +CONFIG_HVC_XEN=y
> > +CONFIG_HVC_XEN_FRONTEND=y
> > +CONFIG_TCG_XEN=m
> > +CONFIG_XEN_WDT=m
> > +CONFIG_XEN_FBDEV_FRONTEND=y
> > +CONFIG_XEN_BALLOON=y
> > +CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
> > +CONFIG_XEN_SCRUB_PAGES=y
> > +CONFIG_XEN_DEV_EVTCHN=m
> > +CONFIG_XEN_BACKEND=y
> > +CONFIG_XENFS=m
> > +CONFIG_XEN_COMPAT_XENFS=y
> > +CONFIG_XEN_SYS_HYPERVISOR=y
> > +CONFIG_XEN_XENBUS_FRONTEND=y
> > +CONFIG_XEN_GNTDEV=m
> > +CONFIG_XEN_GRANT_DEV_ALLOC=m
> > +CONFIG_SWIOTLB_XEN=y
> > +CONFIG_XEN_PCIDEV_BACKEND=m
> > +CONFIG_XEN_PRIVCMD=m
> > +CONFIG_XEN_ACPI_PROCESSOR=m
> 
> The common fragment config looks good for both ARM32 and ARM64:
> 
> Acked-by: Julien Grall <julien.grall@linaro.org>

Can someone apply this? Who should this go through?

  Luis
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Julien Grall Jan. 13, 2015, 7:13 p.m. UTC | #5
Hello Luis,

On 13/01/15 19:03, Luis R. Rodriguez wrote:
>>> diff --git a/kernel/configs/xen.config b/kernel/configs/xen.config
>>> new file mode 100644
>>> index 0000000..d2ec010
>>> --- /dev/null
>>> +++ b/kernel/configs/xen.config
>>> @@ -0,0 +1,30 @@
>>> +# generic config
>>> +CONFIG_XEN=y
>>> +CONFIG_XEN_DOM0=y
>>> +CONFIG_PCI_XEN=y
>>> +CONFIG_XEN_PCIDEV_FRONTEND=m
>>> +CONFIG_XEN_BLKDEV_FRONTEND=m
>>> +CONFIG_XEN_BLKDEV_BACKEND=m
>>> +CONFIG_XEN_NETDEV_FRONTEND=m
>>> +CONFIG_XEN_NETDEV_BACKEND=m
>>> +CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
>>> +CONFIG_HVC_XEN=y
>>> +CONFIG_HVC_XEN_FRONTEND=y
>>> +CONFIG_TCG_XEN=m
>>> +CONFIG_XEN_WDT=m
>>> +CONFIG_XEN_FBDEV_FRONTEND=y
>>> +CONFIG_XEN_BALLOON=y
>>> +CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
>>> +CONFIG_XEN_SCRUB_PAGES=y
>>> +CONFIG_XEN_DEV_EVTCHN=m
>>> +CONFIG_XEN_BACKEND=y
>>> +CONFIG_XENFS=m
>>> +CONFIG_XEN_COMPAT_XENFS=y
>>> +CONFIG_XEN_SYS_HYPERVISOR=y
>>> +CONFIG_XEN_XENBUS_FRONTEND=y
>>> +CONFIG_XEN_GNTDEV=m
>>> +CONFIG_XEN_GRANT_DEV_ALLOC=m
>>> +CONFIG_SWIOTLB_XEN=y
>>> +CONFIG_XEN_PCIDEV_BACKEND=m
>>> +CONFIG_XEN_PRIVCMD=m
>>> +CONFIG_XEN_ACPI_PROCESSOR=m
>>
>> The common fragment config looks good for both ARM32 and ARM64:
>>
>> Acked-by: Julien Grall <julien.grall@linaro.org>
> 
> Can someone apply this? Who should this go through?

Stefano had some comments on this patch. See:

http://lists.xenproject.org/archives/html/xen-devel/2014-12/msg01531.html

Regards,
Luis Chamberlain Jan. 13, 2015, 7:14 p.m. UTC | #6
On Tue, Jan 13, 2015 at 11:13 AM, Julien Grall <julien.grall@linaro.org> wrote:
> Stefano had some comments on this patch. See:
>
> http://lists.xenproject.org/archives/html/xen-devel/2014-12/msg01531.html

I see now sorry about that, will address and respin.

 Luis
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Luis Chamberlain Jan. 13, 2015, 7:26 p.m. UTC | #7
On Mon, Dec 15, 2014 at 02:58:26PM +0000, Stefano Stabellini wrote:
> On Tue, 9 Dec 2014, Luis R. Rodriguez wrote:
> > From: "Luis R. Rodriguez" <mcgrof@suse.com>
> > 
> > This lets you build a kernel which can support xen dom0
> > or xen guests by just using:
> > 
> >    make xenconfig
> > 
> > on both x86 and arm64 kernels. 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.
> > 
> > Cc: Josh Triplett <josh@joshtriplett.org>
> > Cc: Borislav Petkov <bp@suse.de>
> > Cc: Pekka Enberg <penberg@kernel.org>
> > Cc: David Rientjes <rientjes@google.com>
> > Cc: Michal Marek <mmarek@suse.cz>
> > Cc: Randy Dunlap <rdunlap@infradead.org>
> > Cc: penberg@kernel.org
> > Cc: levinsasha928@gmail.com
> > Cc: mtosatti@redhat.com
> > Cc: fengguang.wu@intel.com
> > Cc: David Vrabel <david.vrabel@citrix.com>
> > Cc: Ian Campbell <Ian.Campbell@citrix.com>
> > Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> > Cc: xen-devel@lists.xenproject.org
> > Reviewed-by: Josh Triplett <josh@joshtriplett.org>
> > Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
> > ---
> >  arch/x86/configs/xen.config |  7 +++++++
> >  kernel/configs/xen.config   | 30 ++++++++++++++++++++++++++++++
> >  scripts/kconfig/Makefile    |  5 +++++
> >  3 files changed, 42 insertions(+)
> >  create mode 100644 arch/x86/configs/xen.config
> >  create mode 100644 kernel/configs/xen.config
> > 
> > diff --git a/arch/x86/configs/xen.config b/arch/x86/configs/xen.config
> > new file mode 100644
> > index 0000000..92b8587f
> > --- /dev/null
> > +++ b/arch/x86/configs/xen.config
> > @@ -0,0 +1,7 @@
> > +# x86 xen specific config options
> > +CONFIG_XEN_PVHVM=y
> > +CONFIG_XEN_MAX_DOMAIN_MEMORY=500
> > +CONFIG_XEN_SAVE_RESTORE=y
> > +# CONFIG_XEN_DEBUG_FS is not set
> > +CONFIG_XEN_PVH=y
> > +CONFIG_XEN_MCE_LOG=y
> > diff --git a/kernel/configs/xen.config b/kernel/configs/xen.config
> > new file mode 100644
> > index 0000000..d2ec010
> > --- /dev/null
> > +++ b/kernel/configs/xen.config
> > @@ -0,0 +1,30 @@
> > +# generic config
> > +CONFIG_XEN=y
> > +CONFIG_XEN_DOM0=y
> > +CONFIG_PCI_XEN=y
> 
> This shouldn't be here

If PCI is not supported on the arch this won't be selected as kconfig would not
allow for it, what would be the issue of keeping it here? What xen instances
would we not want to have this enabled for and can we instead manage that
through Kconfig magic by negating PCI_XEN for it?

> > +CONFIG_XEN_PCIDEV_FRONTEND=m
> > +CONFIG_XEN_BLKDEV_FRONTEND=m
> > +CONFIG_XEN_BLKDEV_BACKEND=m
> > +CONFIG_XEN_NETDEV_FRONTEND=m
> > +CONFIG_XEN_NETDEV_BACKEND=m
> > +CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
> > +CONFIG_HVC_XEN=y
> > +CONFIG_HVC_XEN_FRONTEND=y
> > +CONFIG_TCG_XEN=m
> 
> neither should this

OK!

> > +CONFIG_XEN_WDT=m
> > +CONFIG_XEN_FBDEV_FRONTEND=y
> > +CONFIG_XEN_BALLOON=y
> > +CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
> > +CONFIG_XEN_SCRUB_PAGES=y
> > +CONFIG_XEN_DEV_EVTCHN=m
> > +CONFIG_XEN_BACKEND=y
> > +CONFIG_XENFS=m
> > +CONFIG_XEN_COMPAT_XENFS=y
> > +CONFIG_XEN_SYS_HYPERVISOR=y
> > +CONFIG_XEN_XENBUS_FRONTEND=y
> > +CONFIG_XEN_GNTDEV=m
> > +CONFIG_XEN_GRANT_DEV_ALLOC=m
> > +CONFIG_SWIOTLB_XEN=y
> > +CONFIG_XEN_PCIDEV_BACKEND=m
> > +CONFIG_XEN_PRIVCMD=m
> > +CONFIG_XEN_ACPI_PROCESSOR=m
> 
> and this

OK!

  Luis
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Stefano Stabellini Jan. 14, 2015, 11:29 a.m. UTC | #8
On Tue, 13 Jan 2015, Luis R. Rodriguez wrote:
> On Mon, Dec 15, 2014 at 02:58:26PM +0000, Stefano Stabellini wrote:
> > On Tue, 9 Dec 2014, Luis R. Rodriguez wrote:
> > > From: "Luis R. Rodriguez" <mcgrof@suse.com>
> > > 
> > > This lets you build a kernel which can support xen dom0
> > > or xen guests by just using:
> > > 
> > >    make xenconfig
> > > 
> > > on both x86 and arm64 kernels. 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.
> > > 
> > > Cc: Josh Triplett <josh@joshtriplett.org>
> > > Cc: Borislav Petkov <bp@suse.de>
> > > Cc: Pekka Enberg <penberg@kernel.org>
> > > Cc: David Rientjes <rientjes@google.com>
> > > Cc: Michal Marek <mmarek@suse.cz>
> > > Cc: Randy Dunlap <rdunlap@infradead.org>
> > > Cc: penberg@kernel.org
> > > Cc: levinsasha928@gmail.com
> > > Cc: mtosatti@redhat.com
> > > Cc: fengguang.wu@intel.com
> > > Cc: David Vrabel <david.vrabel@citrix.com>
> > > Cc: Ian Campbell <Ian.Campbell@citrix.com>
> > > Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> > > Cc: xen-devel@lists.xenproject.org
> > > Reviewed-by: Josh Triplett <josh@joshtriplett.org>
> > > Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
> > > ---
> > >  arch/x86/configs/xen.config |  7 +++++++
> > >  kernel/configs/xen.config   | 30 ++++++++++++++++++++++++++++++
> > >  scripts/kconfig/Makefile    |  5 +++++
> > >  3 files changed, 42 insertions(+)
> > >  create mode 100644 arch/x86/configs/xen.config
> > >  create mode 100644 kernel/configs/xen.config
> > > 
> > > diff --git a/arch/x86/configs/xen.config b/arch/x86/configs/xen.config
> > > new file mode 100644
> > > index 0000000..92b8587f
> > > --- /dev/null
> > > +++ b/arch/x86/configs/xen.config
> > > @@ -0,0 +1,7 @@
> > > +# x86 xen specific config options
> > > +CONFIG_XEN_PVHVM=y
> > > +CONFIG_XEN_MAX_DOMAIN_MEMORY=500
> > > +CONFIG_XEN_SAVE_RESTORE=y
> > > +# CONFIG_XEN_DEBUG_FS is not set
> > > +CONFIG_XEN_PVH=y
> > > +CONFIG_XEN_MCE_LOG=y
> > > diff --git a/kernel/configs/xen.config b/kernel/configs/xen.config
> > > new file mode 100644
> > > index 0000000..d2ec010
> > > --- /dev/null
> > > +++ b/kernel/configs/xen.config
> > > @@ -0,0 +1,30 @@
> > > +# generic config
> > > +CONFIG_XEN=y
> > > +CONFIG_XEN_DOM0=y
> > > +CONFIG_PCI_XEN=y
> > 
> > This shouldn't be here
> 
> If PCI is not supported on the arch this won't be selected as kconfig would not
> allow for it, what would be the issue of keeping it here?

It looks wrong to me to have an arch specific option here. Moreover many
ARM boards don't even have PCI, so it looks even worse.
CONFIG_PCI_XEN is certainly not a generic config option for Xen.


> What xen instances
> would we not want to have this enabled for and can we instead manage that
> through Kconfig magic by negating PCI_XEN for it?

Everything can be fixed via Kconfig magic, the point of this exercise is
to try to avoid it.

Are there any cases on x86 where you don't actually want CONFIG_PCI_XEN?
If not, then why don't just enable it automatically and silently if
CONFIG_PCI is selected? If we did that, we could avoid specifying it
here.

In any case, given that CONFIG_PCI_XEN is only defined on x86, I think
it should be in arch/x86/configs/xen.config.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Luis Chamberlain Jan. 14, 2015, 6:36 p.m. UTC | #9
On Wed, Jan 14, 2015 at 11:29:41AM +0000, Stefano Stabellini wrote:
> On Tue, 13 Jan 2015, Luis R. Rodriguez wrote:
> > On Mon, Dec 15, 2014 at 02:58:26PM +0000, Stefano Stabellini wrote:
> > > On Tue, 9 Dec 2014, Luis R. Rodriguez wrote:
> > > > From: "Luis R. Rodriguez" <mcgrof@suse.com>
> > > > 
> > > > This lets you build a kernel which can support xen dom0
> > > > or xen guests by just using:
> > > > 
> > > >    make xenconfig
> > > > 
> > > > on both x86 and arm64 kernels. 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.
> > > > 
> > > > Cc: Josh Triplett <josh@joshtriplett.org>
> > > > Cc: Borislav Petkov <bp@suse.de>
> > > > Cc: Pekka Enberg <penberg@kernel.org>
> > > > Cc: David Rientjes <rientjes@google.com>
> > > > Cc: Michal Marek <mmarek@suse.cz>
> > > > Cc: Randy Dunlap <rdunlap@infradead.org>
> > > > Cc: penberg@kernel.org
> > > > Cc: levinsasha928@gmail.com
> > > > Cc: mtosatti@redhat.com
> > > > Cc: fengguang.wu@intel.com
> > > > Cc: David Vrabel <david.vrabel@citrix.com>
> > > > Cc: Ian Campbell <Ian.Campbell@citrix.com>
> > > > Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> > > > Cc: xen-devel@lists.xenproject.org
> > > > Reviewed-by: Josh Triplett <josh@joshtriplett.org>
> > > > Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
> > > > ---
> > > >  arch/x86/configs/xen.config |  7 +++++++
> > > >  kernel/configs/xen.config   | 30 ++++++++++++++++++++++++++++++
> > > >  scripts/kconfig/Makefile    |  5 +++++
> > > >  3 files changed, 42 insertions(+)
> > > >  create mode 100644 arch/x86/configs/xen.config
> > > >  create mode 100644 kernel/configs/xen.config
> > > > 
> > > > diff --git a/arch/x86/configs/xen.config b/arch/x86/configs/xen.config
> > > > new file mode 100644
> > > > index 0000000..92b8587f
> > > > --- /dev/null
> > > > +++ b/arch/x86/configs/xen.config
> > > > @@ -0,0 +1,7 @@
> > > > +# x86 xen specific config options
> > > > +CONFIG_XEN_PVHVM=y
> > > > +CONFIG_XEN_MAX_DOMAIN_MEMORY=500
> > > > +CONFIG_XEN_SAVE_RESTORE=y
> > > > +# CONFIG_XEN_DEBUG_FS is not set
> > > > +CONFIG_XEN_PVH=y
> > > > +CONFIG_XEN_MCE_LOG=y
> > > > diff --git a/kernel/configs/xen.config b/kernel/configs/xen.config
> > > > new file mode 100644
> > > > index 0000000..d2ec010
> > > > --- /dev/null
> > > > +++ b/kernel/configs/xen.config
> > > > @@ -0,0 +1,30 @@
> > > > +# generic config
> > > > +CONFIG_XEN=y
> > > > +CONFIG_XEN_DOM0=y
> > > > +CONFIG_PCI_XEN=y
> > > 
> > > This shouldn't be here
> > 
> > If PCI is not supported on the arch this won't be selected as kconfig would not
> > allow for it, what would be the issue of keeping it here?
> 
> It looks wrong to me to have an arch specific option here. Moreover many
> ARM boards don't even have PCI, so it looks even worse.
> CONFIG_PCI_XEN is certainly not a generic config option for Xen.

OK fair enough.

> > What xen instances
> > would we not want to have this enabled for and can we instead manage that
> > through Kconfig magic by negating PCI_XEN for it?
> 
> Everything can be fixed via Kconfig magic, the point of this exercise is
> to try to avoid it.
> 
> Are there any cases on x86 where you don't actually want CONFIG_PCI_XEN?

Not that I can think of.

> If not, then why don't just enable it automatically and silently if
> CONFIG_PCI is selected? If we did that, we could avoid specifying it
> here.

CONFIG_PCI_XEN already depends depends on PCI && XEN so I think its safe
to just put it in blindly for x86.

> In any case, given that CONFIG_PCI_XEN is only defined on x86, I think
> it should be in arch/x86/configs/xen.config.

OK!

Will respin.

  Luis
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/x86/configs/xen.config b/arch/x86/configs/xen.config
new file mode 100644
index 0000000..92b8587f
--- /dev/null
+++ b/arch/x86/configs/xen.config
@@ -0,0 +1,7 @@ 
+# x86 xen specific config options
+CONFIG_XEN_PVHVM=y
+CONFIG_XEN_MAX_DOMAIN_MEMORY=500
+CONFIG_XEN_SAVE_RESTORE=y
+# CONFIG_XEN_DEBUG_FS is not set
+CONFIG_XEN_PVH=y
+CONFIG_XEN_MCE_LOG=y
diff --git a/kernel/configs/xen.config b/kernel/configs/xen.config
new file mode 100644
index 0000000..d2ec010
--- /dev/null
+++ b/kernel/configs/xen.config
@@ -0,0 +1,30 @@ 
+# generic config
+CONFIG_XEN=y
+CONFIG_XEN_DOM0=y
+CONFIG_PCI_XEN=y
+CONFIG_XEN_PCIDEV_FRONTEND=m
+CONFIG_XEN_BLKDEV_FRONTEND=m
+CONFIG_XEN_BLKDEV_BACKEND=m
+CONFIG_XEN_NETDEV_FRONTEND=m
+CONFIG_XEN_NETDEV_BACKEND=m
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
+CONFIG_HVC_XEN=y
+CONFIG_HVC_XEN_FRONTEND=y
+CONFIG_TCG_XEN=m
+CONFIG_XEN_WDT=m
+CONFIG_XEN_FBDEV_FRONTEND=y
+CONFIG_XEN_BALLOON=y
+CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
+CONFIG_XEN_SCRUB_PAGES=y
+CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XEN_BACKEND=y
+CONFIG_XENFS=m
+CONFIG_XEN_COMPAT_XENFS=y
+CONFIG_XEN_SYS_HYPERVISOR=y
+CONFIG_XEN_XENBUS_FRONTEND=y
+CONFIG_XEN_GNTDEV=m
+CONFIG_XEN_GRANT_DEV_ALLOC=m
+CONFIG_SWIOTLB_XEN=y
+CONFIG_XEN_PCIDEV_BACKEND=m
+CONFIG_XEN_PRIVCMD=m
+CONFIG_XEN_ACPI_PROCESSOR=m
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index ff612b0..f4a8f89 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -117,6 +117,10 @@  PHONY += kvmconfig
 kvmconfig:
 	$(call mergeconfig,kvm_guest)
 
+PHONY += xenconfig
+xenconfig:
+	$(call mergeconfig,xen)
+
 PHONY += tinyconfig
 tinyconfig: allnoconfig
 	$(call mergeconfig,tiny)
@@ -142,6 +146,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