Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp7236739imm; Tue, 24 Jul 2018 10:37:18 -0700 (PDT) X-Google-Smtp-Source: AAOMgpf68hadJPQWKxkMFAcvztrAlDMJY83ObEslfkrYDSBeGY9XL1Z1ZERLrr8lXMs1eKibV4vM X-Received: by 2002:a62:d98f:: with SMTP id b15-v6mr18588966pfl.1.1532453838190; Tue, 24 Jul 2018 10:37:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532453838; cv=none; d=google.com; s=arc-20160816; b=KC38/17xiwMYIXPqjTPn4CPesuNfwVOTwIfLIPI7e8vJ0MA9cwUZjBjP6prn4zsDgp Z7/9s7D1km32Y4Ti/hkRITBGKFjsQ9ArMxTB8cmOSP8ekjO35xP+U0iEnGCvSiN6vJx+ VUyyMr58p99U/sDRY4HT0/SGOTRdcBU0ySyFD2E1xGkS60OKxKjNNes0J+ImBrXCbDtr 5ToOIT7dRmI++lmHjqEQhymf1T8DYDNNMoJ9VGvKajZ8xa5vual4N2JE9vP6eufgmMsJ LAL5AZ7LD1t5iFBaa4h8m/5qFFvY6ACYwBPV1MAJv+uDUSeKX9zN2vhpAHniM+y8eiAx pj+g== 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=drQgHff0Z7JTZYtCB2EFIHygtH5rcojdmre/pe07yT0=; b=yDyHtNun0rT1az8Z17YAR54wtZPMJIWRovaGSDJuizHLcCXSypAoLXPke1cnip+2F+ rqH5Z44f4wmSlw8QrfgYKCZKr1Q7no4lFC0yeXuHITNfBqLWGH3tKXQtTYvqP8+1MczZ MJ7b5c8F13pGIQcaWWn32lZ9bKaMLalSfitfHLECaaeVjKlVErE4q5sEgPRUSQw1VdTz EeUYU6wvzrsbqZd4P40EZXu/B6lGMH+PzcwTcB5tdPRpeZzTaeNb8Ui2sn/JOpm37Mbe 0KWucFgoK6xET4jJS0uWrJQcA3JX1WVWtR1whIYK4eTJfZLR1H4pt/lbVNgjodBF2Lfs NvMA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=keKfup2u; 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 t24-v6si11907053pgm.106.2018.07.24.10.37.03; Tue, 24 Jul 2018 10:37:18 -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=keKfup2u; 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 S2388474AbeGXSnf (ORCPT + 99 others); Tue, 24 Jul 2018 14:43:35 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:33768 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388434AbeGXSnf (ORCPT ); Tue, 24 Jul 2018 14:43:35 -0400 Received: by mail-pg1-f195.google.com with SMTP id r5-v6so3387423pgv.0 for ; Tue, 24 Jul 2018 10:36:02 -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=drQgHff0Z7JTZYtCB2EFIHygtH5rcojdmre/pe07yT0=; b=keKfup2uinI29UnVDia9wxrDXzyc5E9b1ejjK4AAUOHcfmeUKFYZLZ4TZF4FQQzBFF D4OisbPiML/UnZamBt0mU5EcOjwygfuVsC93YpQIa6wYQ9gQGWDGgfOK8XGnPCiTw/B+ n8etUDrT7fEYccI8xcVV4sKloKauaK5hC7sls= 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=drQgHff0Z7JTZYtCB2EFIHygtH5rcojdmre/pe07yT0=; b=uCGcFZ6WH3lyowJzcmjzpwZq6rBQfyb7mMMNjQ4/+OZ9Uy3miVsxJzxFlUFlv7FbG3 QF+HZpD6ByHbQAg8R9C5qiRTCMqCCQB+BgVeWP9YxDPS5pvWmvRt70y1exTWXK9yn1rV 2qR/FM/NKAzZ2HCJsopVmWryOiSjBJyRrAa5Nsn/xukUMOHzgAiN1HYmD9aNRCL90Wej dyBhlf+Jhm2FAlFQnmc7FO1Lv7VWGDur2zGcL6rX7c/SmdFlWxjcE/ycrNX/bP+uZDCu 8HmDzUV3TRNP4NkRLOfJy8DwVRg8kCxfG4mkpq6O/HIW9qeehS70tReKkFZQ68NSLduB UVjQ== X-Gm-Message-State: AOUpUlGgQB+oYi5N5RpNaPZ4uFqIG32f/e0uwExRmqKpdbEntij/cBM1 mrAdlG+LlQvFw5Ly1ZGsJEsakVYdoks= X-Received: by 2002:a62:6b44:: with SMTP id g65-v6mr18582910pfc.226.1532453762429; Tue, 24 Jul 2018 10:36:02 -0700 (PDT) Received: from joelaf.mtv.corp.google.com ([2620:0:1000:1600:3122:ea9c:d178:eb]) by smtp.gmail.com with ESMTPSA id h10-v6sm23151306pfj.78.2018.07.24.10.36.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 24 Jul 2018 10:36:01 -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 v3] cpufreq: trace frequency limits change Date: Tue, 24 Jul 2018 10:35:44 -0700 Message-Id: <20180724173544.18876-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) --- Viresh since I changed the patch, could you Ack it again? v2->v3: reduce parameters to tracepoint call (Steve) v1->v2: correct ordering of min/max (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..52566f1f1050 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); policy->cached_target_freq = UINT_MAX; diff --git a/include/trace/events/power.h b/include/trace/events/power.h index 908977d69783..f7aece721aed 100644 --- a/include/trace/events/power.h +++ b/include/trace/events/power.h @@ -5,6 +5,7 @@ #if !defined(_TRACE_POWER_H) || defined(TRACE_HEADER_MULTI_READ) #define _TRACE_POWER_H +#include #include #include #include @@ -148,6 +149,30 @@ DEFINE_EVENT(cpu, cpu_frequency, TP_ARGS(frequency, cpu_id) ); +TRACE_EVENT(cpu_frequency_limits, + + TP_PROTO(struct cpufreq_policy *policy), + + TP_ARGS(policy), + + TP_STRUCT__entry( + __field(u32, min_freq) + __field(u32, max_freq) + __field(u32, cpu_id) + ), + + TP_fast_assign( + __entry->min_freq = policy->min; + __entry->max_freq = policy->max; + __entry->cpu_id = policy->cpu; + ), + + 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