lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1256302576-6169-1-git-send-email-eranian@gmail.com>
Date:	Fri, 23 Oct 2009 14:56:16 +0200
From:	Stephane Eranian <eranian@...glemail.com>
To:	linux-kernel@...r.kernel.org
Cc:	mingo@...e.hu, paulus@...ba.org, a.p.zijlstra@...llo.nl,
	perfmon2-devel@...ts.sf.net, Stephane Eranian <eranian@...il.com>
Subject: [PATCH] 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>

---
 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);
--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