[PATCH v3 13/22] ACPI: platform_profile: Require handlers to support balanced profile

Mario Limonciello posted 22 patches 3 weeks, 3 days ago
There is a newer version of this series
[PATCH v3 13/22] ACPI: platform_profile: Require handlers to support balanced profile
Posted by Mario Limonciello 3 weeks, 3 days ago
As support for multiple simultaneous platform handers is introduced it's
important they have at least the balanced profile in common.

This will be used as a fallback in case setting the profile across one of the
handlers happens to fail.

Tested-by: Matthew Schwartz <matthew.schwartz@linux.dev>
Suggested-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
---
 drivers/acpi/platform_profile.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/platform_profile.c
index b70ceb11947d0..57c66d7dbf827 100644
--- a/drivers/acpi/platform_profile.c
+++ b/drivers/acpi/platform_profile.c
@@ -164,6 +164,10 @@ int platform_profile_register(struct platform_profile_handler *pprof)
 		pr_err("platform_profile: handler is invalid\n");
 		return -EINVAL;
 	}
+	if (!test_bit(PLATFORM_PROFILE_BALANCED, pprof->choices)) {
+		pr_err("platform_profile: handler does not support balanced profile\n");
+		return -EINVAL;
+	}
 	if (!pprof->dev) {
 		pr_err("platform_profile: handler device is not set\n");
 		return -EINVAL;
-- 
2.43.0
Re: [PATCH v3 13/22] ACPI: platform_profile: Require handlers to support balanced profile
Posted by Armin Wolf 3 weeks, 3 days ago
Am 31.10.24 um 05:09 schrieb Mario Limonciello:

> As support for multiple simultaneous platform handers is introduced it's
> important they have at least the balanced profile in common.
>
> This will be used as a fallback in case setting the profile across one of the
> handlers happens to fail.

Do we actually need this patch anymore now that we have the "custom" platform profile?
If setting the platform profile fails for some handlers, then we simply display the current
platform profile as "custom".

Thanks,
Armin Wolf

> Tested-by: Matthew Schwartz <matthew.schwartz@linux.dev>
> Suggested-by: Hans de Goede <hdegoede@redhat.com>
> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
> ---
>   drivers/acpi/platform_profile.c | 4 ++++
>   1 file changed, 4 insertions(+)
>
> diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/platform_profile.c
> index b70ceb11947d0..57c66d7dbf827 100644
> --- a/drivers/acpi/platform_profile.c
> +++ b/drivers/acpi/platform_profile.c
> @@ -164,6 +164,10 @@ int platform_profile_register(struct platform_profile_handler *pprof)
>   		pr_err("platform_profile: handler is invalid\n");
>   		return -EINVAL;
>   	}
> +	if (!test_bit(PLATFORM_PROFILE_BALANCED, pprof->choices)) {
> +		pr_err("platform_profile: handler does not support balanced profile\n");
> +		return -EINVAL;
> +	}
>   	if (!pprof->dev) {
>   		pr_err("platform_profile: handler device is not set\n");
>   		return -EINVAL;
Re: [PATCH v3 13/22] ACPI: platform_profile: Require handlers to support balanced profile
Posted by Mario Limonciello 3 weeks, 3 days ago
On 10/31/2024 15:39, Armin Wolf wrote:
> Am 31.10.24 um 05:09 schrieb Mario Limonciello:
> 
>> As support for multiple simultaneous platform handers is introduced it's
>> important they have at least the balanced profile in common.
>>
>> This will be used as a fallback in case setting the profile across one 
>> of the
>> handlers happens to fail.
> 
> Do we actually need this patch anymore now that we have the "custom" 
> platform profile?
> If setting the platform profile fails for some handlers, then we simply 
> display the current
> platform profile as "custom".

Yes; it's still needed because 'balanced' is used as the fallback of 
something failed.  If you fail to write to a handler it gets you back to 
a known place for all GPUs.

Now I suppose it's up for discussion if that's really the right thing to do.

Maybe because of custom we don't even need that.

If I have 3 profile handlers in
low-power
balanced
balanced

IE I'm already in 'custom'.

If I try to write performance and the first two succeed but the third 
fails what's better:

performance
performance
balanced

Or

balanced
balanced
balanced


> 
> Thanks,
> Armin Wolf
> 
>> Tested-by: Matthew Schwartz <matthew.schwartz@linux.dev>
>> Suggested-by: Hans de Goede <hdegoede@redhat.com>
>> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
>> ---
>>   drivers/acpi/platform_profile.c | 4 ++++
>>   1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/ 
>> platform_profile.c
>> index b70ceb11947d0..57c66d7dbf827 100644
>> --- a/drivers/acpi/platform_profile.c
>> +++ b/drivers/acpi/platform_profile.c
>> @@ -164,6 +164,10 @@ int platform_profile_register(struct 
>> platform_profile_handler *pprof)
>>           pr_err("platform_profile: handler is invalid\n");
>>           return -EINVAL;
>>       }
>> +    if (!test_bit(PLATFORM_PROFILE_BALANCED, pprof->choices)) {
>> +        pr_err("platform_profile: handler does not support balanced 
>> profile\n");
>> +        return -EINVAL;
>> +    }
>>       if (!pprof->dev) {
>>           pr_err("platform_profile: handler device is not set\n");
>>           return -EINVAL;

Re: [PATCH v3 13/22] ACPI: platform_profile: Require handlers to support balanced profile
Posted by Armin Wolf 3 weeks, 3 days ago
Am 31.10.24 um 21:43 schrieb Mario Limonciello:

> On 10/31/2024 15:39, Armin Wolf wrote:
>> Am 31.10.24 um 05:09 schrieb Mario Limonciello:
>>
>>> As support for multiple simultaneous platform handers is introduced
>>> it's
>>> important they have at least the balanced profile in common.
>>>
>>> This will be used as a fallback in case setting the profile across
>>> one of the
>>> handlers happens to fail.
>>
>> Do we actually need this patch anymore now that we have the "custom"
>> platform profile?
>> If setting the platform profile fails for some handlers, then we
>> simply display the current
>> platform profile as "custom".
>
> Yes; it's still needed because 'balanced' is used as the fallback of
> something failed.  If you fail to write to a handler it gets you back
> to a known place for all GPUs.
>
> Now I suppose it's up for discussion if that's really the right thing
> to do.
>
> Maybe because of custom we don't even need that.
>
> If I have 3 profile handlers in
> low-power
> balanced
> balanced
>
> IE I'm already in 'custom'.
>
> If I try to write performance and the first two succeed but the third
> fails what's better:
>
> performance
> performance
> balanced
>
> Or
>
> balanced
> balanced
> balanced
>
I think the first is better, as we cannot really guarantee that setting "balanced" for all handlers
will always work.

Thanks,
Armin Wolf

>>
>> Thanks,
>> Armin Wolf
>>
>>> Tested-by: Matthew Schwartz <matthew.schwartz@linux.dev>
>>> Suggested-by: Hans de Goede <hdegoede@redhat.com>
>>> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
>>> ---
>>>   drivers/acpi/platform_profile.c | 4 ++++
>>>   1 file changed, 4 insertions(+)
>>>
>>> diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/
>>> platform_profile.c
>>> index b70ceb11947d0..57c66d7dbf827 100644
>>> --- a/drivers/acpi/platform_profile.c
>>> +++ b/drivers/acpi/platform_profile.c
>>> @@ -164,6 +164,10 @@ int platform_profile_register(struct
>>> platform_profile_handler *pprof)
>>>           pr_err("platform_profile: handler is invalid\n");
>>>           return -EINVAL;
>>>       }
>>> +    if (!test_bit(PLATFORM_PROFILE_BALANCED, pprof->choices)) {
>>> +        pr_err("platform_profile: handler does not support balanced
>>> profile\n");
>>> +        return -EINVAL;
>>> +    }
>>>       if (!pprof->dev) {
>>>           pr_err("platform_profile: handler device is not set\n");
>>>           return -EINVAL;
>