All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lina Iyer <ilina@codeaurora.org>
To: Evan Green <evgreen@chromium.org>
Cc: Andy Gross <andy.gross@linaro.org>,
	David Brown <david.brown@linaro.org>,
	linux-arm-msm@vger.kernel.org, linux-soc@vger.kernel.org,
	Rajendra Nayak <rnayak@codeaurora.org>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 07/10] drivers: qcom: rpmh: cache sleep/wake state requests
Date: Tue, 6 Mar 2018 15:12:38 -0700	[thread overview]
Message-ID: <20180306221238.GG4930@codeaurora.org> (raw)
In-Reply-To: <CAE=gft59Jkb+X0fOcdEZN_8moUPvptZ-xuQaX1mg-VxBzHrSXw@mail.gmail.com>

On Mon, Mar 05 2018 at 13:45 -0700, Evan Green wrote:
>Hi Lina,
>
>On Fri, Mar 2, 2018 at 8:43 AM, Lina Iyer <ilina@codeaurora.org> wrote:
>> Active state requests are sent immediately to the mailbox controller,
>> while sleep and wake state requests are cached in this driver to avoid
>> taxing the mailbox controller repeatedly. The cached values will be sent
>> to the controller when the rpmh_flush() is called.
>>
>> Generally, flushing is a system PM activity and may be called from the
>> system PM drivers when the system is entering suspend or deeper sleep
>> modes during cpuidle.
>>
>> Also allow invalidating the cached requests, so they may be re-populated
>> again.
>>
>> Signed-off-by: Lina Iyer <ilina@codeaurora.org>
>> ---
>>
>> Changes in v3:
>>         - Remove locking for flush function
>>         - Improve comments
>> ---
>>  drivers/soc/qcom/rpmh.c | 208 +++++++++++++++++++++++++++++++++++++++++++++++-
>>  include/soc/qcom/rpmh.h |  10 +++
>>  2 files changed, 217 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/soc/qcom/rpmh.c b/drivers/soc/qcom/rpmh.c
>> index d95ea3fa8b67..8a04009075b8 100644
>> --- a/drivers/soc/qcom/rpmh.c
>> +++ b/drivers/soc/qcom/rpmh.c
>[...]
>> +
>> +/**
>> + * rpmh_invalidate: Invalidate all sleep and active sets
>> + * sets.
>> + *
>> + * @rc: The RPMh handle got from rpmh_get_dev_channel
>> + *
>> + * Invalidate the sleep and active values in the TCS blocks.
>> + */
>> +int rpmh_invalidate(struct rpmh_client *rc)
>> +{
>> +       struct rpmh_ctrlr *rpm = rc->ctrlr;
>> +       int ret;
>> +       unsigned long flags;
>> +
>> +       if (IS_ERR_OR_NULL(rc))
>> +               return -EINVAL;
>> +
>> +       spin_lock_irqsave(&rpm->lock, flags);
>> +       rpm->dirty = true;
>> +       spin_unlock_irqrestore(&rpm->lock, flags);
>
>Thanks for removing the locking from the flush path. I was hoping to
>see the locking removed around this statement as well. The way I
>understand it, all of the racy bits are attempting to set dirty to
>true, so you don't need a lock to protect multiple threads from
>setting the same value. The only time dirty is read or cleared is in
>the single-threaded PM path, so there are no potentially dangerous
>interactions.
>
Fair point. Will take care of it.

>If no one has any other comments on the series, then I don't need to
>hold everything up based on this one tweak alone. But if you end up
>spinning it again for other reasons, consider making this change as
>well.
>
Thanks,
Lina

  reply	other threads:[~2018-03-06 22:12 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-02 16:43 [PATCH v3 00/10] drivers/qcom: add RPMH communication support Lina Iyer
2018-03-02 16:43 ` [PATCH v3 01/10] drivers: qcom: rpmh-rsc: add RPMH controller for QCOM SoCs Lina Iyer
2018-03-06 19:45   ` Stephen Boyd
2018-03-06 19:45     ` Stephen Boyd
2018-03-09 21:33     ` Lina Iyer
2018-03-09 21:37       ` Stephen Boyd
2018-03-02 16:43 ` [PATCH v3 02/10] dt-bindings: introduce RPMH RSC bindings for Qualcomm SoCs Lina Iyer
2018-03-06 22:30   ` Stephen Boyd
2018-03-06 22:30     ` Stephen Boyd
2018-03-07 20:54     ` Lina Iyer
2018-03-02 16:43 ` [PATCH v3 03/10] drivers: qcom: rpmh-rsc: log RPMH requests in FTRACE Lina Iyer
2018-03-06  5:38   ` kbuild test robot
2018-03-06  5:38     ` kbuild test robot
2018-03-06 21:47     ` Steven Rostedt
2018-03-06 21:56       ` Lina Iyer
2018-03-06 22:05         ` Lina Iyer
2018-03-06 22:34           ` Steven Rostedt
2018-03-02 16:43 ` [PATCH v3 04/10] drivers: qcom: rpmh: add RPMH helper functions Lina Iyer
2018-03-08 18:57   ` Stephen Boyd
2018-03-08 18:57     ` Stephen Boyd
2018-03-08 21:37     ` Lina Iyer
2018-03-02 16:43 ` [PATCH v3 05/10] drivers: qcom: rpmh-rsc: write sleep/wake requests to TCS Lina Iyer
2018-03-08 19:41   ` Stephen Boyd
2018-03-08 19:41     ` Stephen Boyd
2018-03-08 23:58     ` Lina Iyer
2018-03-09 15:45       ` Lina Iyer
2018-03-02 16:43 ` [PATCH v3 06/10] drivers: qcom: rpmh-rsc: allow invalidation of sleep/wake TCS Lina Iyer
2018-03-08 20:40   ` Stephen Boyd
2018-03-08 20:40     ` Stephen Boyd
2018-03-09 16:41     ` Lina Iyer
2018-03-02 16:43 ` [PATCH v3 07/10] drivers: qcom: rpmh: cache sleep/wake state requests Lina Iyer
2018-03-05 20:44   ` Evan Green
2018-03-06 22:12     ` Lina Iyer [this message]
2018-03-02 16:43 ` [PATCH v3 08/10] drivers: qcom: rpmh: allow requests to be sent asynchronously Lina Iyer
2018-03-08 21:06   ` Stephen Boyd
2018-03-08 21:06     ` Stephen Boyd
2018-03-02 16:43 ` [PATCH v3 09/10] drivers: qcom: rpmh: add support for batch RPMH request Lina Iyer
2018-03-08 21:59   ` Stephen Boyd
2018-03-08 21:59     ` Stephen Boyd
2018-03-08 22:55     ` Lina Iyer
2018-03-16 17:00       ` Stephen Boyd
2018-03-26 15:30         ` Lina Iyer
2018-03-02 16:43 ` [PATCH v3 10/10] drivers: qcom: rpmh-rsc: allow active requests from wake TCS Lina Iyer
2018-03-08 20:47   ` Stephen Boyd
2018-03-08 20:47     ` Stephen Boyd

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=20180306221238.GG4930@codeaurora.org \
    --to=ilina@codeaurora.org \
    --cc=andy.gross@linaro.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=david.brown@linaro.org \
    --cc=evgreen@chromium.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-soc@vger.kernel.org \
    --cc=rnayak@codeaurora.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.