aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2010-12-01 22:52:12 -0500
committerGlenn Elliott <gelliott@cs.unc.edu>2010-12-01 22:52:12 -0500
commite8ecd3beb68f401f13630c04326379b09a8cf475 (patch)
tree422ba13ddd1537e098b22195f575330ff499f3fc
parent7c4bf1537a81a84954dc34caeaf3b874800f7c18 (diff)
Feature: Make default C-EDF clustering compile-time configurable.wip-default-clustering
Prior to this patch, C-EDF defaulted to clustering around the L2 cache. This is a poor choice for a system with Nahalem-EX processors, where L2 caches are private to each core and the L3 is the only shared cache. This patch makes the default C-EDF clustering configurable at compile-time. Kconfig makes L2 the default selection (in spirit with the prior C-EDF default).
-rw-r--r--litmus/Kconfig21
-rw-r--r--litmus/sched_cedf.c8
2 files changed, 29 insertions, 0 deletions
diff --git a/litmus/Kconfig b/litmus/Kconfig
index a2f267870f29..febc11552bd1 100644
--- a/litmus/Kconfig
+++ b/litmus/Kconfig
@@ -12,6 +12,27 @@ config PLUGIN_CEDF
12 On smaller platforms (e.g., ARM PB11MPCore), using C-EDF 12 On smaller platforms (e.g., ARM PB11MPCore), using C-EDF
13 makes little sense since there aren't any shared caches. 13 makes little sense since there aren't any shared caches.
14 14
15choice
16 prompt "Default C-EDF Clustering"
17 depends on PLUGIN_CEDF
18 default DEFAULT_L2
19 help
20 Select the default C-EDF clustering: L1 (P-EDF), L2, L3, ALL (G-EDF)
21
22 config CEDF_DEFAULT_L1
23 bool "L1"
24
25 config CEDF_DEFAULT_L2
26 bool "L2"
27
28 config CEDF_DEFAULT_L3
29 bool "L3"
30
31 config CEDF_DEFAULT_ALL
32 bool "All"
33
34endchoice
35
15config PLUGIN_PFAIR 36config PLUGIN_PFAIR
16 bool "PFAIR" 37 bool "PFAIR"
17 depends on HIGH_RES_TIMERS && !NO_HZ 38 depends on HIGH_RES_TIMERS && !NO_HZ
diff --git a/litmus/sched_cedf.c b/litmus/sched_cedf.c
index 8c9513d33f59..1469a1e537d3 100644
--- a/litmus/sched_cedf.c
+++ b/litmus/sched_cedf.c
@@ -50,7 +50,15 @@
50 * (default) we cluster all the CPUs that shares a L2 cache, while 50 * (default) we cluster all the CPUs that shares a L2 cache, while
51 * cluster_cache_index = 3 we cluster all CPs that shares a L3 cache 51 * cluster_cache_index = 3 we cluster all CPs that shares a L3 cache
52 */ 52 */
53#if defined(CONFIG_CEDF_DEFAULT_L1)
54int cluster_index = 1;
55#elif defined(CONFIG_CEDF_DEFAULT_L2)
53int cluster_index = 2; 56int cluster_index = 2;
57#elif defined(CONFIG_CEDF_DEFAULT_L3)
58int cluster_index = 3;
59#elif defined(CONFIG_CEDF_DEFAULT_ALL)
60int cluster_index = 0;
61#endif
54 62
55/* forward declaration... a funny thing with C ;) */ 63/* forward declaration... a funny thing with C ;) */
56struct clusterdomain; 64struct clusterdomain;