Thread (36 messages) 36 messages, 10 authors, 2012-01-11

Re: [PATCH] x86,sched: Fix sched_smt_power_savings totally broken

From: Peter Zijlstra <hidden>
Date: 2012-01-09 11:06:10
Also in: lkml

On Mon, 2012-01-09 at 19:14 -0500, Youquan Song wrote:
Fine, I will base your suggestion to develop another patch soon.
quoted hunk ↗ jump to hunk
@@ -3923,6 +3923,10 @@ static inline void update_sg_lb_stats(struct
sched_domain *sd,
                                                SCHED_POWER_SCALE);
        if (!sgs->group_capacity)
                sgs->group_capacity = fix_small_capacity(sd, group);
+
+       if (sched_smt_power_savings)
+               sgs->group_capacity *= 2; 
Note, this has the hard-coded assumption you only have 2 threads per
core, which while true for intel, isn't true in general. I think you
meant to write *= group->group_weight or somesuch.

Also, you forgot to limit this to the SD_SHARE_CPUPOWER domain, you're
now doubling the capacity for all domains.

Furthermore, have a look at the SD_PREFER_SIBLING logic and make sure
you're not fighting that.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help