lkml.org 
[lkml]   [2009]   [Oct]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH] perf_events: fix default watermark calculation
Date
	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@gmail.com>

---
kernel/perf_event.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/perf_event.c b/kernel/perf_event.c
index a69d4ed..e8ec4b7 100644
--- a/kernel/perf_event.c
+++ b/kernel/perf_event.c
@@ -2315,7 +2315,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);

\
 
 \ /
  Last update: 2009-10-23 14:59    [W:0.040 / U:0.136 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site