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

Re: [Xen-devel] Xen's Linux kernel config options v3



On 02/07/2015 12:44 AM, Luis R. Rodriguez wrote:
This is a third respin for a design proposal for a rework on the config options
on the Linux kernel related to Xen. The frist two proposals came from Juergen,
I'm taking on the work now as some other work I am doing is related to this.
This third iteration addresses the feedback given on Juergen's last v2
proposal. Let me know if there are any questions or any further feedback before
we start addressing the changes.

Reasons to consider a cleanup / reorganizing of the kconfig options:

- Everything depends on Xen but that's obviously not right. For instance
   we want to be able to build Xen frontend drivers for HVM domains without
   the need for choosing a pvops kernel: currently the frontend drivers need
   Xen configured which depends on PARAVIRT.
- XEN should not depend on PAE, we can have HVM guests without PAE.
- Some features are available for x86 only, in spite of these not being
   architecture specific, e.g. XEN_DEBUG_FS
- Be able to build a Dom0 using XEN_PVH(x86) without having to configure
   XEN_HAVE_PVMMU(x86).

Current Xen related config options are as follows:

Legend:

- The first column are the Xen config options. Indentation in this
   column reflects the dependency between those options (e.g.
   XEN_SCSI_BACKEND depends on XEN_BACKEND, which in turn depends on
   XEN_DOM0, which depends on XEN).
- The second column shows the options which are selected automatically
   if the corresponding option in the first column is configured.
- The last column shows additional dependencies which can't be shown via
   the indentation level of the first column.
- Some options or dependencies are architecture specific, they are
   listed with the architecture requirements in parens (e.g. XEN_TMEM(x86)
   which is available for x86 only).
- Non-Xen options are mentioned only if they seem to be really relevant,
   like e.g. PARAVIRT or BROKEN.
- All listed options are user selectable, options which are not user selectable 
but
   automatic are prefixed with a '*' on the left hand side to make emphasis

Option                          Selects                 Depends
---------------------------------------------------------------------
XEN                             PARAVIRT_CLOCK(x86)     PARAVIRT(x86)
                                 XEN_HAVE_PVMMU(x86)
                                 SWIOTLB_XEN(arm,arm64)
   PCI_XEN(x86)                  SWIOTLB_XEN
   XEN_DOM0                                              PCI_XEN(x86)
     XEN_BACKEND
       XEN_BLKDEV_BACKEND
       XEN_PCIDEV_BACKEND(x86)
       XEN_SCSI_BACKEND
       XEN_NETDEV_BACKEND
     XEN_ACPI_HOTPLUG_MEMORY                             XEN_STUB
     XEN_ACPI_HOTPLUG_CPU                                XEN_STUB
     XEN_MCE_LOG(x86)
   XEN_ACPI_PROCESSOR(x86)                              ACPI_PROCESSOR
                                                        CPU_FREQ
   XEN_PVHVM(x86)
     XEN_PVH(x86)
   XEN_MAX_DOMAIN_MEMORY(x86)
   XEN_SAVE_RESTORE(x86)
   XEN_DEBUG_FS(x86)
   XEN_FBDEV_FRONTEND            XEN_XENBUS_FRONTEND
                                 INPUT_XEN_KBDDEV_FRONTEND
   XEN_BLKDEV_FRONTEND           XEN_XENBUS_FRONTEND
   HVC_XEN
     HVC_XEN_FRONTEND            XEN_XENBUS_FRONTEND
   TCG_XEN                       XEN_XENBUS_FRONTEND
   XEN_PCIDEV_FRONTEND           PCI_XEN
                                 XEN_XENBUS_FRONTEND
   XEN_SCSI_FRONTEND             XEN_XENBUS_FRONTEND
   INPUT_XEN_KBDDEV_FRONTEND     XEN_XENBUS_FRONTEND
   XEN_WDT
   XEN_BALLOON
     XEN_SELFBALLOONING                                  XEN_TMEM
     XEN_BALLOON_MEMORY_HOTPLUG
     XEN_SCRUB_PAGES
   XEN_DEV_EVTCHN
   XENFS                         XEN_PRIVCMD
     XEN_COMPAT_XENFS
   XEN_SYS_HYPERVISOR
   XEN_XENBUS_FRONTEND
   XEN_GNTDEV
   XEN_GRANT_DEV_ALLOC
   SWIOTLB_XEN
   XEN_TMEM(x86)
   XEN_PRIVCMD
   XEN_STUB(x86_64)                                      BROKEN
   XEN_ACPI_PROCESSOR(x86)
   XEN_HAVE_PVMMU
   XEN_EFI(x64)
   XEN_NETDEV_FRONTEND           XEN_XENBUS_FRONTEND

