lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 06 Mar 2009 11:58:54 +0530 From: Gautham R Shenoy <ego@...ibm.com> To: "Vaidyanathan Srinivasan" <svaidy@...ux.vnet.ibm.com>, "Balbir Singh" <balbir@...ibm.com>, "Peter Zijlstra" <a.p.zijlstra@...llo.nl>, "Ingo Molnar" <mingo@...e.hu>, "Suresh Siddha" <suresh.b.siddha@...el.com> Cc: "Dipankar Sarma" <dipankar@...ibm.com>, efault@....de, andi@...stfloor.org, linux-kernel@...r.kernel.org, Gautham R Shenoy <ego@...ibm.com>, Vaidyanathan Srinivasan <svaidy@...ux.vnet.ibm.com> Subject: [PATCH V3 1/6] sched: code cleanup - sd_power_saving_flags(), sd_balance_for_*_power() This is a code cleanup patch which combines the functions of sd_balance_for_mc/package_power() and sd_power_saving_flags() into a single function. Signed-off-by: Gautham R Shenoy <ego@...ibm.com> Cc: Vaidyanathan Srinivasan <svaidy@...ux.vnet.ibm.com> --- include/linux/sched.h | 65 +++++++++++++++++++++++----------------------- include/linux/topology.h | 6 +--- 2 files changed, 35 insertions(+), 36 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h index 8981e52..73aea7b 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -794,34 +794,45 @@ enum powersavings_balance_level { extern int sched_mc_power_savings, sched_smt_power_savings; -static inline int sd_balance_for_mc_power(void) -{ - if (sched_smt_power_savings) - return SD_POWERSAVINGS_BALANCE; - - return 0; -} - -static inline int sd_balance_for_package_power(void) -{ - if (sched_mc_power_savings | sched_smt_power_savings) - return SD_POWERSAVINGS_BALANCE; +enum sched_domain_level { + SD_LV_NONE = 0, + SD_LV_SIBLING, /* Represents the THREADS domain */ + SD_LV_MC, /* Represents the CORES domain */ + SD_LV_CPU, /* Represents the PACKAGE domain */ + SD_LV_NODE, /* Represents the NODES domain */ + SD_LV_ALLNODES, + SD_LV_MAX +}; - return 0; -} -/* - * Optimise SD flags for power savings: - * SD_BALANCE_NEWIDLE helps agressive task consolidation and power savings. - * Keep default SD flags if sched_{smt,mc}_power_saving=0 +/** + * sd_power_savings_flags: Returns the flags specific to power-aware-load + * balancing for a given sched_domain level + * + * @level: The sched_domain level for which the the power-aware-load balancing + * flags need to be set. + * + * This function helps in setting the flags for power-aware load balancing for + * a given sched_domain. + * - SD_POWERSAVINGS_BALANCE tells the load-balancer that power-aware + * load balancing is applicable at this domain. + * + * - SD_BALANCE_NEWIDLE helps aggressive task consolidation and + * power-savings. + * + * For more information on power aware scheduling, see the comment before + * find_busiest_group() in kernel/sched.c */ -static inline int sd_power_saving_flags(void) +static inline int sd_power_saving_flags(enum sched_domain_level level) { - if (sched_mc_power_savings | sched_smt_power_savings) - return SD_BALANCE_NEWIDLE; + if (level == SD_LV_MC && !sched_smt_power_savings) + return 0; + if (level == SD_LV_CPU && + !(sched_mc_power_savings || sched_smt_power_savings)) + return 0; - return 0; + return SD_POWERSAVINGS_BALANCE | SD_BALANCE_NEWIDLE; } struct sched_group { @@ -847,16 +858,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, - SD_LV_SIBLING, - SD_LV_MC, - SD_LV_CPU, - SD_LV_NODE, - SD_LV_ALLNODES, - SD_LV_MAX -}; - struct sched_domain_attr { int relax_domain_level; }; diff --git a/include/linux/topology.h b/include/linux/topology.h index e632d29..8097dce 100644 --- a/include/linux/topology.h +++ b/include/linux/topology.h @@ -125,8 +125,7 @@ int arch_update_cpu_topology(void); | SD_WAKE_AFFINE \ | SD_WAKE_BALANCE \ | SD_SHARE_PKG_RESOURCES\ - | sd_balance_for_mc_power()\ - | sd_power_saving_flags(),\ + | sd_power_saving_flags(SD_LV_MC),\ .last_balance = jiffies, \ .balance_interval = 1, \ } @@ -151,8 +150,7 @@ int arch_update_cpu_topology(void); | SD_BALANCE_FORK \ | SD_WAKE_AFFINE \ | SD_WAKE_BALANCE \ - | sd_balance_for_package_power()\ - | sd_power_saving_flags(),\ + | sd_power_saving_flags(SD_LV_CPU),\ .last_balance = jiffies, \ .balance_interval = 1, \ } -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists