* [PATCH] perf_event: fix perf_swevent_hrtimer()
@ 2009-12-10 4:14 Xiao Guangrong
2009-12-10 5:15 ` Peter Zijlstra
0 siblings, 1 reply; 7+ messages in thread
From: Xiao Guangrong @ 2009-12-10 4:14 UTC (permalink / raw)
To: Ingo Molnar; +Cc: Frederic Weisbecker, Peter Zijlstra, Paul Mackerras, LKML
fix:
[<c0477471>] ? printk+0x1d/0x24
[<c01c98f9>] ? perf_prepare_sample+0x269/0x280
[<c0149231>] warn_slowpath_common+0x71/0xd0
[<c01c98f9>] ? perf_prepare_sample+0x269/0x280
[<c01492aa>] warn_slowpath_null+0x1a/0x20
[<c01c98f9>] perf_prepare_sample+0x269/0x280
[<c016e9f3>] ? cpu_clock+0x53/0x90
[<c01cc368>] __perf_event_overflow+0x2a8/0x300
[<c01ccc3b>] perf_event_overflow+0x1b/0x30
[<c01ccccf>] perf_swevent_hrtimer+0x7f/0x120
This is because 'data' variable not initialize.
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
---
kernel/perf_event.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/kernel/perf_event.c b/kernel/perf_event.c
index 0bd0f67..41c2dde 100644
--- a/kernel/perf_event.c
+++ b/kernel/perf_event.c
@@ -4009,7 +4009,7 @@ static enum hrtimer_restart perf_swevent_hrtimer(struct hrtimer *hrtimer)
event = container_of(hrtimer, struct perf_event, hw.hrtimer);
event->pmu->read(event);
- data.addr = 0;
+ memset(&data, 0, sizeof(data));
data.period = event->hw.last_period;
regs = get_irq_regs();
/*
--
1.6.1.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] perf_event: fix perf_swevent_hrtimer()
2009-12-10 4:14 [PATCH] perf_event: fix perf_swevent_hrtimer() Xiao Guangrong
@ 2009-12-10 5:15 ` Peter Zijlstra
2009-12-10 5:24 ` Xiao Guangrong
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Peter Zijlstra @ 2009-12-10 5:15 UTC (permalink / raw)
To: Xiao Guangrong; +Cc: Ingo Molnar, Frederic Weisbecker, Paul Mackerras, LKML
On Thu, 2009-12-10 at 12:14 +0800, Xiao Guangrong wrote:
> fix:
> [<c0477471>] ? printk+0x1d/0x24
> [<c01c98f9>] ? perf_prepare_sample+0x269/0x280
> [<c0149231>] warn_slowpath_common+0x71/0xd0
> [<c01c98f9>] ? perf_prepare_sample+0x269/0x280
> [<c01492aa>] warn_slowpath_null+0x1a/0x20
> [<c01c98f9>] perf_prepare_sample+0x269/0x280
> [<c016e9f3>] ? cpu_clock+0x53/0x90
> [<c01cc368>] __perf_event_overflow+0x2a8/0x300
> [<c01ccc3b>] perf_event_overflow+0x1b/0x30
> [<c01ccccf>] perf_swevent_hrtimer+0x7f/0x120
>
> This is because 'data' variable not initialize.
Nope, please just initialize the missing variable. Which from a quick
glance is data.raw.
> Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
> ---
> kernel/perf_event.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/kernel/perf_event.c b/kernel/perf_event.c
> index 0bd0f67..41c2dde 100644
> --- a/kernel/perf_event.c
> +++ b/kernel/perf_event.c
> @@ -4009,7 +4009,7 @@ static enum hrtimer_restart perf_swevent_hrtimer(struct hrtimer *hrtimer)
> event = container_of(hrtimer, struct perf_event, hw.hrtimer);
> event->pmu->read(event);
>
> - data.addr = 0;
> + memset(&data, 0, sizeof(data));
> data.period = event->hw.last_period;
> regs = get_irq_regs();
> /*
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] perf_event: fix perf_swevent_hrtimer()
2009-12-10 5:15 ` Peter Zijlstra
@ 2009-12-10 5:24 ` Xiao Guangrong
2009-12-10 6:00 ` [PATCH v2] " Xiao Guangrong
2009-12-10 9:08 ` [PATCH] perf_event: fix variable initialization in other path Xiao Guangrong
2 siblings, 0 replies; 7+ messages in thread
From: Xiao Guangrong @ 2009-12-10 5:24 UTC (permalink / raw)
To: Peter Zijlstra; +Cc: Ingo Molnar, Frederic Weisbecker, Paul Mackerras, LKML
Peter Zijlstra wrote:
> On Thu, 2009-12-10 at 12:14 +0800, Xiao Guangrong wrote:
>> fix:
>> [<c0477471>] ? printk+0x1d/0x24
>> [<c01c98f9>] ? perf_prepare_sample+0x269/0x280
>> [<c0149231>] warn_slowpath_common+0x71/0xd0
>> [<c01c98f9>] ? perf_prepare_sample+0x269/0x280
>> [<c01492aa>] warn_slowpath_null+0x1a/0x20
>> [<c01c98f9>] perf_prepare_sample+0x269/0x280
>> [<c016e9f3>] ? cpu_clock+0x53/0x90
>> [<c01cc368>] __perf_event_overflow+0x2a8/0x300
>> [<c01ccc3b>] perf_event_overflow+0x1b/0x30
>> [<c01ccccf>] perf_swevent_hrtimer+0x7f/0x120
>>
>> This is because 'data' variable not initialize.
>
> Nope, please just initialize the missing variable.
Ah, my mistake, I'll resend it.
Thanks,
Xiao
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2] perf_event: fix perf_swevent_hrtimer()
2009-12-10 5:15 ` Peter Zijlstra
2009-12-10 5:24 ` Xiao Guangrong
@ 2009-12-10 6:00 ` Xiao Guangrong
2009-12-10 6:18 ` [tip:perf/urgent] perf_event: Fix perf_swevent_hrtimer() variable initialization tip-bot for Xiao Guangrong
2009-12-10 9:08 ` [PATCH] perf_event: fix variable initialization in other path Xiao Guangrong
2 siblings, 1 reply; 7+ messages in thread
From: Xiao Guangrong @ 2009-12-10 6:00 UTC (permalink / raw)
To: Peter Zijlstra; +Cc: Ingo Molnar, Frederic Weisbecker, Paul Mackerras, LKML
fix:
[<c0477471>] ? printk+0x1d/0x24
[<c01c98f9>] ? perf_prepare_sample+0x269/0x280
[<c0149231>] warn_slowpath_common+0x71/0xd0
[<c01c98f9>] ? perf_prepare_sample+0x269/0x280
[<c01492aa>] warn_slowpath_null+0x1a/0x20
[<c01c98f9>] perf_prepare_sample+0x269/0x280
[<c016e9f3>] ? cpu_clock+0x53/0x90
[<c01cc368>] __perf_event_overflow+0x2a8/0x300
[<c01ccc3b>] perf_event_overflow+0x1b/0x30
[<c01ccccf>] perf_swevent_hrtimer+0x7f/0x120
This is because 'data.raw' variable not initialize.
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
---
kernel/perf_event.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/kernel/perf_event.c b/kernel/perf_event.c
index 0bd0f67..e63ba9a 100644
--- a/kernel/perf_event.c
+++ b/kernel/perf_event.c
@@ -4010,6 +4010,7 @@ static enum hrtimer_restart perf_swevent_hrtimer(struct hrtimer *hrtimer)
event->pmu->read(event);
data.addr = 0;
+ data.raw = NULL;
data.period = event->hw.last_period;
regs = get_irq_regs();
/*
--
1.6.1.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [tip:perf/urgent] perf_event: Fix perf_swevent_hrtimer() variable initialization
2009-12-10 6:00 ` [PATCH v2] " Xiao Guangrong
@ 2009-12-10 6:18 ` tip-bot for Xiao Guangrong
0 siblings, 0 replies; 7+ messages in thread
From: tip-bot for Xiao Guangrong @ 2009-12-10 6:18 UTC (permalink / raw)
To: linux-tip-commits
Cc: linux-kernel, paulus, hpa, mingo, peterz, xiaoguangrong, fweisbec,
tglx, mingo
Commit-ID: 21140f4d3387aa2213f1deea0128df1dbf924379
Gitweb: http://git.kernel.org/tip/21140f4d3387aa2213f1deea0128df1dbf924379
Author: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
AuthorDate: Thu, 10 Dec 2009 14:00:51 +0800
Committer: Ingo Molnar <mingo@elte.hu>
CommitDate: Thu, 10 Dec 2009 07:11:05 +0100
perf_event: Fix perf_swevent_hrtimer() variable initialization
fix:
[<c0477471>] ? printk+0x1d/0x24
[<c01c98f9>] ? perf_prepare_sample+0x269/0x280
[<c0149231>] warn_slowpath_common+0x71/0xd0
[<c01c98f9>] ? perf_prepare_sample+0x269/0x280
[<c01492aa>] warn_slowpath_null+0x1a/0x20
[<c01c98f9>] perf_prepare_sample+0x269/0x280
[<c016e9f3>] ? cpu_clock+0x53/0x90
[<c01cc368>] __perf_event_overflow+0x2a8/0x300
[<c01ccc3b>] perf_event_overflow+0x1b/0x30
[<c01ccccf>] perf_swevent_hrtimer+0x7f/0x120
This is because 'data.raw' variable not initialize.
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
LKML-Reference: <4B208E93.1010801@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
kernel/perf_event.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/kernel/perf_event.c b/kernel/perf_event.c
index 94e1b28..3a5d6c4 100644
--- a/kernel/perf_event.c
+++ b/kernel/perf_event.c
@@ -4010,6 +4010,7 @@ static enum hrtimer_restart perf_swevent_hrtimer(struct hrtimer *hrtimer)
event->pmu->read(event);
data.addr = 0;
+ data.raw = NULL;
data.period = event->hw.last_period;
regs = get_irq_regs();
/*
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH] perf_event: fix variable initialization in other path
2009-12-10 5:15 ` Peter Zijlstra
2009-12-10 5:24 ` Xiao Guangrong
2009-12-10 6:00 ` [PATCH v2] " Xiao Guangrong
@ 2009-12-10 9:08 ` Xiao Guangrong
2009-12-10 16:24 ` [tip:perf/urgent] perf_event: Fix variable initialization in other codepaths tip-bot for Xiao Guangrong
2 siblings, 1 reply; 7+ messages in thread
From: Xiao Guangrong @ 2009-12-10 9:08 UTC (permalink / raw)
To: Ingo Molnar; +Cc: Peter Zijlstra, Frederic Weisbecker, Paul Mackerras, LKML
fix variable initialization in other path
[Commit-ID: 21140f4d3387aa2213f1deea0128df1dbf924379 is not clean]
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
---
arch/x86/kernel/cpu/perf_event.c | 4 ++++
kernel/perf_event.c | 1 +
2 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c
index d35f260..1342f23 100644
--- a/arch/x86/kernel/cpu/perf_event.c
+++ b/arch/x86/kernel/cpu/perf_event.c
@@ -1632,6 +1632,7 @@ static void intel_pmu_drain_bts_buffer(struct cpu_hw_events *cpuc)
data.period = event->hw.last_period;
data.addr = 0;
+ data.raw = NULL;
regs.ip = 0;
/*
@@ -1749,6 +1750,7 @@ static int p6_pmu_handle_irq(struct pt_regs *regs)
u64 val;
data.addr = 0;
+ data.raw = NULL;
cpuc = &__get_cpu_var(cpu_hw_events);
@@ -1794,6 +1796,7 @@ static int intel_pmu_handle_irq(struct pt_regs *regs)
u64 ack, status;
data.addr = 0;
+ data.raw = NULL;
cpuc = &__get_cpu_var(cpu_hw_events);
@@ -1857,6 +1860,7 @@ static int amd_pmu_handle_irq(struct pt_regs *regs)
u64 val;
data.addr = 0;
+ data.raw = NULL;
cpuc = &__get_cpu_var(cpu_hw_events);
diff --git a/kernel/perf_event.c b/kernel/perf_event.c
index 41c2dde..6e2888d 100644
--- a/kernel/perf_event.c
+++ b/kernel/perf_event.c
@@ -4299,6 +4299,7 @@ void perf_bp_event(struct perf_event *bp, void *data)
struct perf_sample_data sample;
struct pt_regs *regs = data;
+ sample.raw = NULL;
sample.addr = bp->attr.bp_addr;
if (!perf_exclude_event(bp, regs))
--
1.6.1.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [tip:perf/urgent] perf_event: Fix variable initialization in other codepaths
2009-12-10 9:08 ` [PATCH] perf_event: fix variable initialization in other path Xiao Guangrong
@ 2009-12-10 16:24 ` tip-bot for Xiao Guangrong
0 siblings, 0 replies; 7+ messages in thread
From: tip-bot for Xiao Guangrong @ 2009-12-10 16:24 UTC (permalink / raw)
To: linux-tip-commits
Cc: linux-kernel, paulus, hpa, mingo, peterz, xiaoguangrong, fweisbec,
tglx, mingo
Commit-ID: 5e855db5d8fec44e6604eb245aa9077bbd3f0d05
Gitweb: http://git.kernel.org/tip/5e855db5d8fec44e6604eb245aa9077bbd3f0d05
Author: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
AuthorDate: Thu, 10 Dec 2009 17:08:54 +0800
Committer: Ingo Molnar <mingo@elte.hu>
CommitDate: Thu, 10 Dec 2009 17:23:02 +0100
perf_event: Fix variable initialization in other codepaths
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
LKML-Reference: <4B20BAA6.7010609@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
arch/x86/kernel/cpu/perf_event.c | 4 ++++
kernel/perf_event.c | 1 +
2 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c
index d35f260..1342f23 100644
--- a/arch/x86/kernel/cpu/perf_event.c
+++ b/arch/x86/kernel/cpu/perf_event.c
@@ -1632,6 +1632,7 @@ static void intel_pmu_drain_bts_buffer(struct cpu_hw_events *cpuc)
data.period = event->hw.last_period;
data.addr = 0;
+ data.raw = NULL;
regs.ip = 0;
/*
@@ -1749,6 +1750,7 @@ static int p6_pmu_handle_irq(struct pt_regs *regs)
u64 val;
data.addr = 0;
+ data.raw = NULL;
cpuc = &__get_cpu_var(cpu_hw_events);
@@ -1794,6 +1796,7 @@ static int intel_pmu_handle_irq(struct pt_regs *regs)
u64 ack, status;
data.addr = 0;
+ data.raw = NULL;
cpuc = &__get_cpu_var(cpu_hw_events);
@@ -1857,6 +1860,7 @@ static int amd_pmu_handle_irq(struct pt_regs *regs)
u64 val;
data.addr = 0;
+ data.raw = NULL;
cpuc = &__get_cpu_var(cpu_hw_events);
diff --git a/kernel/perf_event.c b/kernel/perf_event.c
index 3a5d6c4..d891ec4 100644
--- a/kernel/perf_event.c
+++ b/kernel/perf_event.c
@@ -4300,6 +4300,7 @@ void perf_bp_event(struct perf_event *bp, void *data)
struct perf_sample_data sample;
struct pt_regs *regs = data;
+ sample.raw = NULL;
sample.addr = bp->attr.bp_addr;
if (!perf_exclude_event(bp, regs))
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2009-12-10 16:25 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-10 4:14 [PATCH] perf_event: fix perf_swevent_hrtimer() Xiao Guangrong
2009-12-10 5:15 ` Peter Zijlstra
2009-12-10 5:24 ` Xiao Guangrong
2009-12-10 6:00 ` [PATCH v2] " Xiao Guangrong
2009-12-10 6:18 ` [tip:perf/urgent] perf_event: Fix perf_swevent_hrtimer() variable initialization tip-bot for Xiao Guangrong
2009-12-10 9:08 ` [PATCH] perf_event: fix variable initialization in other path Xiao Guangrong
2009-12-10 16:24 ` [tip:perf/urgent] perf_event: Fix variable initialization in other codepaths tip-bot for Xiao Guangrong
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox