Commit ab347d94 authored by Linus Torvalds's avatar Linus Torvalds

Merge branches 'perf-urgent-for-linus' and 'sched-urgent-for-linus' of...

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
...@@ -3101,6 +3101,7 @@ F: include/linux/hid* ...@@ -3101,6 +3101,7 @@ F: include/linux/hid*
HIGH-RESOLUTION TIMERS, CLOCKEVENTS, DYNTICKS HIGH-RESOLUTION TIMERS, CLOCKEVENTS, DYNTICKS
M: Thomas Gleixner <tglx@linutronix.de> M: Thomas Gleixner <tglx@linutronix.de>
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/core
S: Maintained S: Maintained
F: Documentation/timers/ F: Documentation/timers/
F: kernel/hrtimer.c F: kernel/hrtimer.c
...@@ -3610,7 +3611,7 @@ F: net/irda/ ...@@ -3610,7 +3611,7 @@ F: net/irda/
IRQ SUBSYSTEM IRQ SUBSYSTEM
M: Thomas Gleixner <tglx@linutronix.de> M: Thomas Gleixner <tglx@linutronix.de>
S: Maintained S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git irq/core T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
F: kernel/irq/ F: kernel/irq/
ISAPNP ISAPNP
...@@ -4098,7 +4099,7 @@ F: drivers/hwmon/lm90.c ...@@ -4098,7 +4099,7 @@ F: drivers/hwmon/lm90.c
LOCKDEP AND LOCKSTAT LOCKDEP AND LOCKSTAT
M: Peter Zijlstra <peterz@infradead.org> M: Peter Zijlstra <peterz@infradead.org>
M: Ingo Molnar <mingo@redhat.com> M: Ingo Molnar <mingo@redhat.com>
T: git git://git.kernel.org/pub/scm/linux/kernel/git/peterz/linux-2.6-lockdep.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core/locking
S: Maintained S: Maintained
F: Documentation/lockdep*.txt F: Documentation/lockdep*.txt
F: Documentation/lockstat.txt F: Documentation/lockstat.txt
...@@ -5086,6 +5087,7 @@ M: Peter Zijlstra <a.p.zijlstra@chello.nl> ...@@ -5086,6 +5087,7 @@ M: Peter Zijlstra <a.p.zijlstra@chello.nl>
M: Paul Mackerras <paulus@samba.org> M: Paul Mackerras <paulus@samba.org>
M: Ingo Molnar <mingo@elte.hu> M: Ingo Molnar <mingo@elte.hu>
M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf/core
S: Supported S: Supported
F: kernel/events/* F: kernel/events/*
F: include/linux/perf_event.h F: include/linux/perf_event.h
...@@ -5165,6 +5167,7 @@ F: drivers/scsi/pm8001/ ...@@ -5165,6 +5167,7 @@ F: drivers/scsi/pm8001/
POSIX CLOCKS and TIMERS POSIX CLOCKS and TIMERS
M: Thomas Gleixner <tglx@linutronix.de> M: Thomas Gleixner <tglx@linutronix.de>
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/core
S: Supported S: Supported
F: fs/timerfd.c F: fs/timerfd.c
F: include/linux/timer* F: include/linux/timer*
...@@ -5680,6 +5683,7 @@ F: drivers/dma/dw_dmac.c ...@@ -5680,6 +5683,7 @@ F: drivers/dma/dw_dmac.c
TIMEKEEPING, NTP TIMEKEEPING, NTP
M: John Stultz <johnstul@us.ibm.com> M: John Stultz <johnstul@us.ibm.com>
M: Thomas Gleixner <tglx@linutronix.de> M: Thomas Gleixner <tglx@linutronix.de>
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/core
S: Supported S: Supported
F: include/linux/clocksource.h F: include/linux/clocksource.h
F: include/linux/time.h F: include/linux/time.h
...@@ -5704,6 +5708,7 @@ F: drivers/watchdog/sc1200wdt.c ...@@ -5704,6 +5708,7 @@ F: drivers/watchdog/sc1200wdt.c
SCHEDULER SCHEDULER
M: Ingo Molnar <mingo@elte.hu> M: Ingo Molnar <mingo@elte.hu>
M: Peter Zijlstra <peterz@infradead.org> M: Peter Zijlstra <peterz@infradead.org>
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/core
S: Maintained S: Maintained
F: kernel/sched* F: kernel/sched*
F: include/linux/sched.h F: include/linux/sched.h
...@@ -6631,7 +6636,7 @@ TRACING ...@@ -6631,7 +6636,7 @@ TRACING
M: Steven Rostedt <rostedt@goodmis.org> M: Steven Rostedt <rostedt@goodmis.org>
M: Frederic Weisbecker <fweisbec@gmail.com> M: Frederic Weisbecker <fweisbec@gmail.com>
M: Ingo Molnar <mingo@redhat.com> M: Ingo Molnar <mingo@redhat.com>
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git perf/core T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf/core
S: Maintained S: Maintained
F: Documentation/trace/ftrace.txt F: Documentation/trace/ftrace.txt
F: arch/*/*/*/ftrace.h F: arch/*/*/*/ftrace.h
...@@ -7381,7 +7386,7 @@ M: Thomas Gleixner <tglx@linutronix.de> ...@@ -7381,7 +7386,7 @@ M: Thomas Gleixner <tglx@linutronix.de>
M: Ingo Molnar <mingo@redhat.com> M: Ingo Molnar <mingo@redhat.com>
M: "H. Peter Anvin" <hpa@zytor.com> M: "H. Peter Anvin" <hpa@zytor.com>
M: x86@kernel.org M: x86@kernel.org
T: git git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/core
S: Maintained S: Maintained
F: Documentation/x86/ F: Documentation/x86/
F: arch/x86/ F: arch/x86/
......
...@@ -3558,9 +3558,13 @@ static void ring_buffer_wakeup(struct perf_event *event) ...@@ -3558,9 +3558,13 @@ static void ring_buffer_wakeup(struct perf_event *event)
rcu_read_lock(); rcu_read_lock();
rb = rcu_dereference(event->rb); 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); wake_up_all(&event->waitq);
}
unlock:
rcu_read_unlock(); rcu_read_unlock();
} }
......
...@@ -2352,13 +2352,11 @@ static int select_idle_sibling(struct task_struct *p, int target) ...@@ -2352,13 +2352,11 @@ static int select_idle_sibling(struct task_struct *p, int target)
if (!smt && (sd->flags & SD_SHARE_CPUPOWER)) if (!smt && (sd->flags & SD_SHARE_CPUPOWER))
continue; continue;
if (!(sd->flags & SD_SHARE_PKG_RESOURCES)) { if (smt && !(sd->flags & SD_SHARE_CPUPOWER))
if (!smt) { break;
smt = 1;
goto again; if (!(sd->flags & SD_SHARE_PKG_RESOURCES))
}
break; break;
}
sg = sd->groups; sg = sd->groups;
do { do {
...@@ -2378,6 +2376,10 @@ static int select_idle_sibling(struct task_struct *p, int target) ...@@ -2378,6 +2376,10 @@ static int select_idle_sibling(struct task_struct *p, int target)
sg = sg->next; sg = sg->next;
} while (sg != sd->groups); } while (sg != sd->groups);
} }
if (!smt) {
smt = 1;
goto again;
}
done: done:
rcu_read_unlock(); rcu_read_unlock();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment