sched: Dynamic sched_domain::level
[linux-block.git] / include / linux / sched.h
index 09d9e02f2b615230f7189cbc41d64cb2962699e0..e43e5b0ab0b5f2d1628c4afc9f72cc0adeaf1341 100644 (file)
@@ -892,25 +892,6 @@ static inline struct cpumask *sched_group_cpus(struct sched_group *sg)
        return to_cpumask(sg->cpumask);
 }
 
-enum sched_domain_level {
-       SD_LV_NONE = 0,
-#ifdef CONFIG_SCHED_SMT
-       SD_LV_SIBLING,
-#endif
-#ifdef CONFIG_SCHED_MC
-       SD_LV_MC,
-#endif
-#ifdef CONFIG_SCHED_BOOK
-       SD_LV_BOOK,
-#endif
-       SD_LV_CPU,
-#ifdef CONFIG_NUMA
-       SD_LV_NODE,
-       SD_LV_ALLNODES,
-#endif
-       SD_LV_MAX
-};
-
 struct sched_domain_attr {
        int relax_domain_level;
 };
@@ -919,6 +900,8 @@ struct sched_domain_attr {
        .relax_domain_level = -1,                       \
 }
 
+extern int sched_domain_level_max;
+
 struct sched_domain {
        /* These fields must be setup */
        struct sched_domain *parent;    /* top domain must be null terminated */
@@ -936,7 +919,7 @@ struct sched_domain {
        unsigned int forkexec_idx;
        unsigned int smt_gain;
        int flags;                      /* See SD_* */
-       enum sched_domain_level level;
+       int level;
 
        /* Runtime fields. */
        unsigned long last_balance;     /* init to jiffies. units in jiffies */