After some feedback for the first draft I'd suggest the following:

Option                          Selects                 Depends
----------------------------------------------------------------------
XEN
   XEN_PV(x86)                   XEN_HAVE_PVMMU(x86)
                                 PARAVIRT
                                 PARAVIRT_CLOCK
   XEN_PVH(x86)                  XEN_PVHVM
                                 PARAVIRT
                                 PARAVIRT_CLOCK
   XEN_PVHVM(x86)                PARAVIRT
                                 PARAVIRT_CLOCK
   XEN_BACKEND                   SWIOTLB_XEN(arm,arm64)  XEN_PV(x86) ||
                                                         XEN_PVH(x86) ||
                                                         XEN_PVHVM(x86)
                                XEN_TMEM(x86)
                                XEN_PRIVCMD

Wrong indentation of above 2 entries

Juergen

     XEN_BLKDEV_BACKEND
     XEN_PCIDEV_BACKEND(x86)
     XEN_SCSI_BACKEND
     XEN_NETDEV_BACKEND
   PCI_XEN(x86)                  SWIOTLB_XEN
   XEN_DOM0                      XEN_BACKEND             XEN_PV(x86) ||
                                 PCI_XEN(x86)            XEN_PVH(x86)
     XEN_ACPI_HOTPLUG_MEMORY                             XEN_STUB
     XEN_ACPI_HOTPLUG_CPU                                XEN_STUB
     XEN_MCE_LOG(x86)
     XEN_ACPI_PROCESSOR(x86)                            ACPI_PROCESSOR
                                                        CPU_FREQ
     XEN_SAVE_RESTORE(x86)
     XEN_DEBUG_FS
     XEN_WDT
   XEN_MAX_DOMAIN_MEMORY(x86)                           XEN_HAVE_PVMMU(x86)
   XEN_BALLOON
     XEN_SELFBALLOONING                                  XEN_TMEM(x86)
     XEN_BALLOON_MEMORY_HOTPLUG
     XEN_SCRUB_PAGES
   XENFS                         XEN_PRIVCMD
     XEN_COMPAT_XENFS
   XEN_SYS_HYPERVISOR
   XEN_DEV_EVTCHN
   XEN_GNTDEV
   XEN_GRANT_DEV_ALLOC
   SWIOTLB_XEN
   XEN_STUB(x86_64)                                      BROKEN
   XEN_ACPI_PROCESSOR(x86)
  *XEN_HAVE_PVMMU(x86)                                  XEN_PV(x86)
   XEN_EFI(x64)
   XEN_XENBUS_FRONTEND
XEN_FRONTEND                    XEN
                                 XEN_XENBUS_FRONTEND
   XEN_FBDEV_FRONTEND            INPUT_XEN_KBDDEV_FRONTEND
   XEN_BLKDEV_FRONTEND
   HVC_XEN_FRONTEND              HVC_XEN
   TCG_XEN
   XEN_PCIDEV_FRONTEND(x86)      PCI_XEN(x86)
   XEN_SCSI_FRONTEND
   INPUT_XEN_KBDDEV_FRONTEND
   XEN_NETDEV_FRONTEND
   XEN_PLATFORM_PCI(x86)

Changes since v2:

  * Add XEN_ACPI_PROCESSOR (Konrad)
  * XEN_MAX_DOMAIN_MEMORY(x86) depends on XEN_HAVE_PVMMU(x86) now (Juergen).
    Juergen will later replace this once he adds > 500 GiB pv-domains
  * Clarifications on some lose options, we seem to want to keep these
    user selectable to be able to allow userspace options which do not depend
    on xen backend / frontends: ballooning, xenfs, sysfs, event dev, gntdev 
(Jan)
  * Tons of clarifications on x86 specific options (Stefano), this includes
    XEN_PVHVM(x86)

   Luis

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



_______________________________________________
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®.