linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Saravana Kannan <skannan@codeaurora.org>
To: Mark Rutland <mark.rutland@arm.com>
Cc: Suzuki K Poulose <Suzuki.Poulose@arm.com>,
	will.deacon@arm.com, robh@kernel.org, sudeep.holla@arm.com,
	mathieu.poirier@linaro.org, peterz@infradead.org,
	jonathan.cameron@huawei.com, linux-kernel@vger.kernel.org,
	marc.zyngier@arm.com, leo.yan@linaro.org, frowand.list@gmail.com,
	linux-arm-kernel@lists.infradead.org, rananta@codeaurora.org,
	avilaj@codeaurora.org,
	Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>,
	Charles Garcia-Tobin <Charles.Garcia-Tobin@arm.com>
Subject: Re: [PATCH v11 8/8] perf: ARM DynamIQ Shared Unit PMU support
Date: Fri, 09 Mar 2018 14:49:00 -0800	[thread overview]
Message-ID: <5AA30F5C.2010402@codeaurora.org> (raw)
In-Reply-To: <20180309133531.fepm2suvdmvm4muv@lakrids.cambridge.arm.com>

On 03/09/2018 05:35 AM, Mark Rutland wrote:
> On Fri, Mar 09, 2018 at 10:53:14AM +0000, Suzuki K Poulose wrote:
>> + Cc: Lorenzo, Charles.
>>
>> On 08/03/18 23:59, Saravana Kannan wrote:
>>> On 01/02/2018 03:25 AM, Suzuki K Poulose wrote:
>>>> Add support for the Cluster PMU part of the ARM DynamIQ Shared Unit (DSU).
>>>> The DSU integrates one or more cores with an L3 memory system, control
>>>> logic, and external interfaces to form a multicore cluster. The PMU
>>>> allows counting the various events related to L3, SCU etc, along with
>>>> providing a cycle counter.
>>>>
>>>> The PMU can be accessed via system registers, which are common
>>>> to the cores in the same cluster. The PMU registers follow the
>>>> semantics of the ARMv8 PMU, mostly, with the exception that
>>>> the counters record the cluster wide events.
>>>>
>>>> This driver is mostly based on the ARMv8 and CCI PMU drivers.
>>>> The driver only supports ARM64 at the moment. It can be extended
>>>> to support ARM32 by providing register accessors like we do in
>>>> arch/arm64/include/arm_dsu_pmu.h.
>>>>
>>>> Cc: Mark Rutland <mark.rutland@arm.com>
>>>> Cc: Will Deacon <will.deacon@arm.com>
>>>> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
>>>> Reviewed-by: Mark Rutland <mark.rutland@arm.com>
>>>> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
>>
>> [...]
>>
>>>
>>> Looking at the code, I didn't see any specific handling of cluster power collapse. AFAIK, the HW counters do not retain config (what event they are counting) or value (the current count) across power collapse. Wouldn't you need to register for some kind of PM_ENTER/EXIT notifiers to handle that?
>>
>> Good point, yes *somebody* needs to save-restore the registers. But who ? As far
>> as the kernel is concerned, it doesn't control the DSU states. Also, as of now
>> there is no reliable way to get the "ENTER/EXIT" notifications for the DSU power
>> domain state changes. All we do is use the PMU, assuming it is available. AFAIT,
>> it should really be done at EL3, which manages the DSU, but may be I am wrong.
>
> Given this can happen behind the back of the kernel, if FW doesn't
> save/restore this state, we'll have to inhibit cpuidle on a CPU
> associated with the DSU PMU whenever it has active events, which would
> keep the cluster online.
>

Using PMUs should be designed to have the least impact on 
power/performance. Otherwise, using them to profile and debug issues 
becomes impossible. Disabling cpuidle would significantly affect power 
and performance.

Why not use CPU_CLUSTER_PM_ENTER similar to how arm-pmu.c uses 
CPU_PM_ENTER for saving and restoring the counters? Technically a lot of 
stuff could be pushed to FW. Doesn't mean we should. At worst, we'll 
save and restore for a few cases where we didn't need to.

Thanks,
Saravana

-- 
Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

  reply	other threads:[~2018-03-09 22:49 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-02 11:25 [PATCH v11 0/8] perf: Support for ARM DynamIQ Shared Unit Suzuki K Poulose
2018-01-02 11:25 ` [PATCH v11 1/8] perf: Export perf_event_update_userpage Suzuki K Poulose
2018-01-02 11:25 ` [PATCH v11 2/8] of: Add helper for mapping device node to logical CPU number Suzuki K Poulose
2018-01-02 11:25 ` [PATCH v11 3/8] coresight: of: Use of_cpu_node_to_id helper Suzuki K Poulose
2018-01-02 11:25 ` [PATCH v11 4/8] irqchip: gic-v3: " Suzuki K Poulose
2018-01-02 11:25 ` [PATCH v11 5/8] arm64: Use of_cpu_node_to_id helper for CPU topology parsing Suzuki K Poulose
2018-01-02 11:25 ` [PATCH v11 6/8] arm_pmu: Use of_cpu_node_to_id helper Suzuki K Poulose
2018-01-02 11:25 ` [PATCH v11 7/8] dt-bindings: Document devicetree binding for ARM DSU PMU Suzuki K Poulose
2018-01-02 11:25 ` [PATCH v11 8/8] perf: ARM DynamIQ Shared Unit PMU support Suzuki K Poulose
2018-02-22  2:32   ` Saravana Kannan
2018-02-22 11:33     ` Mark Rutland
2018-02-22 20:38       ` Saravana Kannan
2018-02-23 11:35         ` Mark Rutland
2018-02-23 21:46           ` Saravana Kannan
2018-02-24  0:53   ` Saravana Kannan
2018-02-25 14:36     ` Mark Rutland
2018-02-28 22:17       ` Saravana Kannan
2018-03-01 11:49         ` Mark Rutland
2018-03-01 20:35           ` Saravana Kannan
2018-03-02 10:42             ` Mark Rutland
2018-03-02 19:19               ` Saravana Kannan
2018-03-05 10:59                 ` Mark Rutland
2018-03-05 22:10                   ` Saravana Kannan
2018-03-07 14:59                     ` Suzuki K Poulose
2018-03-07 21:36                       ` Saravana Kannan
2018-03-19  9:50                         ` Suzuki K Poulose
2018-03-08 11:42                     ` Mark Rutland
2018-03-08 23:59   ` Saravana Kannan
2018-03-09 10:53     ` Suzuki K Poulose
2018-03-09 13:35       ` Mark Rutland
2018-03-09 22:49         ` Saravana Kannan [this message]
2018-03-10 15:45           ` Mark Rutland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5AA30F5C.2010402@codeaurora.org \
    --to=skannan@codeaurora.org \
    --cc=Charles.Garcia-Tobin@arm.com \
    --cc=Lorenzo.Pieralisi@arm.com \
    --cc=Suzuki.Poulose@arm.com \
    --cc=avilaj@codeaurora.org \
    --cc=frowand.list@gmail.com \
    --cc=jonathan.cameron@huawei.com \
    --cc=leo.yan@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marc.zyngier@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=mathieu.poirier@linaro.org \
    --cc=peterz@infradead.org \
    --cc=rananta@codeaurora.org \
    --cc=robh@kernel.org \
    --cc=sudeep.holla@arm.com \
    --cc=will.deacon@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).