All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] upstream patches to 4.1 stable
@ 2016-03-24 11:14 He Kuang
  2016-03-24 11:14 ` [PATCH 1/5] arm64: replace read_lock to rcu lock in call_break_hook He Kuang
                   ` (6 more replies)
  0 siblings, 7 replies; 9+ messages in thread
From: He Kuang @ 2016-03-24 11:14 UTC (permalink / raw)
  To: sasha.levin; +Cc: stable, wangnan0, hekuang

Here are some patches from master branch related to perf subsystem.

Alexander Shishkin (1):
  perf/core: Fix perf_sched_count derailment

Peter Zijlstra (2):
  perf: Do not double free
  perf: Cure event->pending_disable race

Yang Shi (2):
  arm64: replace read_lock to rcu lock in call_break_hook
  arm64: replace read_lock to rcu lock in call_step_hook

 arch/arm64/kernel/debug-monitors.c | 42 ++++++++++++++++++++------------------
 kernel/events/core.c               | 20 ++++++++++--------
 2 files changed, 34 insertions(+), 28 deletions(-)

-- 
1.8.5.2


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/5] arm64: replace read_lock to rcu lock in call_break_hook
  2016-03-24 11:14 [PATCH 0/5] upstream patches to 4.1 stable He Kuang
@ 2016-03-24 11:14 ` He Kuang
  2016-03-24 11:14 ` [PATCH 2/5] arm64: replace read_lock to rcu lock in call_step_hook He Kuang
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: He Kuang @ 2016-03-24 11:14 UTC (permalink / raw)
  To: sasha.levin; +Cc: stable, wangnan0, hekuang

From: Yang Shi <yang.shi@linaro.org>

[ Upstream commit 62c6c61adbc623cdacf74b8f29c278e539060c48 ]

BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:917
in_atomic(): 0, irqs_disabled(): 128, pid: 342, name: perf
1 lock held by perf/342:
 #0:  (break_hook_lock){+.+...}, at: [<ffffffc0000851ac>] call_break_hook+0x34/0xd0
irq event stamp: 62224
hardirqs last  enabled at (62223): [<ffffffc00010b7bc>] __call_rcu.constprop.59+0x104/0x270
hardirqs last disabled at (62224): [<ffffffc0000fbe20>] vprintk_emit+0x68/0x640
softirqs last  enabled at (0): [<ffffffc000097928>] copy_process.part.8+0x428/0x17f8
softirqs last disabled at (0): [<          (null)>]           (null)
CPU: 0 PID: 342 Comm: perf Not tainted 4.1.6-rt5 #4
Hardware name: linux,dummy-virt (DT)
Call trace:
[<ffffffc000089968>] dump_backtrace+0x0/0x128
[<ffffffc000089ab0>] show_stack+0x20/0x30
[<ffffffc0007030d0>] dump_stack+0x7c/0xa0
[<ffffffc0000c878c>] ___might_sleep+0x174/0x260
[<ffffffc000708ac8>] __rt_spin_lock+0x28/0x40
[<ffffffc000708db0>] rt_read_lock+0x60/0x80
[<ffffffc0000851a8>] call_break_hook+0x30/0xd0
[<ffffffc000085a70>] brk_handler+0x30/0x98
[<ffffffc000082248>] do_debug_exception+0x50/0xb8
Exception stack(0xffffffc00514fe30 to 0xffffffc00514ff50)
fe20:                                     00000000 00000000 c1594680 0000007f
fe40: ffffffff ffffffff 92063940 0000007f 0550dcd8 ffffffc0 00000000 00000000
fe60: 0514fe70 ffffffc0 000be1f8 ffffffc0 0514feb0 ffffffc0 0008948c ffffffc0
fe80: 00000004 00000000 0514fed0 ffffffc0 ffffffff ffffffff 9282a948 0000007f
fea0: 00000000 00000000 9282b708 0000007f c1592820 0000007f 00083914 ffffffc0
fec0: 00000000 00000000 00000010 00000000 00000064 00000000 00000001 00000000
fee0: 005101e0 00000000 c1594680 0000007f c1594740 0000007f ffffffd8 ffffff80
ff00: 00000000 00000000 00000000 00000000 c1594770 0000007f c1594770 0000007f
ff20: 00665e10 00000000 7f7f7f7f 7f7f7f7f 01010101 01010101 00000000 00000000
ff40: 928e4cc0 0000007f 91ff11e8 0000007f

