Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp3362552imm; Fri, 20 Jul 2018 15:23:24 -0700 (PDT) X-Google-Smtp-Source: AAOMgpea8RYDrvTXmvRQRNu3Hgi5uIU4fZsvb4a5jdIm1rFeCO5EoLa22u9LjJyavb9Ag0eaP5MP X-Received: by 2002:a17:902:301:: with SMTP id 1-v6mr3644534pld.127.1532125404899; Fri, 20 Jul 2018 15:23:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532125404; cv=none; d=google.com; s=arc-20160816; b=MI6JrvDiTAqKqNtcDnK6uHtWGiFzFJbfZIbScPdcUMTPuuEkRy8HthzqV8pEu5usca mrd4lIVpqsAqoFvUrxSzdBnFa42xVvycTX3PI75WkPujOOnjWaQ21Fsa8uWZ7FKjUjwW heN7UXYko8lhknfPhFpZmqfvRRZ5quUWiXQv9YyzyiQtONlcHLO0V/bPXZRxYIwVV6dG eBgLdgUMDw4VfKdaz0PPiYoh6TuvTVPlhbtt5AIXtIJD4rfQ+fbKDm7uvOkfGX2pUkDX IpU2lN4/p2AG2YJAzJVKZYKABOGGlCf4s7s7xV0f2GFQp9VDXHrFKNE12sgs/SYBXIk6 Od0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=Q6LT1JT9/AC23wv/j/yb4s9egokrPdXmkX3KFr2QR7E=; b=pkpelZfQ19MQkbfhmbuyk6UUhMq9NFchLTfVJvpcVQX+vwQGChVKsfJu7xhuM4gzLL U0Qa8LTklx1dXQ4NhRzbwA+4MnVblDcnzyJHEKdBIF/g8kBbYeumrFtZvcZB+gjsUI60 fiKo6DaRhUzXG+9/Dt6HB65XTY6LM2jIMm1Ao/q1+SPuOtchrdRFrR1xQppmFnj5fbx0 Uc3LYogr2THBSzfHEqjWOXTN4sKLXuVByCAAYcZFVtG9uoB8mvU0Bl2zLaHxKGn9p7Rm 0OF7fAOwnoMm+KRVbo4stkrbKNtfXcPFcp9olfOEd8b7a96xbqTw9X1AnevQFTOK227P ghmA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=wWoO7PMW; 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 w65-v6si2679994pfw.95.2018.07.20.15.23.08; Fri, 20 Jul 2018 15:23:24 -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=@joelfernandes.org header.s=google header.b=wWoO7PMW; 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 S1728747AbeGTXMf (ORCPT + 99 others); Fri, 20 Jul 2018 19:12:35 -0400 Received: from mail-pl0-f68.google.com ([209.85.160.68]:39673 "EHLO mail-pl0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728371AbeGTXMf (ORCPT ); Fri, 20 Jul 2018 19:12:35 -0400 Received: by mail-pl0-f68.google.com with SMTP id m1-v6so741474plt.6 for ; Fri, 20 Jul 2018 15:22:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelfernandes.org; s=google; h=from:to:cc:subject:date:message-id; bh=Q6LT1JT9/AC23wv/j/yb4s9egokrPdXmkX3KFr2QR7E=; b=wWoO7PMWR8BMbgjvOfQylj0DxZAMUbuqAmhcErn2wxUcek62DR6zQQXNUDlAcbua9r sSAlQhJ2SIkB4cddskFS7pjvSt7EAmE+Yzvxtb8/rWTvWoEE6DUdSVsZuuIww5PQDzL1 Nm2An6HGaEYO3jpdIFSCd4do6+4fa6lP/zs1k= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=Q6LT1JT9/AC23wv/j/yb4s9egokrPdXmkX3KFr2QR7E=; b=OvBOVPqxvjLp07EMfHQwy4G3leWRdUKYizUg2qRmt8kkkbg9mhhVydCJU8MVyjBGep 72/UeXJGEIMlPgm1cnDCyqkHNvVmBlL8yCrLLIcWOvVxss6sDLbGDKTEzgzEiWLOQwlv nS6WkSn1IRPJvKSCznc/bwfHQUSjUPF6Ql9W/qCuK9h1ZSsAMmM4/Xl7hV0ri3xqVXBB 8uh5Gp8Qoj/SnG/u+pJ9zRYqs21AMoUO0OW38xuy/opqP3HPv0Nze2R3rdRiu/2+F4pO HNO/HjEdcVr4JdgT540J12D4gyaYBWthSbn8EyVoapyLDx61R6vVrw1rEC/TdE6XTljG StMw== X-Gm-Message-State: AOUpUlGi1pWJqIUNeF7Nyh86GjlDcgQ3fc1rltchb2AHHL37kRqlo5+B /5zPKOQ6M5VIiI5sfSOsZNZ9UFvnHZQ= X-Received: by 2002:a17:902:5381:: with SMTP id c1-v6mr3627149pli.137.1532125338871; Fri, 20 Jul 2018 15:22:18 -0700 (PDT) Received: from joelaf.mtv.corp.google.com ([2620:0:1000:1600:3122:ea9c:d178:eb]) by smtp.gmail.com with ESMTPSA id b62-v6sm9135812pfm.97.2018.07.20.15.22.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 20 Jul 2018 15:22:18 -0700 (PDT) From: Joel Fernandes To: linux-kernel@vger.kernel.org Cc: kernel-team@android.com, Ruchi Kandoi , Joel Fernandes , Ingo Molnar , Jonathan Corbet , linux-doc@vger.kernel.org, linux-pm@vger.kernel.org, "Rafael J. Wysocki" , Steven Rostedt , Viresh Kumar Subject: [PATCH v2] cpufreq: trace frequency limits change Date: Fri, 20 Jul 2018 15:21:14 -0700 Message-Id: <20180720222114.200311-1-joel@joelfernandes.org> X-Mailer: git-send-email 2.18.0.233.g985f88cf7e-goog Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ruchi Kandoi systrace used for tracing for Android systems has carried a patch for many years in the Android tree that traces when the cpufreq limits change. With the help of this information, systrace can know when the policy limits change and can visually display the data. Lets add upstream support for the same. Signed-off-by: Ruchi Kandoi Signed-off-by: Joel Fernandes (Google) --- v1->v2: Minor changes suggested by Viresh Documentation/trace/events-power.rst | 1 + drivers/cpufreq/cpufreq.c | 1 + include/trace/events/power.h | 25 +++++++++++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/Documentation/trace/events-power.rst b/Documentation/trace/events-power.rst index a77daca75e30..2ef318962e29 100644 --- a/Documentation/trace/events-power.rst +++ b/Documentation/trace/events-power.rst @@ -27,6 +27,7 @@ cpufreq. cpu_idle "state=%lu cpu_id=%lu" cpu_frequency "state=%lu cpu_id=%lu" + cpu_frequency_limits "min=%lu max=%lu cpu_id=%lu" A suspend event is used to indicate the system going in and out of the suspend mode: diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index b0dfd3222013..4fd935df101e 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -2236,6 +2236,7 @@ static int cpufreq_set_policy(struct cpufreq_policy *policy, policy->min = new_policy->min; policy->max = new_policy->max; + trace_cpu_frequency_limits(policy->min, policy->max, policy->cpu); policy->cached_target_freq = UINT_MAX; diff --git a/include/trace/events/power.h b/include/trace/events/power.h index 908977d69783..f5bec45108b6 100644 --- a/include/trace/events/power.h +++ b/include/trace/events/power.h @@ -148,6 +148,31 @@ DEFINE_EVENT(cpu, cpu_frequency, TP_ARGS(frequency, cpu_id) ); +TRACE_EVENT(cpu_frequency_limits, + + TP_PROTO(unsigned int min_freq, unsigned int max_freq, + unsigned int cpu_id), + + TP_ARGS(min_freq, max_freq, cpu_id), + + TP_STRUCT__entry( + __field(u32, min_freq) + __field(u32, max_freq) + __field(u32, cpu_id) + ), + + TP_fast_assign( + __entry->min_freq = min_freq; + __entry->max_freq = max_freq; + __entry->cpu_id = cpu_id; + ), + + TP_printk("min=%lu max=%lu cpu_id=%lu", + (unsigned long)__entry->min_freq, + (unsigned long)__entry->max_freq, + (unsigned long)__entry->cpu_id) +); + TRACE_EVENT(device_pm_callback_start, TP_PROTO(struct device *dev, const char *pm_ops, int event), -- 2.18.0.233.g985f88cf7e-goog