* [PATCH v2] platform/x86/amd: Don't allow HSMP to be loaded on non-server hardware
@ 2024-04-16 18:20 Mario Limonciello
2024-04-18 9:04 ` Hans de Goede
2024-04-22 13:31 ` Hans de Goede
0 siblings, 2 replies; 7+ messages in thread
From: Mario Limonciello @ 2024-04-16 18:20 UTC (permalink / raw)
To: Hans de Goede, Ilpo Järvinen
Cc: Naveen Krishna Chatradhi, Carlos Bilbao,
open list:AMD HSMP DRIVER, open list, Mario Limonciello
From: Mario Limonciello <mario.limonciello@amd.com>
If the HSMP driver is compiled into the kernel or a module manually loaded
on client hardware it can cause problems with the functionality of the PMC
module since it probes a mailbox with a different definition on servers.
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2414
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3285
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
---
v1->v2:
* use pm preferred profile instead
---
drivers/platform/x86/amd/hsmp.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/drivers/platform/x86/amd/hsmp.c b/drivers/platform/x86/amd/hsmp.c
index 1927be901108..102a49c3e945 100644
--- a/drivers/platform/x86/amd/hsmp.c
+++ b/drivers/platform/x86/amd/hsmp.c
@@ -907,6 +907,17 @@ static int hsmp_plat_dev_register(void)
return ret;
}
+static bool hsmp_supported_profile(void)
+{
+ switch (acpi_gbl_FADT.preferred_profile) {
+ case PM_ENTERPRISE_SERVER:
+ case PM_SOHO_SERVER:
+ case PM_PERFORMANCE_SERVER:
+ return true;
+ }
+ return false;
+}
+
static int __init hsmp_plt_init(void)
{
int ret = -ENODEV;
@@ -917,6 +928,11 @@ static int __init hsmp_plt_init(void)
return ret;
}
+ if (!hsmp_supported_profile()) {
+ pr_err("HSMP is only supported on servers");
+ return ret;
+ }
+
/*
* amd_nb_num() returns number of SMN/DF interfaces present in the system
* if we have N SMN/DF interfaces that ideally means N sockets
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2] platform/x86/amd: Don't allow HSMP to be loaded on non-server hardware
2024-04-16 18:20 [PATCH v2] platform/x86/amd: Don't allow HSMP to be loaded on non-server hardware Mario Limonciello
@ 2024-04-18 9:04 ` Hans de Goede
2024-04-18 11:27 ` Mario Limonciello
2024-04-22 13:31 ` Hans de Goede
1 sibling, 1 reply; 7+ messages in thread
From: Hans de Goede @ 2024-04-18 9:04 UTC (permalink / raw)
To: Mario Limonciello, Ilpo Järvinen
Cc: Naveen Krishna Chatradhi, Carlos Bilbao,
open list:AMD HSMP DRIVER, open list, Mario Limonciello
Hi,
On 4/16/24 8:20 PM, Mario Limonciello wrote:
> From: Mario Limonciello <mario.limonciello@amd.com>
>
> If the HSMP driver is compiled into the kernel or a module manually loaded
> on client hardware it can cause problems with the functionality of the PMC
> module since it probes a mailbox with a different definition on servers.
>
> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2414
> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3285
> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
> ---
> v1->v2:
> * use pm preferred profile instead
Thanks, patch looks good to me:
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Mario, should this go in as a fix for the 6.9 cylce, or is
this for-next material ? (I'm not sure what to do myself)
Regards,
Hans
> ---
> drivers/platform/x86/amd/hsmp.c | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/drivers/platform/x86/amd/hsmp.c b/drivers/platform/x86/amd/hsmp.c
> index 1927be901108..102a49c3e945 100644
> --- a/drivers/platform/x86/amd/hsmp.c
> +++ b/drivers/platform/x86/amd/hsmp.c
> @@ -907,6 +907,17 @@ static int hsmp_plat_dev_register(void)
> return ret;
> }
>
> +static bool hsmp_supported_profile(void)
> +{
> + switch (acpi_gbl_FADT.preferred_profile) {
> + case PM_ENTERPRISE_SERVER:
> + case PM_SOHO_SERVER:
> + case PM_PERFORMANCE_SERVER:
> + return true;
> + }
> + return false;
> +}
> +
> static int __init hsmp_plt_init(void)
> {
> int ret = -ENODEV;
> @@ -917,6 +928,11 @@ static int __init hsmp_plt_init(void)
> return ret;
> }
>
> + if (!hsmp_supported_profile()) {
> + pr_err("HSMP is only supported on servers");
> + return ret;
> + }
> +
> /*
> * amd_nb_num() returns number of SMN/DF interfaces present in the system
> * if we have N SMN/DF interfaces that ideally means N sockets
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] platform/x86/amd: Don't allow HSMP to be loaded on non-server hardware
2024-04-18 9:04 ` Hans de Goede
@ 2024-04-18 11:27 ` Mario Limonciello
2024-04-18 12:12 ` Hans de Goede
2024-04-18 13:51 ` Ilpo Järvinen
0 siblings, 2 replies; 7+ messages in thread
From: Mario Limonciello @ 2024-04-18 11:27 UTC (permalink / raw)
To: Hans de Goede, Ilpo Järvinen
Cc: Naveen Krishna Chatradhi, Carlos Bilbao,
open list:AMD HSMP DRIVER, open list, Mario Limonciello
On 4/18/24 04:04, Hans de Goede wrote:
> Hi,
>
> On 4/16/24 8:20 PM, Mario Limonciello wrote:
>> From: Mario Limonciello <mario.limonciello@amd.com>
>>
>> If the HSMP driver is compiled into the kernel or a module manually loaded
>> on client hardware it can cause problems with the functionality of the PMC
>> module since it probes a mailbox with a different definition on servers.
>>
>> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2414
>> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3285
>> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
>> ---
>> v1->v2:
>> * use pm preferred profile instead
>
> Thanks, patch looks good to me:
>
> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
>
> Mario, should this go in as a fix for the 6.9 cylce, or is
> this for-next material ? (I'm not sure what to do myself)
The main risk with this patch is if there are servers that previously
loaded amd-hsmp no longer working because of a BIOS bug to exporting the
incorrect profile. I think this is quite unlikely but not non-zero.
To at least give some time for anything like that to be raised I feel
this should go to for-next.
Ideally I do want to see it go to stable kernels after we're all
sufficiently happy though. Random bug reports to me like the ones I
added to the commit message get raised mostly by people who compile
their own (stable) kernels and enable all the AMD stuff because they
have AMD hardware.
So how about we target for-next, but also add a stable tag for when it
gets merged in the 6.10 cycle?
>
> Regards,
>
> Hans
>
>
>
>
>> ---
>> drivers/platform/x86/amd/hsmp.c | 16 ++++++++++++++++
>> 1 file changed, 16 insertions(+)
>>
>> diff --git a/drivers/platform/x86/amd/hsmp.c b/drivers/platform/x86/amd/hsmp.c
>> index 1927be901108..102a49c3e945 100644
>> --- a/drivers/platform/x86/amd/hsmp.c
>> +++ b/drivers/platform/x86/amd/hsmp.c
>> @@ -907,6 +907,17 @@ static int hsmp_plat_dev_register(void)
>> return ret;
>> }
>>
>> +static bool hsmp_supported_profile(void)
>> +{
>> + switch (acpi_gbl_FADT.preferred_profile) {
>> + case PM_ENTERPRISE_SERVER:
>> + case PM_SOHO_SERVER:
>> + case PM_PERFORMANCE_SERVER:
>> + return true;
>> + }
>> + return false;
>> +}
>> +
>> static int __init hsmp_plt_init(void)
>> {
>> int ret = -ENODEV;
>> @@ -917,6 +928,11 @@ static int __init hsmp_plt_init(void)
>> return ret;
>> }
>>
>> + if (!hsmp_supported_profile()) {
>> + pr_err("HSMP is only supported on servers");
>> + return ret;
>> + }
>> +
>> /*
>> * amd_nb_num() returns number of SMN/DF interfaces present in the system
>> * if we have N SMN/DF interfaces that ideally means N sockets
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] platform/x86/amd: Don't allow HSMP to be loaded on non-server hardware
2024-04-18 11:27 ` Mario Limonciello
@ 2024-04-18 12:12 ` Hans de Goede
2024-04-18 13:51 ` Ilpo Järvinen
1 sibling, 0 replies; 7+ messages in thread
From: Hans de Goede @ 2024-04-18 12:12 UTC (permalink / raw)
To: Mario Limonciello, Ilpo Järvinen
Cc: Naveen Krishna Chatradhi, Carlos Bilbao,
open list:AMD HSMP DRIVER, open list, Mario Limonciello
HI,
On 4/18/24 1:27 PM, Mario Limonciello wrote:
>
>
> On 4/18/24 04:04, Hans de Goede wrote:
>> Hi,
>>
>> On 4/16/24 8:20 PM, Mario Limonciello wrote:
>>> From: Mario Limonciello <mario.limonciello@amd.com>
>>>
>>> If the HSMP driver is compiled into the kernel or a module manually loaded
>>> on client hardware it can cause problems with the functionality of the PMC
>>> module since it probes a mailbox with a different definition on servers.
>>>
>>> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2414
>>> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3285
>>> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
>>> ---
>>> v1->v2:
>>> * use pm preferred profile instead
>>
>> Thanks, patch looks good to me:
>>
>> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
>>
>> Mario, should this go in as a fix for the 6.9 cylce, or is
>> this for-next material ? (I'm not sure what to do myself)
> The main risk with this patch is if there are servers that previously loaded amd-hsmp no longer working because of a BIOS bug to exporting the incorrect profile. I think this is quite unlikely but not non-zero.
>
> To at least give some time for anything like that to be raised I feel this should go to for-next.
>
> Ideally I do want to see it go to stable kernels after we're all sufficiently happy though. Random bug reports to me like the ones I added to the commit message get raised mostly by people who compile their own (stable) kernels and enable all the AMD stuff because they have AMD hardware.
>
> So how about we target for-next, but also add a stable tag for when it gets merged in the 6.10 cycle?
Works for me. I'll merge this during my next round of patch merging and I'll
add a Cc: stable while merging.
Regards,
Hans
>>> ---
>>> drivers/platform/x86/amd/hsmp.c | 16 ++++++++++++++++
>>> 1 file changed, 16 insertions(+)
>>>
>>> diff --git a/drivers/platform/x86/amd/hsmp.c b/drivers/platform/x86/amd/hsmp.c
>>> index 1927be901108..102a49c3e945 100644
>>> --- a/drivers/platform/x86/amd/hsmp.c
>>> +++ b/drivers/platform/x86/amd/hsmp.c
>>> @@ -907,6 +907,17 @@ static int hsmp_plat_dev_register(void)
>>> return ret;
>>> }
>>> +static bool hsmp_supported_profile(void)
>>> +{
>>> + switch (acpi_gbl_FADT.preferred_profile) {
>>> + case PM_ENTERPRISE_SERVER:
>>> + case PM_SOHO_SERVER:
>>> + case PM_PERFORMANCE_SERVER:
>>> + return true;
>>> + }
>>> + return false;
>>> +}
>>> +
>>> static int __init hsmp_plt_init(void)
>>> {
>>> int ret = -ENODEV;
>>> @@ -917,6 +928,11 @@ static int __init hsmp_plt_init(void)
>>> return ret;
>>> }
>>> + if (!hsmp_supported_profile()) {
>>> + pr_err("HSMP is only supported on servers");
>>> + return ret;
>>> + }
>>> +
>>> /*
>>> * amd_nb_num() returns number of SMN/DF interfaces present in the system
>>> * if we have N SMN/DF interfaces that ideally means N sockets
>>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] platform/x86/amd: Don't allow HSMP to be loaded on non-server hardware
2024-04-18 11:27 ` Mario Limonciello
2024-04-18 12:12 ` Hans de Goede
@ 2024-04-18 13:51 ` Ilpo Järvinen
2024-04-19 1:38 ` Mario Limonciello
1 sibling, 1 reply; 7+ messages in thread
From: Ilpo Järvinen @ 2024-04-18 13:51 UTC (permalink / raw)
To: Mario Limonciello
Cc: Hans de Goede, Naveen Krishna Chatradhi, Carlos Bilbao,
open list:AMD HSMP DRIVER, open list, Mario Limonciello
On Thu, 18 Apr 2024, Mario Limonciello wrote:
> On 4/18/24 04:04, Hans de Goede wrote:
> > On 4/16/24 8:20 PM, Mario Limonciello wrote:
> > > From: Mario Limonciello <mario.limonciello@amd.com>
> > >
> > > If the HSMP driver is compiled into the kernel or a module manually loaded
> > > on client hardware it can cause problems with the functionality of the PMC
> > > module since it probes a mailbox with a different definition on servers.
> > >
> > > Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2414
> > > Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3285
> > > Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
> > > ---
> > > v1->v2:
> > > * use pm preferred profile instead
> >
> > Thanks, patch looks good to me:
> >
> > Reviewed-by: Hans de Goede <hdegoede@redhat.com>
> >
> > Mario, should this go in as a fix for the 6.9 cylce, or is
> > this for-next material ? (I'm not sure what to do myself)
> The main risk with this patch is if there are servers that previously loaded
> amd-hsmp no longer working because of a BIOS bug to exporting the incorrect
> profile. I think this is quite unlikely but not non-zero.
>
> To at least give some time for anything like that to be raised I feel this
> should go to for-next.
I was also thinking it would be better to route this through for-next.
> Ideally I do want to see it go to stable kernels after we're all sufficiently
> happy though. Random bug reports to me like the ones I added to the commit
> message get raised mostly by people who compile their own (stable) kernels and
> enable all the AMD stuff because they have AMD hardware.
>
> So how about we target for-next, but also add a stable tag for when it gets
> merged in the 6.10 cycle?
That's possible but if you want to retain true control over it, don't add
stable tag at all now. You can send it on your own volition into stable
address later once the change is in Linus' tree and your "happy" condition
is met (Option 3 in Documentation/process/stable-kernel-rules.rst).
Otherwise, stable will autoselect it the moment it lands into Linus' tree
and you don't have much control over the timeline from that point on (I've
seen stable folks to grumble when somebody asked to delay including a
patch marked for stable, their reasoning was that their autotools keep
reselecting the patch over and over again).
--
i.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] platform/x86/amd: Don't allow HSMP to be loaded on non-server hardware
2024-04-18 13:51 ` Ilpo Järvinen
@ 2024-04-19 1:38 ` Mario Limonciello
0 siblings, 0 replies; 7+ messages in thread
From: Mario Limonciello @ 2024-04-19 1:38 UTC (permalink / raw)
To: Ilpo Järvinen
Cc: Hans de Goede, Naveen Krishna Chatradhi, Carlos Bilbao,
open list:AMD HSMP DRIVER, open list, Mario Limonciello
On 4/18/24 08:51, Ilpo Järvinen wrote:
> On Thu, 18 Apr 2024, Mario Limonciello wrote:
>> On 4/18/24 04:04, Hans de Goede wrote:
>>> On 4/16/24 8:20 PM, Mario Limonciello wrote:
>>>> From: Mario Limonciello <mario.limonciello@amd.com>
>>>>
>>>> If the HSMP driver is compiled into the kernel or a module manually loaded
>>>> on client hardware it can cause problems with the functionality of the PMC
>>>> module since it probes a mailbox with a different definition on servers.
>>>>
>>>> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2414
>>>> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3285
>>>> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
>>>> ---
>>>> v1->v2:
>>>> * use pm preferred profile instead
>>>
>>> Thanks, patch looks good to me:
>>>
>>> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
>>>
>>> Mario, should this go in as a fix for the 6.9 cylce, or is
>>> this for-next material ? (I'm not sure what to do myself)
>> The main risk with this patch is if there are servers that previously loaded
>> amd-hsmp no longer working because of a BIOS bug to exporting the incorrect
>> profile. I think this is quite unlikely but not non-zero.
>>
>> To at least give some time for anything like that to be raised I feel this
>> should go to for-next.
>
> I was also thinking it would be better to route this through for-next.
>
>> Ideally I do want to see it go to stable kernels after we're all sufficiently
>> happy though. Random bug reports to me like the ones I added to the commit
>> message get raised mostly by people who compile their own (stable) kernels and
>> enable all the AMD stuff because they have AMD hardware.
>>
>> So how about we target for-next, but also add a stable tag for when it gets
>> merged in the 6.10 cycle?
>
> That's possible but if you want to retain true control over it, don't add
> stable tag at all now. You can send it on your own volition into stable
> address later once the change is in Linus' tree and your "happy" condition
> is met (Option 3 in Documentation/process/stable-kernel-rules.rst).
>
> Otherwise, stable will autoselect it the moment it lands into Linus' tree
> and you don't have much control over the timeline from that point on (I've
> seen stable folks to grumble when somebody asked to delay including a
> patch marked for stable, their reasoning was that their autotools keep
> reselecting the patch over and over again).
>
I don't feel a strong need for a specific timing. The timeline of of it
going to the stable trees when 6.10-rc1~ish seems fine by me.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] platform/x86/amd: Don't allow HSMP to be loaded on non-server hardware
2024-04-16 18:20 [PATCH v2] platform/x86/amd: Don't allow HSMP to be loaded on non-server hardware Mario Limonciello
2024-04-18 9:04 ` Hans de Goede
@ 2024-04-22 13:31 ` Hans de Goede
1 sibling, 0 replies; 7+ messages in thread
From: Hans de Goede @ 2024-04-22 13:31 UTC (permalink / raw)
To: Mario Limonciello, Ilpo Järvinen
Cc: Naveen Krishna Chatradhi, Carlos Bilbao,
open list:AMD HSMP DRIVER, open list, Mario Limonciello
Hi,
On 4/16/24 8:20 PM, Mario Limonciello wrote:
> From: Mario Limonciello <mario.limonciello@amd.com>
>
> If the HSMP driver is compiled into the kernel or a module manually loaded
> on client hardware it can cause problems with the functionality of the PMC
> module since it probes a mailbox with a different definition on servers.
>
> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2414
> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3285
> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Thank you for your patch, I've applied this patch to my review-hans
branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans
Note it will show up in my review-hans branch once I've pushed my
local branch there, which might take a while.
Once I've run some tests on this branch the patches there will be
added to the platform-drivers-x86/for-next branch and eventually
will be included in the pdx86 pull-request to Linus for the next
merge-window.
Regards,
Hans
> ---
> v1->v2:
> * use pm preferred profile instead
> ---
> drivers/platform/x86/amd/hsmp.c | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/drivers/platform/x86/amd/hsmp.c b/drivers/platform/x86/amd/hsmp.c
> index 1927be901108..102a49c3e945 100644
> --- a/drivers/platform/x86/amd/hsmp.c
> +++ b/drivers/platform/x86/amd/hsmp.c
> @@ -907,6 +907,17 @@ static int hsmp_plat_dev_register(void)
> return ret;
> }
>
> +static bool hsmp_supported_profile(void)
> +{
> + switch (acpi_gbl_FADT.preferred_profile) {
> + case PM_ENTERPRISE_SERVER:
> + case PM_SOHO_SERVER:
> + case PM_PERFORMANCE_SERVER:
> + return true;
> + }
> + return false;
> +}
> +
> static int __init hsmp_plt_init(void)
> {
> int ret = -ENODEV;
> @@ -917,6 +928,11 @@ static int __init hsmp_plt_init(void)
> return ret;
> }
>
> + if (!hsmp_supported_profile()) {
> + pr_err("HSMP is only supported on servers");
> + return ret;
> + }
> +
> /*
> * amd_nb_num() returns number of SMN/DF interfaces present in the system
> * if we have N SMN/DF interfaces that ideally means N sockets
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-04-22 13:31 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-16 18:20 [PATCH v2] platform/x86/amd: Don't allow HSMP to be loaded on non-server hardware Mario Limonciello
2024-04-18 9:04 ` Hans de Goede
2024-04-18 11:27 ` Mario Limonciello
2024-04-18 12:12 ` Hans de Goede
2024-04-18 13:51 ` Ilpo Järvinen
2024-04-19 1:38 ` Mario Limonciello
2024-04-22 13:31 ` Hans de Goede
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox