lkml.org 
[lkml]   [2009]   [Nov]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH 15/15] perf_events: fix default watermark calculation
Author: Stephane Eranian <eranian@gmail.com>

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>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <1256302576-6169-1-git-send-email-eranian@gmail.com>
---
kernel/perf_event.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6/kernel/perf_event.c
===================================================================
--- linux-2.6.orig/kernel/perf_event.c
+++ linux-2.6/kernel/perf_event.c
@@ -2340,7 +2340,7 @@ perf_mmap_data_init(struct perf_event *e
}

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-11-20 22:33    [W:0.139 / U:0.332 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site