Merge branches 'perf-urgent-for-linus' and 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf events: Fix ring_buffer_wakeup() brown paperbag bug * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: sched: Fix select_idle_sibling() regression in selecting an idle SMT sibling MAINTAINERS: Update tip.git related git trees
This commit is contained in:
@@ -3558,9 +3558,13 @@ static void ring_buffer_wakeup(struct perf_event *event)
|
||||
|
||||
rcu_read_lock();
|
||||
rb = rcu_dereference(event->rb);
|
||||
list_for_each_entry_rcu(event, &rb->event_list, rb_entry) {
|
||||
if (!rb)
|
||||
goto unlock;
|
||||
|
||||
list_for_each_entry_rcu(event, &rb->event_list, rb_entry)
|
||||
wake_up_all(&event->waitq);
|
||||
}
|
||||
|
||||
unlock:
|
||||
rcu_read_unlock();
|
||||
}
|
||||
|
||||
|
@@ -2352,13 +2352,11 @@ again:
|
||||
if (!smt && (sd->flags & SD_SHARE_CPUPOWER))
|
||||
continue;
|
||||
|
||||
if (!(sd->flags & SD_SHARE_PKG_RESOURCES)) {
|
||||
if (!smt) {
|
||||
smt = 1;
|
||||
goto again;
|
||||
}
|
||||
if (smt && !(sd->flags & SD_SHARE_CPUPOWER))
|
||||
break;
|
||||
|
||||
if (!(sd->flags & SD_SHARE_PKG_RESOURCES))
|
||||
break;
|
||||
}
|
||||
|
||||
sg = sd->groups;
|
||||
do {
|
||||
@@ -2378,6 +2376,10 @@ next:
|
||||
sg = sg->next;
|
||||
} while (sg != sd->groups);
|
||||
}
|
||||
if (!smt) {
|
||||
smt = 1;
|
||||
goto again;
|
||||
}
|
||||
done:
|
||||
rcu_read_unlock();
|
||||
|
||||
|
Reference in New Issue
Block a user