call_break_hook is called in atomic context (hard irq disabled), so replace
the sleepable lock to rcu lock, replace relevant list operations to rcu
version and call synchronize_rcu() in unregister_break_hook().

And, replace write lock to spinlock in {un}register_break_hook.

Signed-off-by: Yang Shi <yang.shi@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: He Kuang <hekuang@huawei.com>
---
 arch/arm64/kernel/debug-monitors.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/arch/arm64/kernel/debug-monitors.c b/arch/arm64/kernel/debug-monitors.c
index b056369..70654d84 100644
--- a/arch/arm64/kernel/debug-monitors.c
+++ b/arch/arm64/kernel/debug-monitors.c
@@ -271,20 +271,21 @@ static int single_step_handler(unsigned long addr, unsigned int esr,
  * Use reader/writer locks instead of plain spinlock.
  */
 static LIST_HEAD(break_hook);
-static DEFINE_RWLOCK(break_hook_lock);
+static DEFINE_SPINLOCK(break_hook_lock);
 
 void register_break_hook(struct break_hook *hook)
 {
-	write_lock(&break_hook_lock);
-	list_add(&hook->node, &break_hook);
-	write_unlock(&break_hook_lock);
+	spin_lock(&break_hook_lock);
+	list_add_rcu(&hook->node, &break_hook);
+	spin_unlock(&break_hook_lock);
 }
 
 void unregister_break_hook(struct break_hook *hook)
 {
-	write_lock(&break_hook_lock);
-	list_del(&hook->node);
-	write_unlock(&break_hook_lock);
+	spin_lock(&break_hook_lock);
+	list_del_rcu(&hook->node);
+	spin_unlock(&break_hook_lock);
+	synchronize_rcu();
 }
 
 static int call_break_hook(struct pt_regs *regs, unsigned int esr)
@@ -292,11 +293,11 @@ static int call_break_hook(struct pt_regs *regs, unsigned int esr)
 	struct break_hook *hook;
 	int (*fn)(struct pt_regs *regs, unsigned int esr) = NULL;
 
-	read_lock(&break_hook_lock);
-	list_for_each_entry(hook, &break_hook, node)
+	rcu_read_lock();
+	list_for_each_entry_rcu(hook, &break_hook, node)
 		if ((esr & hook->esr_mask) == hook->esr_val)
 			fn = hook->fn;
-	read_unlock(&break_hook_lock);
+	rcu_read_unlock();
 
 	return fn ? fn(regs, esr) : DBG_HOOK_ERROR;
 }
