[meta-virtualization] [RFC 1/3] xen: Create structure necessary to break Xen kernel config into dom0 / guest.

Philip Tricca flihp at twobit.us
Wed Feb 12 14:12:20 PST 2014


On 02/12/2014 10:40 AM, Bruce Ashfield wrote:
> On Tue, Feb 11, 2014 at 9:45 PM, Philip Tricca <flihp at twobit.us> wrote:
>> For now the config remains the same for both dom0 and guest
>> DISTRO_FEATURES. This work provides the structure for migrating
>> config options into the two different distro features as the need
>> arises.
> 
> I have a similar split for KVM hosts and guests, the options are largely
> the same, but the flexibility is maintained for cases where they really
> do need to differ.
> 
> But here's a more general question, rather than having to trigger on
> distro features, why not separate the differences based on different machines ?
> (maybe that is what you are already doing, and I'm missing it).

No you're spot-on, didn't miss a thing.

> i.e. for a KVM host, I use the "native" BSP + some kernel options. For the
> KVM guest, I have a x86-kvm-guest BSP that encapsulates the options
> and userspace that we want.
> 
> The kernel configurations and other changes you have here would be the
> same, but just with a different separation mechanism.

This sounds like a great suggestion. I'll take a look at what you all
have done with KVM. It does sound like a better fit. I'll send out a v2
once I've got my head around using the machine mechanisms.

Thanks,
Philip

>> Signed-off-by: Philip Tricca <flihp at twobit.us>
>>
>>  create mode 100644 recipes-kernel/linux/linux-yocto/xen-common.cfg
>>  create mode 100644 recipes-kernel/linux/linux-yocto/xen-dom0.cfg
>>  create mode 100644 recipes-kernel/linux/linux-yocto/xen-dom0.scc
>>  create mode 100644 recipes-kernel/linux/linux-yocto/xen-guest.cfg
>>  create mode 100644 recipes-kernel/linux/linux-yocto/xen-guest.scc
>>  delete mode 100644 recipes-kernel/linux/linux-yocto/xen.cfg
>>  delete mode 100644 recipes-kernel/linux/linux-yocto/xen.scc
>>
>> diff --git a/recipes-kernel/linux/linux-yocto/xen-common.cfg b/recipes-kernel/linux/linux-yocto/xen-common.cfg
>> new file mode 100644
>> index 0000000..4e796b9
>> --- /dev/null
>> +++ b/recipes-kernel/linux/linux-yocto/xen-common.cfg
>> @@ -0,0 +1,54 @@
>> +###
>> +# linux 3.4, 3.8
>> +CONFIG_PARAVIRT_GUEST=y
>> +###
>> +
>> +###
>> +# linux 3.10
>> +CONFIG_HYPERVISOR_GUEST=y
>> +###
>> +
>> +CONFIG_PARAVIRT=y
>> +CONFIG_XEN=y
>> +CONFIG_XEN_DOM0=y
>> +CONFIG_XEN_PRIVILEGED_GUEST=y
>> +CONFIG_XEN_PVHVM=y
>> +CONFIG_XEN_MAX_DOMAIN_MEMORY=500
>> +CONFIG_XEN_SAVE_RESTORE=y
>> +CONFIG_PARAVIRT_CLOCK=y
>> +CONFIG_HIBERNATE_CALLBACKS=y
>> +CONFIG_PCI_XEN=y
>> +CONFIG_XEN_PCIDEV_FRONTEND=y
>> +CONFIG_SYS_HYPERVISOR=y
>> +CONFIG_XEN_BLKDEV_FRONTEND=y
>> +CONFIG_XEN_BLKDEV_BACKEND=m
>> +CONFIG_XEN_NETDEV_FRONTEND=y
>> +CONFIG_XEN_NETDEV_BACKEND=m
>> +CONFIG_INPUT_MISC=y
>> +CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
>> +CONFIG_HVC_IRQ=y
>> +CONFIG_HVC_XEN=y
>> +CONFIG_HVC_XEN_FRONTEND=y
>> +CONFIG_XEN_WDT=m
>> +CONFIG_FB_SYS_FILLRECT=y
>> +CONFIG_FB_SYS_COPYAREA=y
>> +CONFIG_FB_SYS_IMAGEBLIT=y
>> +CONFIG_FB_SYS_FOPS=y
>> +CONFIG_FB_DEFERRED_IO=y
>> +CONFIG_XEN_FBDEV_FRONTEND=y
>> +CONFIG_XEN_BALLOON=y
>> +CONFIG_XEN_SCRUB_PAGES=y
>> +CONFIG_XEN_DEV_EVTCHN=y
>> +CONFIG_XEN_BACKEND=y
>> +CONFIG_XENFS=y
>> +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=y
>> +CONFIG_XEN_ACPI_PROCESSOR=m
>> +CONFIG_XEN_MCE_LOG=y
>> +CONFIG_XEN_HAVE_PVMMU=y
>> diff --git a/recipes-kernel/linux/linux-yocto/xen-dom0.cfg b/recipes-kernel/linux/linux-yocto/xen-dom0.cfg
>> new file mode 100644
>> index 0000000..e69de29
>> diff --git a/recipes-kernel/linux/linux-yocto/xen-dom0.scc b/recipes-kernel/linux/linux-yocto/xen-dom0.scc
>> new file mode 100644
>> index 0000000..a84b0cb
>> --- /dev/null
>> +++ b/recipes-kernel/linux/linux-yocto/xen-dom0.scc
>> @@ -0,0 +1,5 @@
>> +define KFEATURE_DESCRIPTION "Xen dom0 Kernel Support"
>> +define KFEATURE_COMPATIBILITY arch
>> +
>> +kconf non-hardware xen-common.cfg
>> +kconf non-hardware xen-dom0.cfg
>> diff --git a/recipes-kernel/linux/linux-yocto/xen-guest.cfg b/recipes-kernel/linux/linux-yocto/xen-guest.cfg
>> new file mode 100644
>> index 0000000..e69de29
>> diff --git a/recipes-kernel/linux/linux-yocto/xen-guest.scc b/recipes-kernel/linux/linux-yocto/xen-guest.scc
>> new file mode 100644
>> index 0000000..0edba0c
>> --- /dev/null
>> +++ b/recipes-kernel/linux/linux-yocto/xen-guest.scc
>> @@ -0,0 +1,5 @@
>> +define KFEATURE_DESCRIPTION "Xen Guest Kernel Support"
>> +define KFEATURE_COMPATIBILITY arch
>> +
>> +kconf non-hardware xen-common.cfg
>> +kconf non-hardware xen-guest.cfg
>> diff --git a/recipes-kernel/linux/linux-yocto/xen.cfg b/recipes-kernel/linux/linux-yocto/xen.cfg
>> deleted file mode 100644
>> index 4e796b9..0000000
>> --- a/recipes-kernel/linux/linux-yocto/xen.cfg
>> +++ /dev/null
>> @@ -1,54 +0,0 @@
>> -###
>> -# linux 3.4, 3.8
>> -CONFIG_PARAVIRT_GUEST=y
>> -###
>> -
>> -###
>> -# linux 3.10
>> -CONFIG_HYPERVISOR_GUEST=y
>> -###
>> -
>> -CONFIG_PARAVIRT=y
>> -CONFIG_XEN=y
>> -CONFIG_XEN_DOM0=y
>> -CONFIG_XEN_PRIVILEGED_GUEST=y
>> -CONFIG_XEN_PVHVM=y
>> -CONFIG_XEN_MAX_DOMAIN_MEMORY=500
>> -CONFIG_XEN_SAVE_RESTORE=y
>> -CONFIG_PARAVIRT_CLOCK=y
>> -CONFIG_HIBERNATE_CALLBACKS=y
>> -CONFIG_PCI_XEN=y
>> -CONFIG_XEN_PCIDEV_FRONTEND=y
>> -CONFIG_SYS_HYPERVISOR=y
>> -CONFIG_XEN_BLKDEV_FRONTEND=y
>> -CONFIG_XEN_BLKDEV_BACKEND=m
>> -CONFIG_XEN_NETDEV_FRONTEND=y
>> -CONFIG_XEN_NETDEV_BACKEND=m
>> -CONFIG_INPUT_MISC=y
>> -CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
>> -CONFIG_HVC_IRQ=y
>> -CONFIG_HVC_XEN=y
>> -CONFIG_HVC_XEN_FRONTEND=y
>> -CONFIG_XEN_WDT=m
>> -CONFIG_FB_SYS_FILLRECT=y
>> -CONFIG_FB_SYS_COPYAREA=y
>> -CONFIG_FB_SYS_IMAGEBLIT=y
>> -CONFIG_FB_SYS_FOPS=y
>> -CONFIG_FB_DEFERRED_IO=y
>> -CONFIG_XEN_FBDEV_FRONTEND=y
>> -CONFIG_XEN_BALLOON=y
>> -CONFIG_XEN_SCRUB_PAGES=y
>> -CONFIG_XEN_DEV_EVTCHN=y
>> -CONFIG_XEN_BACKEND=y
>> -CONFIG_XENFS=y
>> -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=y
>> -CONFIG_XEN_ACPI_PROCESSOR=m
>> -CONFIG_XEN_MCE_LOG=y
>> -CONFIG_XEN_HAVE_PVMMU=y
>> diff --git a/recipes-kernel/linux/linux-yocto/xen.scc b/recipes-kernel/linux/linux-yocto/xen.scc
>> deleted file mode 100644
>> index b588e5d..0000000
>> --- a/recipes-kernel/linux/linux-yocto/xen.scc
>> +++ /dev/null
>> @@ -1,4 +0,0 @@
>> -define KFEATURE_DESCRIPTION "Xen Kernel Support"
>> -define KFEATURE_COMPATIBILITY arch
>> -
>> -kconf non-hardware xen.cfg
>> diff --git a/recipes-kernel/linux/linux-yocto_3.10.bbappend b/recipes-kernel/linux/linux-yocto_3.10.bbappend
>> index c029c05..e4ae462 100644
>> --- a/recipes-kernel/linux/linux-yocto_3.10.bbappend
>> +++ b/recipes-kernel/linux/linux-yocto_3.10.bbappend
>> @@ -16,4 +16,8 @@ module_autoload_kvm-intel = "kvm-intel"
>>  KERNEL_FEATURES_append += "${@base_contains('DISTRO_FEATURES', 'aufs', ' features/aufs/aufs-enable.scc', '', d)}"
>>
>>  # xen kernel support
>> -SRC_URI += "${@base_contains('DISTRO_FEATURES', 'xen', ' file://xen.scc', '', d)}"
>> +SRC_URI += " \
>> +    ${@base_contains('DISTRO_FEATURES', 'xen-dom0', ' file://xen-dom0.scc', '', d)} \
>> +    ${@base_contains('DISTRO_FEATURES', 'xen-guest', ' file://xen-guest.scc', '', d)} \
>> +"
>> +
>> --
>> 1.7.10.4
>>
>> _______________________________________________
>> meta-virtualization mailing list
>> meta-virtualization at yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/meta-virtualization
> 
> 
> 



More information about the meta-virtualization mailing list