All of lore.kernel.org
 help / color / mirror / Atom feed
From: Palmer Dabbelt <palmer@dabbelt.com>
To: anup@brainfault.org
Cc: rafael@kernel.org, daniel.lezcano@linaro.org,
	Paul Walmsley <paul.walmsley@sifive.com>,
	ulf.hansson@linaro.org, atishp@atishpatra.org,
	Alistair Francis <Alistair.Francis@wdc.com>,
	linux-pm@vger.kernel.org, linux-riscv@lists.infradead.org,
	linux-kernel@vger.kernel.org, apatel@ventanamicro.com
Subject: Re: [PATCH] cpuidle: riscv-sbi: Fix CPU_PM_CPU_IDLE_ENTER_xyz() macro usage
Date: Fri, 23 Sep 2022 03:55:45 -0700 (PDT)	[thread overview]
Message-ID: <mhng-3a58df40-d19a-41ee-8b51-bbde9ba8d00c@palmer-ri-x1c9> (raw)
In-Reply-To: <mhng-0486175c-f1e8-4879-9545-2ccbbc427de9@palmer-ri-x1c9>

On Thu, 22 Sep 2022 10:07:46 PDT (-0700), Palmer Dabbelt wrote:
> On Sun, 28 Aug 2022 19:59:45 PDT (-0700), anup@brainfault.org wrote:
>> Hi Palmer,
>>
>> On Mon, Jul 18, 2022 at 2:16 PM Anup Patel <apatel@ventanamicro.com> wrote:
>>>
>>> Currently, we are using CPU_PM_CPU_IDLE_ENTER_PARAM() for all SBI HSM
>>> suspend types so retentive suspend types are also treated non-retentive
>>> and kernel will do redundant additional work for these states.
>>>
>>> The BIT[31] of SBI HSM suspend types allows us to differentiate between
>>> retentive and non-retentive suspend types so we should use this BIT
>>> to call appropriate CPU_PM_CPU_IDLE_ENTER_xyz() macro.
>>>
>>> Fixes: 6abf32f1d9c5 ("cpuidle: Add RISC-V SBI CPU idle driver")
>>> Signed-off-by: Anup Patel <apatel@ventanamicro.com>
>>
>> Can you please take this patch through the RISC-V tree ?
>
> Sorry I missed this, I didn't realize you wanted me to merge it.  It's
> on fixes.

Actually from reading this again, it's not really a fix: the kernel is 
correct without this change, it's just going to save/restore when it 
doesn't need to.  So I'm queuing this into for-next instead.

