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