This lets you build a kernel which can support xen dom0
or xen guests on i386, x86-64 and arm64 by just using:
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:
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 <firstname.lastname@example.org>
Cc: Borislav Petkov <email@example.com>
Cc: Pekka Enberg <firstname.lastname@example.org>
Cc: David Rientjes <email@example.com>
Cc: Michal Marek <firstname.lastname@example.org>
Cc: Randy Dunlap <email@example.com>
Cc: David Vrabel <firstname.lastname@example.org>
Cc: Ian Campbell <Ian.Campbell@citrix.com>
Cc: Konrad Rzeszutek Wilk <email@example.com>
Acked-by: Stefano Stabellini <firstname.lastname@example.org>
Acked-by: Julien Grall <email@example.com>
Acked-by: Michal Marek <firstname.lastname@example.org>
Acked-by: David Rientjes <email@example.com>
Reviewed-by: Josh Triplett <firstname.lastname@example.org>
Signed-off-by: Luis R. Rodriguez <email@example.com>
Signed-off-by: David Vrabel <firstname.lastname@example.org>