Add machinery to allow the schedulers to be individually selectable
through the Kconfig interface. The first patch in the series sets up
the CONFIG_EXPERT Kconfig variable that is only enabled by passing an
environment variable to the build. The second patch in the series sets up
the Kconfig options for the schedulers and places the appropriate CONFIG_
options around the scheduler list. The third, fourth, and fifth patches
rework the scheduler list from being manually curated into a model
where just compiling any schedulers into the hypervisor causes the
scheduler list to be built up.

---
Changed since v5:
 * Removed extra default options since credit is always compiled in
 * Changed to a #define for the schedulers array instead of a 
   static const **

Changed since v4:
 * Removed the ability to configure the credit scheduler. It is always
   compiled in, so there is no need for the defensive check for schedulers
   in the linker (added in v4) and no reason to provide the static inlines
   (added in v3) since credit is always present. 
 * Remove extra size field that was accidentally left in.

Changed since v3:
 * Add defensive check for schedulers in the linker

Changed since v2:
 * Added a predecessor patch that introduces a environment
   variable for the build to enable expert configuration options
   (1/5)
 * Hide the scheduler menu behind the expert option (2/5)
 * Provide static inlines for credit functions that are assumed to be
   present if it is compiled out (2/5)
 * Provide an absolute default of the credit scheduler if the 
   scheduler menu is not visible (2/5)

Changed since v1:
 * Marked credit2 as EXPERIMENTAL
 * Removed confusing language from the commit message
 * Alphabetize the schedulers
 * rename the __start and __end symbols to better match
   the rest of the file
 * Simplify the calculation of the number of schedulers
 * Make the scheduler ops structures static to their files


Jonathan Creekmore (5):
  build: Env var to enable expert config options
  build: Hook the schedulers into Kconfig
  build: Alloc space for sched list in the link file
  sched: Register the schedulers into the list
  sched: Use the auto-generated list of schedulers

 xen/Kconfig                 |  4 ++++
 xen/Makefile                |  1 +
 xen/arch/arm/xen.lds.S      |  4 ++++
 xen/arch/x86/xen.lds.S      |  4 ++++
 xen/common/Kconfig          | 56 +++++++++++++++++++++++++++++++++++++++++++++
 xen/common/Makefile         |  8 +++----
 xen/common/sched_arinc653.c |  4 +++-
 xen/common/sched_credit.c   |  4 +++-
 xen/common/sched_credit2.c  |  4 +++-
 xen/common/sched_rt.c       |  4 +++-
 xen/common/schedule.c       | 19 +++++++--------
 xen/include/xen/sched-if.h  |  7 ++----
 12 files changed, 95 insertions(+), 24 deletions(-)

-- 
2.6.4


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

Reply via email to