From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752038Ab3CASM2 (ORCPT ); Fri, 1 Mar 2013 13:12:28 -0500 Received: from mx1.redhat.com ([209.132.183.28]:23100 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751192Ab3CASM0 (ORCPT ); Fri, 1 Mar 2013 13:12:26 -0500 From: Jiri Olsa To: linux-kernel@vger.kernel.org Cc: Thomas Gleixner , "H. Peter Anvin" , Andi Kleen , Oleg Nesterov , Arnaldo Carvalho de Melo , Peter Zijlstra , Ingo Molnar , Paul Mackerras , Corey Ashford , Frederic Weisbecker , Vince Weaver Subject: [RFC 0/5] perf, signal x86: Fix breakpoint events overflow handling Date: Fri, 1 Mar 2013 19:11:47 +0100 Message-Id: <1362161512-16803-1-git-send-email-jolsa@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org hi, while porting Vince's overflow tests I found perf event breakpoint overflow does not work properly. I found the x86 RF EFLAG bit not being set when returning from debug exception after triggering signal handler. Which is exactly what you get when you set perf breakpoint overflow SIGIO handler. Patches 1 and 2 are trying to fix that and make attached tests pass. But it's very likely I'm breaking something else by these changes, so please consider those as RFC patches.. pure suggestions to make my point ;-) Patch 3 fixes the period handling for breakpoint events. Patches 4 and 5 provide automated perf tests for testing all 3 kernel changes. Also available at: git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/linux.git perf/RF1 thanks for comments, jirka Cc: Thomas Gleixner Cc: H. Peter Anvin Cc: Andi Kleen Cc: Oleg Nesterov Cc: Arnaldo Carvalho de Melo Cc: Peter Zijlstra Cc: Ingo Molnar Cc: Paul Mackerras Cc: Corey Ashford Cc: Frederic Weisbecker Cc: Vince Weaver --- Jiri Olsa (5): signal x86: Propage RF EFLAGS bit throught the signal restore call signal x86: Clear RF EFLAGS bit for signal handler perf: Fix hw breakpoints overflow period sampling perf tests: Test breakpoint overflow signal handler perf tests: Test breakpoint overflow signal handler counts arch/x86/ia32/ia32_signal.c | 2 - arch/x86/include/asm/sighandling.h | 4 +- arch/x86/kernel/signal.c | 13 ++++--- include/linux/perf_event.h | 2 + kernel/events/core.c | 2 +- kernel/events/hw_breakpoint.c | 5 +++ tools/perf/Makefile | 2 + tools/perf/tests/bp_signal.c | 187 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tools/perf/tests/bp_signal_overflow.c | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tools/perf/tests/builtin-test.c | 8 ++++ tools/perf/tests/tests.h | 2 + 11 files changed, 342 insertions(+), 11 deletions(-) create mode 100644 tools/perf/tests/bp_signal.c create mode 100644 tools/perf/tests/bp_signal_overflow.c