diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2010-12-01 22:52:12 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2010-12-01 22:52:12 -0500 |
commit | e8ecd3beb68f401f13630c04326379b09a8cf475 (patch) | |
tree | 422ba13ddd1537e098b22195f575330ff499f3fc /litmus | |
parent | 7c4bf1537a81a84954dc34caeaf3b874800f7c18 (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).
Diffstat (limited to 'litmus')
-rw-r--r-- | litmus/Kconfig | 21 | ||||
-rw-r--r-- | litmus/sched_cedf.c | 8 |
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 | ||
15 | choice | ||
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 | |||
34 | endchoice | ||
35 | |||
15 | config PLUGIN_PFAIR | 36 | config 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) | ||
54 | int cluster_index = 1; | ||
55 | #elif defined(CONFIG_CEDF_DEFAULT_L2) | ||
53 | int cluster_index = 2; | 56 | int cluster_index = 2; |
57 | #elif defined(CONFIG_CEDF_DEFAULT_L3) | ||
58 | int cluster_index = 3; | ||
59 | #elif defined(CONFIG_CEDF_DEFAULT_ALL) | ||
60 | int cluster_index = 0; | ||
61 | #endif | ||
54 | 62 | ||
55 | /* forward declaration... a funny thing with C ;) */ | 63 | /* forward declaration... a funny thing with C ;) */ |
56 | struct clusterdomain; | 64 | struct clusterdomain; |