Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp21623648ybl; Mon, 6 Jan 2020 08:09:16 -0800 (PST) X-Google-Smtp-Source: APXvYqze1QPI+T3xmsZGyX5efEon723YdVSm8wMK0CSYOZQhgjb+fcvgIsUjayrvYfzYvDg67B8L X-Received: by 2002:aca:1c0d:: with SMTP id c13mr5368533oic.44.1578326956557; Mon, 06 Jan 2020 08:09:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1578326956; cv=none; d=google.com; s=arc-20160816; b=YQ2445Aw0Z8HuSuVfu1isBEosLLnibILTLAUWbT6WmIYt6u9as/y0kp66JfR3l5W8X hF7u8/iHRETB+eUhI271cH0NixawT2WZUVCLKEwTXGgFOMWOLWiMuZ0dcmcEoOFVMzV4 4iufY8EfTLnDR8cRi+TLDIbCdpIf2pdqvc5VK2w+XFgudQpSfY/yU0iFMOA4Sd3wjFoT CZjCr7IA901H4HN/EttCmjreORfagnQtdKLwEdnZb5M70Atki7B/K6ypQov+Hqm6znPH iA9/OtQrZfsjwcvl+crA/fv4g+R3mNUwsf3rDadWgHz0scRpWfw5vXFK8wyGkCDIB4XJ cLtQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=aBffHaiW+y3oyJmusn1XmBMHlc5Rk0Y1St5ahXN6YFg=; b=0FFFDkOphTVtnMUMXzcXyS2BlB3habM3fzzxtTC/imoszAdEdL81Nvaa/bMmOjrEmR 2euTLEMeibjpuzeaFYXKjj+S9CGJGrICWKZUhfwQ/hqZaOpSozriuh8H/SsQ0T9geAS/ LcvV0vnJ57Ee32DlqEmaG+/JWPKsv8GeRma5ClDoF7+np75VYTdXrA9w1xCkECVOOclv JCjq5Ch4hDUXc2R45E98bZh5fz70zeztEjM7vCC5lf40SZCel5qt1Cc0JDfQijg9EM++ +q9WLT7OTrRpzyTthECbVa+BOqJZYi59uSIaWXbnfFlkQi47N1+8qp1fKc9vbXgUJ+rt xSFQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=LbhNDcgz; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u188si31665844oia.80.2020.01.06.08.09.04; Mon, 06 Jan 2020 08:09:16 -0800 (PST) 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=LbhNDcgz; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726945AbgAFQH7 (ORCPT + 99 others); Mon, 6 Jan 2020 11:07:59 -0500 Received: from mail.kernel.org ([198.145.29.99]:46026 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727146AbgAFQH4 (ORCPT ); Mon, 6 Jan 2020 11:07:56 -0500 Received: from quaco.ghostprotocols.net (unknown [179.97.35.50]) (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 9D869222D9; Mon, 6 Jan 2020 16:07:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1578326875; bh=RsFoq6B47pcM1adbel5xM5sfPhSs0sqf7VUGEZTg3bo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LbhNDcgzH+VCZGfdY1hCyH6ioFX9FXtxsI2Pe3hP0LNCQnwHccXj5UAuaPbXOCUyu vHfyAtPTrBEtqoZjW58d7Q3JWk76afxwmZV3MB4kSi+JzdtSKdliQvhwtopWjCILvi 00X8i59fE+eqzPbGV0kSl01Wd14P0+aG4V0z6wYY= From: Arnaldo Carvalho de Melo To: Ingo Molnar , Thomas Gleixner Cc: Jiri Olsa , Namhyung Kim , Clark Williams , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Arnaldo Carvalho de Melo , Linus Torvalds , Adrian Hunter , Andi Kleen , Jin Yao , Kan Liang Subject: [PATCH 11/20] perf report/top: Add menu entry for toggling callchain expansion Date: Mon, 6 Jan 2020 13:06:56 -0300 Message-Id: <20200106160705.10899-12-acme@kernel.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200106160705.10899-1-acme@kernel.org> References: <20200106160705.10899-1-acme@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Arnaldo Carvalho de Melo Since previously pressing ENTER toggled expansion/collapse of callchain entries and now brings up the same menu used when callchains are not present, add an entry so that users can quickly figure out the change in behaviour. Its worth mentioning that we also always had 'e'/'c' to expand/collapse all entries in a hist entry and 'E'/'C' for all hist entries. Suggested-by: Linus Torvalds Reviewed-by: Jiri Olsa Cc: Adrian Hunter Cc: Andi Kleen Cc: Jin Yao Cc: Kan Liang Cc: Namhyung Kim Link: https://lkml.kernel.org/n/tip-f9o03jo29fypvd8ly3j49d36@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo --- tools/perf/ui/browsers/hists.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c index fefa505d4fa8..1b5a5990dddb 100644 --- a/tools/perf/ui/browsers/hists.c +++ b/tools/perf/ui/browsers/hists.c @@ -2527,6 +2527,26 @@ add_dso_opt(struct hist_browser *browser, struct popup_action *act, return 1; } +static int do_toggle_callchain(struct hist_browser *browser, struct popup_action *act __maybe_unused) +{ + hist_browser__toggle_fold(browser); + return 0; +} + +static int add_callchain_toggle_opt(struct hist_browser *browser, struct popup_action *act, char **optstr) +{ + struct hist_entry *he = browser->he_selection; + + if (!he->has_children) + return 0; + + if (asprintf(optstr, "Expand/Collapse callchain") < 0) + return 0; + + act->fn = do_toggle_callchain; + return 1; +} + static int do_browse_map(struct hist_browser *browser __maybe_unused, struct popup_action *act) @@ -3137,6 +3157,7 @@ static int perf_evsel__hists_browse(struct evsel *evsel, int nr_events, &options[nr_options], thread); nr_options += add_dso_opt(browser, &actions[nr_options], &options[nr_options], map); + nr_options += add_callchain_toggle_opt(browser, &actions[nr_options], &options[nr_options]); nr_options += add_map_opt(browser, &actions[nr_options], &options[nr_options], browser->selection ? -- 2.21.1