At least to me, using ?: instead of the (a && ...) || (!a && ...) construct is far easier to grok with a single look. Signed-off-by: Jan Beulich --- a/xen/common/sched_credit.c +++ b/xen/common/sched_credit.c @@ -526,10 +526,9 @@ _csched_cpu_pick(const struct scheduler weight_cpu = cpus_weight(cpu_idlers); weight_nxt = cpus_weight(nxt_idlers); /* smt_power_savings: consolidate work rather than spreading it */ - if ( ( sched_smt_power_savings - && (weight_cpu > weight_nxt) ) - || ( !sched_smt_power_savings - && (weight_cpu * migrate_factor < weight_nxt) ) ) + if ( sched_smt_power_savings ? + weight_cpu > weight_nxt : + weight_cpu * migrate_factor < weight_nxt ) { cpus_and(nxt_idlers, cpus, nxt_idlers); spc = CSCHED_PCPU(nxt);