Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1004462yba; Thu, 4 Apr 2019 02:12:35 -0700 (PDT) X-Google-Smtp-Source: APXvYqzt6RRmnQiNJ8xZwoy/hqIg5LZ0TarCszg/synMQduU4I602zxfSsOkqQS97J0VG0R0uR0o X-Received: by 2002:a63:c118:: with SMTP id w24mr4500348pgf.67.1554369155356; Thu, 04 Apr 2019 02:12:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554369155; cv=none; d=google.com; s=arc-20160816; b=lQVBOo5t0IKKukLUhPje/nV/tECwQXbcKwP6QBLUbpPlIMBIKImkgIhFmKHJgYSZOV bDHJ/qNiJh3wWSPenpz0sMM2lTvnulnNGFw7bDpuO+RVsbGi5c9Fz5Nhw1CUPpzkd5dQ BbZXEasl8EnMcIuqs5XkB91kP90hqgLvWebB7sfJCTOZE1i7g/QTZEhexnVEa7cl5pLS IPURi0dNuX5pndfH6YlKJFIoZF0owuH/IPSsWDurkhb/XIHKpzM3aUSQwqqEPtnTxGXt +VORUpegtINsKj/yJmN1FpZ/FuDTaIvT32YkLrJnIrDHG2UyHyJppJCz6/WinfLOVqwj cdKw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=7tzjWTJ6p23tfWCMxH4mc+zzsTjkkAIqMoUJtSzhVl4=; b=N1HDqdZoLpHlEYm/LDN9I8RAXEXSpdHYSWuzBgFhus+tv3juuhInTizyCPgZxj3bDt joB8saogakCX3bz2dUiBGnn9aJ8GvVIhiQfieCq5DmUqZykIkFGRCvMYp437kzbEgJSp 03lhXTpeUhCIsGyqb4e2DAkyRU68hA1PvQcaJbYkypjhjGY2BlM6uhhe9U9HYQKMDLiu L1ZYsP60A1AAe26AMrQWO+K3xUZdp6Fo8JRB5DJC43RaKRccyo2YA3o3tvNtaPukI3Nn UTVA8m7jyJ/pi0nY3GtN47zDYQKu5VzjqpzjXF2UFkk4fPedrOI8+3MT0kNqxdu6/bqM f8Xg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=X7FrY2vj; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b4si15998509pfj.16.2019.04.04.02.12.19; Thu, 04 Apr 2019 02:12:35 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=X7FrY2vj; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733197AbfDDJLl (ORCPT + 99 others); Thu, 4 Apr 2019 05:11:41 -0400 Received: from mail.kernel.org ([198.145.29.99]:51568 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732770AbfDDJLi (ORCPT ); Thu, 4 Apr 2019 05:11:38 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 00DF32075E; Thu, 4 Apr 2019 09:11:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1554369097; bh=ofrA8/WjGNggrwk2Ws/G6mDUgwTiuX1bav/sO/TwqCo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=X7FrY2vjYVmhVkFZWbJbgtJ3fSyp+eStfw6ILZN4GymrN+le0gXFDBlV24LEVPv8U AZ3mkGxFlQu9Eh7NvUsiGgdMWDtCMI31t9Kh5/eNUUWNnYOhdtUPOyqn2bom2YKWB2 lPNSSZJKVdholN6Smrz2jXqb/UGOxuxfiKjJoCnw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Andi Kleen , Arnaldo Carvalho de Melo , Jiri Olsa , Namhyung Kim , Stephane Eranian , Sasha Levin Subject: [PATCH 5.0 083/246] perf script: Handle missing fields with -F +.. Date: Thu, 4 Apr 2019 10:46:23 +0200 Message-Id: <20190404084622.040868337@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190404084619.236418459@linuxfoundation.org> References: <20190404084619.236418459@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 5.0-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit 4b6ac811bce46c83811b83cdf87b41251596b9fc ] When using -F + syntax to add a field the existing defaults are currently all marked user_set. This can cause errors when some field is missing in the perf.data This patch tracks the actually user set fields separately, so that we don't error out in this case. Before: % perf record true % perf script -F +metric Samples for 'cycles:ppp' event do not have CPU attribute set. Cannot print 'cpu' field. % After: 5 perf record true % perf script -F +metric perf 28936 278636.237688: 1 cycles:ppp: ffffffff8117da99 perf_event_exec+0x59 (/lib/modules/4.20.0-odilo/build/vmlinux) ... % Signed-off-by: Andi Kleen Tested-by: Arnaldo Carvalho de Melo Acked-by: Jiri Olsa Cc: Jiri Olsa Cc: Namhyung Kim Cc: Stephane Eranian Link: http://lkml.kernel.org/r/20190224153722.27020-2-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Sasha Levin --- tools/perf/builtin-script.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index ac221f137ed2..cff4d10daf49 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c @@ -148,6 +148,7 @@ static struct { unsigned int print_ip_opts; u64 fields; u64 invalid_fields; + u64 user_set_fields; } output[OUTPUT_TYPE_MAX] = { [PERF_TYPE_HARDWARE] = { @@ -344,7 +345,7 @@ static int perf_evsel__do_check_stype(struct perf_evsel *evsel, if (attr->sample_type & sample_type) return 0; - if (output[type].user_set) { + if (output[type].user_set_fields & field) { if (allow_user_set) return 0; evname = perf_evsel__name(evsel); @@ -2627,10 +2628,13 @@ parse: pr_warning("\'%s\' not valid for %s events. Ignoring.\n", all_output_options[i].str, event_type(j)); } else { - if (change == REMOVE) + if (change == REMOVE) { output[j].fields &= ~all_output_options[i].field; - else + output[j].user_set_fields &= ~all_output_options[i].field; + } else { output[j].fields |= all_output_options[i].field; + output[j].user_set_fields |= all_output_options[i].field; + } output[j].user_set = true; output[j].wildcard_set = true; } -- 2.19.1