-- 
1.8.5.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/5] arm64: replace read_lock to rcu lock in call_step_hook
  2016-03-24 11:14 [PATCH 0/5] upstream patches to 4.1 stable He Kuang
  2016-03-24 11:14 ` [PATCH 1/5] arm64: replace read_lock to rcu lock in call_break_hook He Kuang
@ 2016-03-24 11:14 ` He Kuang
  2016-03-24 11:14 ` [PATCH 3/5] perf: Do not double free He Kuang
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: He Kuang @ 2016-03-24 11:14 UTC (permalink / raw)
  To: sasha.levin; +Cc: stable, wangnan0, hekuang

From: Yang Shi <yang.shi@linaro.org>

[ Upstream commit cf0a25436f05753aca5151891aea4fd130556e2a ]

BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:917
in_atomic(): 1, irqs_disabled(): 128, pid: 383, name: sh
Preemption disabled at:[<ffff800000124c18>] kgdb_cpu_enter+0x158/0x6b8

CPU: 3 PID: 383 Comm: sh Tainted: G        W       4.1.13-rt13 #2
Hardware name: Freescale Layerscape 2085a RDB Board (DT)
Call trace:
[<ffff8000000885e8>] dump_backtrace+0x0/0x128
[<ffff800000088734>] show_stack+0x24/0x30
[<ffff80000079a7c4>] dump_stack+0x80/0xa0
[<ffff8000000bd324>] ___might_sleep+0x18c/0x1a0
[<ffff8000007a20ac>] __rt_spin_lock+0x2c/0x40
[<ffff8000007a2268>] rt_read_lock+0x40/0x58
[<ffff800000085328>] single_step_handler+0x38/0xd8
[<ffff800000082368>] do_debug_exception+0x58/0xb8
Exception stack(0xffff80834a1e7c80 to 0xffff80834a1e7da0)
7c80: ffffff9c ffffffff 92c23ba0 0000ffff 4a1e7e40 ffff8083 001bfcc4 ffff8000
7ca0: f2000400 00000000 00000000 00000000 4a1e7d80 ffff8083 0049501c ffff8000
7cc0: 00005402 00000000 00aaa210 ffff8000 4a1e7ea0 ffff8083 000833f4 ffff8000
7ce0: ffffff9c ffffffff 92c23ba0 0000ffff 4a1e7ea0 ffff8083 001bfcc0 ffff8000
7d00: 4a0fc400 ffff8083 00005402 00000000 4a1e7d40 ffff8083 00490324 ffff8000
7d20: ffffff9c 00000000 92c23ba0 0000ffff 000a0000 00000000 00000000 00000000
7d40: 00000008 00000000 00080000 00000000 92c23b8b 0000ffff 92c23b8e 0000ffff
7d60: 00000038 00000000 00001cb2 00000000 00000005 00000000 92d7b498 0000ffff
7d80: 01010101 01010101 92be9000 0000ffff 00000000 00000000 00000030 00000000
[<ffff8000000833f4>] el1_dbg+0x18/0x6c

This issue is similar with 62c6c61("arm64: replace read_lock to rcu lock in
call_break_hook"), but comes to single_step_handler.

This also solves kgdbts boot test silent hang issue on 4.4 -rt kernel.

Signed-off-by: Yang Shi <yang.shi@linaro.org>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: He Kuang <hekuang@huawei.com>
---
 arch/arm64/kernel/debug-monitors.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/arch/arm64/kernel/debug-monitors.c b/arch/arm64/kernel/debug-monitors.c
index 70654d84..0d1d675 100644
--- a/arch/arm64/kernel/debug-monitors.c
+++ b/arch/arm64/kernel/debug-monitors.c
@@ -184,20 +184,21 @@ static void clear_regs_spsr_ss(struct pt_regs *regs)
 
 /* EL1 Single Step Handler hooks */
 static LIST_HEAD(step_hook);
-static DEFINE_RWLOCK(step_hook_lock);
+static DEFINE_SPINLOCK(step_hook_lock);
 
 void register_step_hook(struct step_hook *hook)
 {
-	write_lock(&step_hook_lock);
-	list_add(&hook->node, &step_hook);
-	write_unlock(&step_hook_lock);
+	spin_lock(&step_hook_lock);
+	list_add_rcu(&hook->node, &step_hook);
+	spin_unlock(&step_hook_lock);
 }
 
 void unregister_step_hook(struct step_hook *hook)
 {
-	write_lock(&step_hook_lock);
-	list_del(&hook->node);
-	write_unlock(&step_hook_lock);
+	spin_lock(&step_hook_lock);
+	list_del_rcu(&hook->node);
+	spin_unlock(&step_hook_lock);
+	synchronize_rcu();
 }
 
 /*
@@ -211,15 +212,15 @@ static int call_step_hook(struct pt_regs *regs, unsigned int esr)
 	struct step_hook *hook;
 	int retval = DBG_HOOK_ERROR;
 
-	read_lock(&step_hook_lock);
+	rcu_read_lock();
 
-	list_for_each_entry(hook, &step_hook, node)	{
+	list_for_each_entry_rcu(hook, &step_hook, node)	{
 		retval = hook->fn(regs, esr);
 		if (retval == DBG_HOOK_HANDLED)
 			break;
 	}
 
-	read_unlock(&step_hook_lock);
+	rcu_read_unlock();
 
 	return retval;
 }
-- 
1.8.5.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/5] perf: Do not double free
  2016-03-24 11:14 [PATCH 0/5] upstream patches to 4.1 stable He Kuang
  2016-03-24 11:14 ` [PATCH 1/5] arm64: replace read_lock to rcu lock in call_break_hook He Kuang
  2016-03-24 11:14 ` [PATCH 2/5] arm64: replace read_lock to rcu lock in call_step_hook He Kuang
@ 2016-03-24 11:14 ` He Kuang
  2016-03-24 11:14 ` [PATCH 4/5] perf: Cure event->pending_disable race He Kuang
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: He Kuang @ 2016-03-24 11:14 UTC (permalink / raw)
  To: sasha.levin; +Cc: stable, wangnan0, hekuang

From: Peter Zijlstra <peterz@infradead.org>

[ Upstream commit 130056275ade730e7a79c110212c8815202773ee ]

In case of: err_file: fput(event_file), we'll end up calling
perf_release() which in turn will free the event.

Do not then free the event _again_.

Tested-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: dvyukov@google.com
Cc: eranian@google.com
Cc: oleg@redhat.com
Cc: panand@redhat.com
Cc: sasha.levin@oracle.com
Cc: vince@deater.net
Link: http://lkml.kernel.org/r/20160224174947.697350349@infradead.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: He Kuang <hekuang@huawei.com>
---
 kernel/events/core.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/kernel/events/core.c b/kernel/events/core.c
index e1af58e..992b16a 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -8221,7 +8221,12 @@ err_context:
 	perf_unpin_context(ctx);
 	put_ctx(ctx);
 err_alloc:
-	free_event(event);
+	/*
+	 * If event_file is set, the fput() above will have called ->release()
+	 * and that will take care of freeing the event.
+	 */
+	if (!event_file)
+		free_event(event);
 err_cpus:
 	put_online_cpus();
 err_task:
-- 
1.8.5.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 4/5] perf: Cure event->pending_disable race
  2016-03-24 11:14 [PATCH 0/5] upstream patches to 4.1 stable He Kuang
                   ` (2 preceding siblings ...)
  2016-03-24 11:14 ` [PATCH 3/5] perf: Do not double free He Kuang
@ 2016-03-24 11:14 ` He Kuang
  2016-03-24 11:14 ` [PATCH 5/5] perf/core: Fix perf_sched_count derailment He Kuang
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: He Kuang @ 2016-03-24 11:14 UTC (permalink / raw)
  To: sasha.levin; +Cc: stable, wangnan0, hekuang

From: Peter Zijlstra <peterz@infradead.org>

[ Upstream commit 28a967c3a2f99fa3b5f762f25cb2a319d933571b ]

Because event_sched_out() checks event->pending_disable _before_
actually disabling the event, it can happen that the event fires after
it checks but before it gets disabled.

This would leave event->pending_disable set and the queued irq_work
will try and process it.

However, if the event trigger was during schedule(), the event might
have been de-scheduled by the time the irq_work runs, and
perf_event_disable_local() will fail.

Fix this by checking event->pending_disable _after_ we call
event->pmu->del(). This depends on the latter being a compiler
barrier, such that the compiler does not lift the load and re-creates
the problem.

Tested-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: dvyukov@google.com
Cc: eranian@google.com
Cc: oleg@redhat.com
Cc: panand@redhat.com
Cc: sasha.levin@oracle.com
Cc: vince@deater.net
Link: http://lkml.kernel.org/r/20160224174948.040469884@infradead.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: He Kuang <hekuang@huawei.com>
---
 kernel/events/core.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/kernel/events/core.c b/kernel/events/core.c
index 992b16a..0eaf3f0 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -1562,14 +1562,14 @@ event_sched_out(struct perf_event *event,
 
 	perf_pmu_disable(event->pmu);
 
+	event->tstamp_stopped = tstamp;
+	event->pmu->del(event, 0);
+	event->oncpu = -1;
 	event->state = PERF_EVENT_STATE_INACTIVE;
 	if (event->pending_disable) {
 		event->pending_disable = 0;
 		event->state = PERF_EVENT_STATE_OFF;
 	}
-	event->tstamp_stopped = tstamp;
-	event->pmu->del(event, 0);
-	event->oncpu = -1;
 
 	if (!is_software_event(event))
 		cpuctx->active_oncpu--;
-- 
1.8.5.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 5/5] perf/core: Fix perf_sched_count derailment
  2016-03-24 11:14 [PATCH 0/5] upstream patches to 4.1 stable He Kuang
                   ` (3 preceding siblings ...)
  2016-03-24 11:14 ` [PATCH 4/5] perf: Cure event->pending_disable race He Kuang
@ 2016-03-24 11:14 ` He Kuang
  2016-03-24 14:15 ` [PATCH 0/5] upstream patches to 4.1 stable Greg KH
  2016-03-24 15:14 ` Sasha Levin
  6 siblings, 0 replies; 9+ messages in thread
