Sunday, February 14, 2010

linux.kernel - 25 new messages in 18 topics - digest

linux.kernel
http://groups.google.com/group/linux.kernel?hl=en

linux.kernel@googlegroups.com

Today's topics:

* sched: fix SMT scheduler regression in find_busiest_queue() - 1 messages, 1
author
http://groups.google.com/group/linux.kernel/t/94565bebd7798203?hl=en
* sched: use lockdep-based checking on rcu_dereference() - 1 messages, 1
author
http://groups.google.com/group/linux.kernel/t/8f3dd15a4c6de88a?hl=en
* perf_events: how to add Intel LBR support - 1 messages, 1 author
http://groups.google.com/group/linux.kernel/t/76521cf898b666ef?hl=en
* Why is PERF_FORMAT_GROUP incompatible with inherited events? - 3 messages, 2
authors
http://groups.google.com/group/linux.kernel/t/a38c6f8c6f375e5c?hl=en
* XZ Migration discussion - 3 messages, 2 authors
http://groups.google.com/group/linux.kernel/t/4bbba75b0c3b8997?hl=en
* pagecache tracepoints proposal - 1 messages, 1 author
http://groups.google.com/group/linux.kernel/t/7981b41c86c59df1?hl=en
* platform/x86/dell-laptop: Add another Dell laptop to the DMI whitelist - 1
messages, 1 author
http://groups.google.com/group/linux.kernel/t/54be3c328de91a00?hl=en
* ARM: ftrace: fix and update dynamic ftrace - 1 messages, 1 author
http://groups.google.com/group/linux.kernel/t/af9ef75029a50e0e?hl=en
* tun: linux socket filter support - 1 messages, 1 author
http://groups.google.com/group/linux.kernel/t/1a20ea2ce3b71a42?hl=en
* tun: socket filter support - 2 messages, 1 author
http://groups.google.com/group/linux.kernel/t/6d1480aebc0ea628?hl=en
* sata_via: Delay on vt6420 when starting ATAPI DMA write - 1 messages, 1
author
http://groups.google.com/group/linux.kernel/t/30416f9489f48de3?hl=en
* bitops: compile time optimization for hweight_long(CONSTANT) - 2 messages, 2
authors
http://groups.google.com/group/linux.kernel/t/f58ac10e7917a328?hl=en
* x86: add HPET-quirk for nVidia MCP61 LPC Bridge rev a2 (10de:03e0) - 1
messages, 1 author
http://groups.google.com/group/linux.kernel/t/82d17fa4b09fb159?hl=en
* [PATCH v2] sata_via: Delay on vt6420 when starting ATAPI DMA write - 2
messages, 1 author
http://groups.google.com/group/linux.kernel/t/272fa9d8d103d69b?hl=en
* X25: Fix x25_create errors for bad protocol and ENOBUFS - 1 messages, 1
author
http://groups.google.com/group/linux.kernel/t/d78447befb5860e8?hl=en
* X25: Dont let x25_bind use addresses containing characters - 1 messages, 1
author
http://groups.google.com/group/linux.kernel/t/fa490484ffb68eb5?hl=en
* : Possibe recursive locking detected in sysfs - 1 messages, 1 author
http://groups.google.com/group/linux.kernel/t/44e7f725d88d14d2?hl=en
* net/macvtap: add vhost support - 1 messages, 1 author
http://groups.google.com/group/linux.kernel/t/680dab52a1238a07?hl=en

==============================================================================
TOPIC: sched: fix SMT scheduler regression in find_busiest_queue()
http://groups.google.com/group/linux.kernel/t/94565bebd7798203?hl=en
==============================================================================

== 1 of 1 ==
Date: Sun, Feb 14 2010 2:20 am
From: Peter Zijlstra


On Sun, 2010-02-14 at 02:06 +0530, Vaidyanathan Srinivasan wrote:
> > > > @@ -4119,12 +4119,23 @@ find_busiest_queue(struct sched_group *group, enum cpu_idle_type idle,
> > > > continue;
> > > >
> > > > rq = cpu_rq(i);
> > > > - wl = weighted_cpuload(i) * SCHED_LOAD_SCALE;
> > > > - wl /= power;
> > > > + wl = weighted_cpuload(i);
> > > >
> > > > + /*
> > > > + * When comparing with imbalance, use weighted_cpuload()
> > > > + * which is not scaled with the cpu power.
> > > > + */
> > > > if (capacity && rq->nr_running == 1 && wl > imbalance)
> > > > continue;
> > > >
> > > > + /*
> > > > + * For the load comparisons with the other cpu's, consider
> > > > + * the weighted_cpuload() scaled with the cpu power, so that
> > > > + * the load can be moved away from the cpu that is potentially
> > > > + * running at a lower capacity.
> > > > + */
> > > > + wl = (wl * SCHED_LOAD_SCALE) / power;
> > > > +
> > > > if (wl > max_load) {
> > > > max_load = wl;
> > > > busiest = rq;
> > > >
> > > >
>
> In addition to the above fix, for sched_smt_powersavings to work, the
> group capacity of the core (mc level) should be made 2 in
> update_sg_lb_stats() by changing the DIV_ROUND_CLOSEST to
> DIV_RPUND_UP()
>
> sgs->group_capacity =
> DIV_ROUND_UP(group->cpu_power, SCHED_LOAD_SCALE);
>
> Ideally we can change this to DIV_ROUND_UP and let SD_PREFER_SIBLING
> flag to force capacity to 1. Need to see if there are any side
> effects of setting SD_PREFER_SIBLING at SIBLING level sched domain
> based on sched_smt_powersavings flag.

OK, so while I think that Suresh' patch can make sense (haven't had time
to think it through), the above really sounds wrong. Things should not
rely on the cpu_power value like that.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

==============================================================================
TOPIC: sched: use lockdep-based checking on rcu_dereference()
http://groups.google.com/group/linux.kernel/t/8f3dd15a4c6de88a?hl=en
==============================================================================

== 1 of 1 ==
Date: Sun, Feb 14 2010 2:20 am
From: Peter Zijlstra


On Thu, 2010-02-11 at 16:00 -0800, Paul E. McKenney wrote:
> + first = rcu_dereference_check(pid->tasks[type].first, rcu_read_lock_held() || lockdep_is_held(&tasklist_lock));
> if (first)
> result = hlist_entry(first, struct task_struct, pids[(type)].node);
> }

I've seen that particular combination a few times in this patch, would
it make sense to create rcu_dereference_task()?

> diff --git a/kernel/sched.c b/kernel/sched.c
> index c535cc4..ad419d9 100644
> --- a/kernel/sched.c
> +++ b/kernel/sched.c
> @@ -645,6 +645,11 @@ static inline int cpu_of(struct rq *rq)
>

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate