Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752383AbbHTUCb (ORCPT ); Thu, 20 Aug 2015 16:02:31 -0400 Received: from mail-wi0-f181.google.com ([209.85.212.181]:38668 "EHLO mail-wi0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751576AbbHTUC3 (ORCPT ); Thu, 20 Aug 2015 16:02:29 -0400 MIME-Version: 1.0 In-Reply-To: <20150820111837.GE4640@krava.brq.redhat.com> References: <1439973506-2166-1-git-send-email-eranian@google.com> <1439973506-2166-4-git-send-email-eranian@google.com> <20150820111837.GE4640@krava.brq.redhat.com> Date: Thu, 20 Aug 2015 13:02:28 -0700 Message-ID: Subject: Re: [PATCH v1 3/4] perf record: add ability to name registers to record From: Stephane Eranian To: Jiri Olsa Cc: LKML , Arnaldo Carvalho de Melo , Peter Zijlstra , "mingo@elte.hu" , "ak@linux.intel.com" , Namhyung Kim , "Liang, Kan" , David Ahern , Adrian Hunter Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2360 Lines: 67 On Thu, Aug 20, 2015 at 4:18 AM, Jiri Olsa wrote: > On Wed, Aug 19, 2015 at 10:38:25AM +0200, Stephane Eranian wrote: > > SNIP > >> diff --git a/tools/perf/util/parse-regs-options.c b/tools/perf/util/parse-regs-options.c >> new file mode 100644 >> index 0000000..4f2c1c2 >> --- /dev/null >> +++ b/tools/perf/util/parse-regs-options.c >> @@ -0,0 +1,71 @@ >> +#include "perf.h" >> +#include "util/util.h" >> +#include "util/debug.h" >> +#include "util/parse-options.h" >> +#include "util/parse-regs-options.h" >> + >> +int >> +parse_regs(const struct option *opt, const char *str, int unset) >> +{ >> + uint64_t *mode = (uint64_t *)opt->value; >> + const struct sample_reg *r; >> + char *s, *os = NULL, *p; >> + int ret = -1; >> + >> + if (unset) >> + return 0; >> + >> + /* >> + * cannot set it twice >> + */ >> + if (*mode) >> + return -1; >> + >> + /* str may be NULL in case no arg is passed to -I */ >> + if (str) { >> + /* because str is read-only */ >> + s = os = strdup(str); >> + if (!s) >> + return -1; >> + >> + for (;;) { >> + p = strchr(s, ','); >> + if (p) >> + *p = '\0'; >> + >> + if (!strcmp(s, "?")) { >> + fprintf(stderr, "available registers: "); >> + for (r = sample_reg_masks; r->name; r++) { >> + fprintf(stderr, "%s ", r->name); >> + } >> + fputc('\n', stderr); >> + /* just printing available regs */ >> + return -1; >> + } >> + for (r = sample_reg_masks; r->name; r++) { > > the new 'I' is arch dependent, would this fail to link on > other archs besides x86_64 ? haven't tried though > It should not if there is a weak symbol for the sample_regs_masks[]. I think I forgot to add that. Will do in v2. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/