From: He Kuang @ 2016-03-24 11:14 UTC (permalink / raw)
  To: sasha.levin; +Cc: stable, wangnan0, hekuang

From: Alexander Shishkin <alexander.shishkin@linux.intel.com>

[ Upstream commit 927a5570855836e5d5859a80ce7e91e963545e8f ]

The error path in perf_event_open() is such that asking for a sampling
event on a PMU that doesn't generate interrupts will end up in dropping
the perf_sched_count even though it hasn't been incremented for this
event yet.

Given a sufficient amount of these calls, we'll end up disabling
scheduler's jump label even though we'd still have active events in the
system, thereby facilitating the arrival of the infernal regions upon us.

I'm fixing this by moving account_event() inside perf_event_alloc().

Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: <stable@vger.kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@infradead.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vince Weaver <vincent.weaver@maine.edu>
Cc: vince@deater.net
Link: http://lkml.kernel.org/r/1456917854-29427-1-git-send-email-alexander.shishkin@linux.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: He Kuang <hekuang@huawei.com>
---
 kernel/events/core.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/kernel/events/core.c b/kernel/events/core.c
index 0eaf3f0..66e6568 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -7641,6 +7641,9 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
 		}
 	}
 
+	/* symmetric to unaccount_event() in _free_event() */
+	account_event(event);
+
 	return event;
 
 err_per_task:
@@ -8004,8 +8007,6 @@ SYSCALL_DEFINE5(perf_event_open,
 		}
 	}
 
-	account_event(event);
-
 	/*
 	 * Special case software events and allow them to be part of
 	 * any hardware group.
@@ -8270,8 +8271,6 @@ perf_event_create_kernel_counter(struct perf_event_attr *attr, int cpu,
 	/* Mark owner so we could distinguish it from user events. */
 	event->owner = EVENT_OWNER_KERNEL;
 
-	account_event(event);
-
 	ctx = find_get_context(event->pmu, task, event);
 	if (IS_ERR(ctx)) {
 		err = PTR_ERR(ctx);
-- 
1.8.5.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/5] upstream patches to 4.1 stable
  2016-03-24 11:14 [PATCH 0/5] upstream patches to 4.1 stable He Kuang
                   ` (4 preceding siblings ...)
  2016-03-24 11:14 ` [PATCH 5/5] perf/core: Fix perf_sched_count derailment He Kuang
@ 2016-03-24 14:15 ` Greg KH
  2016-03-25  7:33   ` Hekuang
  2016-03-24 15:14 ` Sasha Levin
  6 siblings, 1 reply; 9+ messages in thread
From: Greg KH @ 2016-03-24 14:15 UTC (permalink / raw)
  To: He Kuang; +Cc: sasha.levin, stable, wangnan0

On Thu, Mar 24, 2016 at 11:14:48AM +0000, He Kuang wrote:
> Here are some patches from master branch related to perf subsystem.

Why only 4.1?  What about 4.4?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/5] upstream patches to 4.1 stable
  2016-03-24 11:14 [PATCH 0/5] upstream patches to 4.1 stable He Kuang
                   ` (5 preceding siblings ...)
  2016-03-24 14:15 ` [PATCH 0/5] upstream patches to 4.1 stable Greg KH
@ 2016-03-24 15:14 ` Sasha Levin
  6 siblings, 0 replies; 9+ messages in thread
From: Sasha Levin @ 2016-03-24 15:14 UTC (permalink / raw)
  To: He Kuang; +Cc: stable, wangnan0

On 03/24/2016 07:14 AM, He Kuang wrote:
> Here are some patches from master branch related to perf subsystem.
> 
> Alexander Shishkin (1):
>   perf/core: Fix perf_sched_count derailment
> 
> Peter Zijlstra (2):
>   perf: Do not double free
>   perf: Cure event->pending_disable race
> 
> Yang Shi (2):
>   arm64: replace read_lock to rcu lock in call_break_hook
>   arm64: replace read_lock to rcu lock in call_step_hook
> 
>  arch/arm64/kernel/debug-monitors.c | 42 ++++++++++++++++++++------------------
>  kernel/events/core.c               | 20 ++++++++++--------
>  2 files changed, 34 insertions(+), 28 deletions(-)
> 

Grabbed it. Thanks!


Thanks,
Sasha

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/5] upstream patches to 4.1 stable
  2016-03-24 14:15 ` [PATCH 0/5] upstream patches to 4.1 stable Greg KH
@ 2016-03-25  7:33   ` Hekuang
  0 siblings, 0 replies; 9+ messages in thread
From: Hekuang @ 2016-03-25  7:33 UTC (permalink / raw)
  To: Greg KH; +Cc: sasha.levin, stable, wangnan0

hi,

在 2016/3/24 22:15, Greg KH 写道:
> On Thu, Mar 24, 2016 at 11:14:48AM +0000, He Kuang wrote:
>> Here are some patches from master branch related to perf subsystem.
> Why only 4.1?  What about 4.4?

Our product is based on 4.1 kernel, I'll pick some important patches 
related to perf subsystem
from master branch and cherry-pick them to 4.1 stable, then verify that 
they are able to work
properly,  4.4 is beyond my work scope.

Thanks.

>
> thanks,
>
> greg k-h
>



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-03-25  7:37 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-24 11:14 [PATCH 0/5] upstream patches to 4.1 stable He Kuang
2016-03-24 11:14 ` [PATCH 1/5] arm64: replace read_lock to rcu lock in call_break_hook He Kuang
2016-03-24 11:14 ` [PATCH 2/5] arm64: replace read_lock to rcu lock in call_step_hook He Kuang
2016-03-24 11:14 ` [PATCH 3/5] perf: Do not double free He Kuang
2016-03-24 11:14 ` [PATCH 4/5] perf: Cure event->pending_disable race He Kuang
2016-03-24 11:14 ` [PATCH 5/5] perf/core: Fix perf_sched_count derailment He Kuang
2016-03-24 14:15 ` [PATCH 0/5] upstream patches to 4.1 stable Greg KH
2016-03-25  7:33   ` Hekuang
2016-03-24 15:14 ` Sasha Levin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.