>
>>
>> Regards,
>> Anup
>>
>>> ---
>>>  drivers/cpuidle/cpuidle-riscv-sbi.c | 7 ++++++-
>>>  1 file changed, 6 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/cpuidle/cpuidle-riscv-sbi.c b/drivers/cpuidle/cpuidle-riscv-sbi.c
>>> index 1151e5e2ba82..33c92fec4365 100644
>>> --- a/drivers/cpuidle/cpuidle-riscv-sbi.c
>>> +++ b/drivers/cpuidle/cpuidle-riscv-sbi.c
>>> @@ -97,8 +97,13 @@ static int sbi_cpuidle_enter_state(struct cpuidle_device *dev,
>>>                                    struct cpuidle_driver *drv, int idx)
>>>  {
>>>         u32 *states = __this_cpu_read(sbi_cpuidle_data.states);
>>> +       u32 state = states[idx];
>>>
>>> -       return CPU_PM_CPU_IDLE_ENTER_PARAM(sbi_suspend, idx, states[idx]);
>>> +       if (state & SBI_HSM_SUSP_NON_RET_BIT)
>>> +               return CPU_PM_CPU_IDLE_ENTER_PARAM(sbi_suspend, idx, state);
>>> +       else
>>> +               return CPU_PM_CPU_IDLE_ENTER_RETENTION_PARAM(sbi_suspend,
>>> +                                                            idx, state);
>>>  }
>>>
>>>  static int __sbi_enter_domain_idle_state(struct cpuidle_device *dev,
>>> --
>>> 2.34.1
>>>

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

WARNING: multiple messages have this Message-ID (diff)
From: Palmer Dabbelt <palmer@dabbelt.com>
To: anup@brainfault.org
Cc: rafael@kernel.org, daniel.lezcano@linaro.org,
	Paul Walmsley <paul.walmsley@sifive.com>,
	ulf.hansson@linaro.org, atishp@atishpatra.org,
	Alistair Francis <Alistair.Francis@wdc.com>,
	linux-pm@vger.kernel.org, linux-riscv@lists.infradead.org,
	linux-kernel@vger.kernel.org, apatel@ventanamicro.com
Subject: Re: [PATCH] cpuidle: riscv-sbi: Fix CPU_PM_CPU_IDLE_ENTER_xyz() macro usage
Date: Fri, 23 Sep 2022 03:55:45 -0700 (PDT)	[thread overview]
Message-ID: <mhng-3a58df40-d19a-41ee-8b51-bbde9ba8d00c@palmer-ri-x1c9> (raw)
In-Reply-To: <mhng-0486175c-f1e8-4879-9545-2ccbbc427de9@palmer-ri-x1c9>

On Thu, 22 Sep 2022 10:07:46 PDT (-0700), Palmer Dabbelt wrote:
> On Sun, 28 Aug 2022 19:59:45 PDT (-0700), anup@brainfault.org wrote:
>> Hi Palmer,
>>
>> On Mon, Jul 18, 2022 at 2:16 PM Anup Patel <apatel@ventanamicro.com> wrote:
>>>
>>> Currently, we are using CPU_PM_CPU_IDLE_ENTER_PARAM() for all SBI HSM
>>> suspend types so retentive suspend types are also treated non-retentive
>>> and kernel will do redundant additional work for these states.
>>>
>>> The BIT[31] of SBI HSM suspend types allows us to differentiate between
>>> retentive and non-retentive suspend types so we should use this BIT
>>> to call appropriate CPU_PM_CPU_IDLE_ENTER_xyz() macro.
>>>
>>> Fixes: 6abf32f1d9c5 ("cpuidle: Add RISC-V SBI CPU idle driver")
>>> Signed-off-by: Anup Patel <apatel@ventanamicro.com>
>>
>> Can you please take this patch through the RISC-V tree ?
>
> Sorry I missed this, I didn't realize you wanted me to merge it.  It's
> on fixes.

Actually from reading this again, it's not really a fix: the kernel is 
correct without this change, it's just going to save/restore when it 
doesn't need to.  So I'm queuing this into for-next instead.

>
>>
>> Regards,
>> Anup
>>
>>> ---
>>>  drivers/cpuidle/cpuidle-riscv-sbi.c | 7 ++++++-
>>>  1 file changed, 6 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/cpuidle/cpuidle-riscv-sbi.c b/drivers/cpuidle/cpuidle-riscv-sbi.c
>>> index 1151e5e2ba82..33c92fec4365 100644
>>> --- a/drivers/cpuidle/cpuidle-riscv-sbi.c
>>> +++ b/drivers/cpuidle/cpuidle-riscv-sbi.c
>>> @@ -97,8 +97,13 @@ static int sbi_cpuidle_enter_state(struct cpuidle_device *dev,
>>>                                    struct cpuidle_driver *drv, int idx)
>>>  {
>>>         u32 *states = __this_cpu_read(sbi_cpuidle_data.states);
>>> +       u32 state = states[idx];
>>>
>>> -       return CPU_PM_CPU_IDLE_ENTER_PARAM(sbi_suspend, idx, states[idx]);
>>> +       if (state & SBI_HSM_SUSP_NON_RET_BIT)
>>> +               return CPU_PM_CPU_IDLE_ENTER_PARAM(sbi_suspend, idx, state);
>>> +       else
>>> +               return CPU_PM_CPU_IDLE_ENTER_RETENTION_PARAM(sbi_suspend,
>>> +                                                            idx, state);
>>>  }
>>>
>>>  static int __sbi_enter_domain_idle_state(struct cpuidle_device *dev,
>>> --
>>> 2.34.1
>>>

  reply	other threads:[~2022-09-23 10:56 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-18  8:45 [PATCH] cpuidle: riscv-sbi: Fix CPU_PM_CPU_IDLE_ENTER_xyz() macro usage Anup Patel
2022-07-18  8:45 ` Anup Patel
2022-07-18 17:27 ` Andrew Jones
2022-07-18 17:27   ` Andrew Jones
2022-08-29  2:59 ` Anup Patel
2022-08-29  2:59   ` Anup Patel
2022-09-22 17:07   ` Palmer Dabbelt
2022-09-22 17:07     ` Palmer Dabbelt
2022-09-23 10:55     ` Palmer Dabbelt [this message]
2022-09-23 10:55       ` Palmer Dabbelt

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=mhng-3a58df40-d19a-41ee-8b51-bbde9ba8d00c@palmer-ri-x1c9 \
    --to=palmer@dabbelt.com \
    --cc=Alistair.Francis@wdc.com \
    --cc=anup@brainfault.org \
    --cc=apatel@ventanamicro.com \
    --cc=atishp@atishpatra.org \
    --cc=daniel.lezcano@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=paul.walmsley@sifive.com \
    --cc=rafael@kernel.org \
    --cc=ulf.hansson@linaro.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.