[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <tip-8904b18046c2f050107f6449e887e7c1142b9ab9@git.kernel.org>
Date: Sat, 21 Nov 2009 13:44:14 GMT
From: tip-bot for Stephane Eranian <eranian@...il.com>
To: linux-tip-commits@...r.kernel.org
Cc: linux-kernel@...r.kernel.org, paulus@...ba.org, hpa@...or.com,
mingo@...hat.com, a.p.zijlstra@...llo.nl, tglx@...utronix.de,
eranian@...il.com, mingo@...e.hu
Subject: [tip:perf/core] perf_events: Fix default watermark calculation
Commit-ID: 8904b18046c2f050107f6449e887e7c1142b9ab9
Gitweb: http://git.kernel.org/tip/8904b18046c2f050107f6449e887e7c1142b9ab9
Author: Stephane Eranian <eranian@...il.com>
AuthorDate: Fri, 20 Nov 2009 22:19:57 +0100
Committer: Ingo Molnar <mingo@...e.hu>
CommitDate: Sat, 21 Nov 2009 14:11:41 +0100
perf_events: Fix default watermark calculation
This patch fixes the default watermark value for the sampling
buffer. With the existing calculation (watermark =
max(PAGE_SIZE, max_size / 2)), no notification was ever received
when the buffer was exactly 1 page. This was because you would
never cross the threshold (there is no partial samples).
In certain configuration, there was no possibilty detecting the
problem because there was not enough space left to store the
LOST record.In fact, there may be a more generic problem here.
The kernel should ensure that there is alaways enough space to
store one LOST record.
This patch sets the default watermark to half the buffer size.
With such limit, we are guaranteed to get a notification even
with a single page buffer assuming no sample is bigger than a
page.
Signed-off-by: Stephane Eranian <eranian@...il.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@...llo.nl>
Cc: Paul Mackerras <paulus@...ba.org>
LKML-Reference: <20091120212509.344964101@...llo.nl>
Signed-off-by: Ingo Molnar <mingo@...e.hu>
LKML-Reference: <1256302576-6169-1-git-send-email-eranian@...il.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 3ede098..718fa93 100644
--- a/kernel/perf_event.c
+++ b/kernel/perf_event.c
@@ -2340,7 +2340,7 @@ perf_mmap_data_init(struct perf_event *event, struct perf_mmap_data *data)
}
if (!data->watermark)
- data->watermark = max_t(long, PAGE_SIZE, max_size / 2);
+ data->watermark = max_size / 2;
rcu_assign_pointer(event->data, data);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists