Prev: [PATCH]: Compress hibernation image with LZO (in-kernel)
Next: [PATCH 6/6] sched: enable SD_IDLE_LOAD_BALANCE on MC, CPU and NUMA (x86) domains
From: Nikhil Rao on 30 Jul 2010 01:20 Add a new sched domain flag called SD_IDLE_LOAD_BALANCE. SCHED_IDLE tasks are balanced by the SCHED_IDLE balancer on this domain when enabled, and are handled by the SCHED_NORMAL load balancer when disabled. This patch also adds this flag to sched domain init functions in include/linux/topology.h and arch/x86/include/asm/topology.h (disabled by default). Signed-off-by: Nikhil Rao <ncrao(a)google.com> --- arch/x86/include/asm/topology.h | 1 + include/linux/sched.h | 1 + include/linux/topology.h | 4 ++++ 3 files changed, 6 insertions(+), 0 deletions(-) diff --git a/arch/x86/include/asm/topology.h b/arch/x86/include/asm/topology.h index 21899cc..9f29b4e 100644 --- a/arch/x86/include/asm/topology.h +++ b/arch/x86/include/asm/topology.h @@ -150,6 +150,7 @@ extern unsigned long node_remap_size[]; | 0*SD_SHARE_PKG_RESOURCES \ | 1*SD_SERIALIZE \ | 0*SD_PREFER_SIBLING \ + | 0*SD_IDLE_LOAD_BALANCE \ , \ .last_balance = jiffies, \ .balance_interval = 1, \ diff --git a/include/linux/sched.h b/include/linux/sched.h index 747fcae..badf2a7 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -806,6 +806,7 @@ enum cpu_idle_type { #define SD_SERIALIZE 0x0400 /* Only a single load balancing instance */ #define SD_PREFER_SIBLING 0x1000 /* Prefer to place tasks in a sibling domain */ +#define SD_IDLE_LOAD_BALANCE 0x2000 /* Idle load balance on this domain */ enum powersavings_balance_level { POWERSAVINGS_BALANCE_NONE = 0, /* No power saving load balance */ diff --git a/include/linux/topology.h b/include/linux/topology.h index c44df50..97fbb1b 100644 --- a/include/linux/topology.h +++ b/include/linux/topology.h @@ -103,6 +103,7 @@ int arch_update_cpu_topology(void); | 1*SD_SHARE_PKG_RESOURCES \ | 0*SD_SERIALIZE \ | 0*SD_PREFER_SIBLING \ + | 0*SD_IDLE_LOAD_BALANCE \ , \ .last_balance = jiffies, \ .balance_interval = 1, \ @@ -134,6 +135,7 @@ int arch_update_cpu_topology(void); | 0*SD_SHARE_CPUPOWER \ | 1*SD_SHARE_PKG_RESOURCES \ | 0*SD_SERIALIZE \ + | 0*SD_IDLE_LOAD_BALANCE \ | sd_balance_for_mc_power() \ | sd_power_saving_flags() \ , \ @@ -167,6 +169,7 @@ int arch_update_cpu_topology(void); | 0*SD_SHARE_CPUPOWER \ | 0*SD_SHARE_PKG_RESOURCES \ | 0*SD_SERIALIZE \ + | 0*SD_IDLE_LOAD_BALANCE \ | sd_balance_for_package_power() \ | sd_power_saving_flags() \ , \ @@ -195,6 +198,7 @@ int arch_update_cpu_topology(void); | 0*SD_SHARE_PKG_RESOURCES \ | 1*SD_SERIALIZE \ | 0*SD_PREFER_SIBLING \ + | 0*SD_IDLE_LOAD_BALANCE \ , \ .last_balance = jiffies, \ .balance_interval = 64, \ -- 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |