From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756000Ab0FXVlI (ORCPT ); Thu, 24 Jun 2010 17:41:08 -0400 Received: from mail-bw0-f46.google.com ([209.85.214.46]:58589 "EHLO mail-bw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755931Ab0FXVlE (ORCPT ); Thu, 24 Jun 2010 17:41:04 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:x-mailer-version :in-reply-to:references; b=xS+/TemROMBLYSPW+r1znvVlYFTJxJM6VMWWnMg33bfQ9MHjwIATiaz3eu9NOUwTvA RfiALrO7FauKZiJgcXr9fX59XY+7b4zILrCVnuT7ydDXhFlmkmB71+3NW57HfOb244Dj bQ4p7xnpeQ+r/GXWB137+T8GSbBPY6U2keFSI= From: Frederic Weisbecker To: Ingo Molnar Cc: LKML , Frederic Weisbecker , Will Deacon , Prasad , Mahesh Salgaonkar , Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo , Paul Mackerras , Jason Wessel Subject: [PATCH 5/7] perf: Don't use 4 bytes as a default instruction breakpoint length Date: Thu, 24 Jun 2010 23:40:56 +0200 Message-Id: <1277415658-10036-6-git-send-regression-fweisbec@gmail.com> X-Mailer: git-send-regression X-Mailer-version: 0.1, "The maintainer couldn't reproduce after one week full time debugging" special version. In-Reply-To: <1277415658-10036-1-git-send-regression-fweisbec@gmail.com> References: <1277415658-10036-1-git-send-regression-fweisbec@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4 bytes is fine as a default access for data breakpoints. But instruction breakpoints should take the native pointer length, otherwise we get a -EINVAL in x86-64. Signed-off-by: Frederic Weisbecker Cc: Will Deacon Cc: Prasad Cc: Mahesh Salgaonkar Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Arnaldo Carvalho de Melo Cc: Paul Mackerras Cc: Jason Wessel --- tools/perf/util/parse-events.c | 11 +++++++++-- 1 files changed, 9 insertions(+), 2 deletions(-) diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index 9bf0f40..4af5bd5 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c @@ -602,8 +602,15 @@ parse_breakpoint_event(const char **strp, struct perf_event_attr *attr) return EVT_FAILED; } - /* We should find a nice way to override the access type */ - attr->bp_len = HW_BREAKPOINT_LEN_4; + /* + * We should find a nice way to override the access length + * Provide some defaults for now + */ + if (attr->bp_type == HW_BREAKPOINT_X) + attr->bp_len = sizeof(long); + else + attr->bp_len = HW_BREAKPOINT_LEN_4; + attr->type = PERF_TYPE_BREAKPOINT; return EVT_HANDLED; -- 1.6.2.3