From: Nathan Fontenot <nafonten@amd.com>
To: Song Liu <song@kernel.org>
Cc: Naveen Krishna Chatradhi <nchatrad@amd.com>,
platform-driver-x86@vger.kernel.org,
Hans de Goede <hdegoede@redhat.com>,
carlos.bilbao@amd.com, siva.sathappan@amd.com,
suma.hegde@amd.com
Subject: Re: [PATCH v4 1/2] platforms/x86: Add AMD system management interface
Date: Thu, 10 Feb 2022 14:42:49 -0600 [thread overview]
Message-ID: <aeb4d8d9-a43c-0697-5035-eff7f4ba3728@amd.com> (raw)
In-Reply-To: <CAPhsuW7G18toN+LoHKEDa10UUUG0hD_RKHGi8nuJGRjDYVLJ_w@mail.gmail.com>
On 2/10/22 14:32, Song Liu wrote:
> On Thu, Feb 10, 2022 at 11:52 AM Nathan Fontenot <nafonten@amd.com> wrote:
>>
>> On 2/9/22 19:10, Song Liu wrote:
>>> On Wed, Feb 9, 2022 at 1:08 PM Nathan Fontenot <nafonten@amd.com> wrote:
>>>>
>>> [...]
>>>>> +
>>>>> +static const struct hsmp_msg_desc msg_desc_table[] = {
>>>>> + /* num_args, response_size, type */
>>>>> + {0, 0, RSVD}, /* RESERVED */
>>>>> + {1, 1, GET}, /* HSMP_TEST */
>>>>> + {0, 1, GET}, /* HSMP_GET_SMU_VER */
>>>>> + {0, 1, GET}, /* HSMP_GET_PROTO_VER */
>>>>> + {0, 1, GET}, /* HSMP_GET_SOCKET_POWER */
>>>>> + {1, 0, SET}, /* HSMP_SET_SOCKET_POWER_LIMIT */
>>>>> + {0, 1, GET}, /* HSMP_GET_SOCKET_POWER_LIMIT */
>>>>> + {0, 1, GET}, /* HSMP_GET_SOCKET_POWER_LIMIT_MAX */
>>>>> + {1, 0, SET}, /* HSMP_SET_BOOST_LIMIT */
>>>>> + {1, 0, SET}, /* HSMP_SET_BOOST_LIMIT_SOCKET */
>>>>> + {1, 1, GET}, /* HSMP_GET_BOOST_LIMIT */
>>>>> + {0, 1, GET}, /* HSMP_GET_PROC_HOT */
>>>>> + {1, 0, SET}, /* HSMP_SET_XGMI_LINK_WIDTH */
>>>>> + {1, 0, SET}, /* HSMP_SET_DF_PSTATE */
>>>>> + {0, 0, SET}, /* HSMP_SET_AUTO_DF_PSTATE */
>>>>> + {0, 2, GET}, /* HSMP_GET_FCLK_MCLK */
>>>>> + {0, 1, GET}, /* HSMP_GET_CCLK_THROTTLE_LIMIT */
>>>>> + {0, 1, GET}, /* HSMP_GET_C0_PERCENT */
>>>>> + {1, 0, SET}, /* HSMP_SET_NBIO_DPM_LEVEL */
>>>>> + {0, 0, RSVD}, /* RESERVED */
>>>>> + {0, 1, GET}, /* HSMP_GET_DDR_BANDWIDTH */
>>>>> + {0, 1, GET}, /* HSMP_GET_TEMP_MONITOR */
>>>>> +};
>>>>
>>>> The hsmp_msg_desc, hsmp_msg_type, and msg_desc_table are used by the driver for
>>>> validating user data. These aren't part of the user API.
>>>>
>>>> Perhaps these should be defined in the driver itself instead of being a part of
>>>> the uapi header.
>>>
>>> This was my idea. While I agree it is a little weird to have these
>>> tables in a uapi
>>> header, I think it is helpful to give the user some reference about
>>> proper num_args
>>> and response_size for each message. I don't have a better idea to achieve this.
>>>
>>
>> I like the idea to give users a reference on args and responses for each HSMP function.
>> If this table is kept in the uapi header perhaps we should add a short description of
>> what the expected args and responses are for each HSMP function with a pointer to the
>> full documentation of the HSMP functions in the PPR.
>
> I guess we can use unions do give full descriptions, like:
>
> struct hsmp_message {
> __u32 msg_id; /* Message ID */
> __u16 num_args; /* Number of arguments
> in message */
> __u16 response_sz; /* Number of expected
> response words */
> union {
> struct {
> __u32 args[HSMP_MAX_MSG_LEN];
> }; /* ensure size of args */
> struct {
> __u32 test_arg1;
> } hsmp_test;
> /* args for other commands */
> } args;
> union {
> struct {
> __u32 response[HSMP_MAX_MSG_LEN];
> }; /* ensure size of response */
> struct {
> __u32 test_response1; /* or better name */
> } hsmp_test;
> /* reponse for other commands */
> } response;
> __u16 sock_ind; /* socket number */
> };
>
I was thinking of keeping the msg_desc_table as is, just provide more details
about the expected args and responses in a comment. I think creating a union
of structs for each HSMP function (and there are more functions coming) would
get a bit messy.
> btw: do we really need HSMP_MAX_MSG_LEN of 8? The list above
> have at most 2 args/responses.
The PPR spec defines the args and responses as having up to 8 so we ned to keep
the max length at 8. No current HSMP has more than 2 though.
-Nathan
>
> Thanks,
> Song
next prev parent reply other threads:[~2022-02-10 20:43 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-09 18:44 [PATCH v4 1/2] platforms/x86: Add AMD system management interface Naveen Krishna Chatradhi
2022-02-09 18:44 ` [PATCH v4 2/2] Documentation: Add x86/amd_hsmp driver Naveen Krishna Chatradhi
2022-02-09 21:08 ` [PATCH v4 1/2] platforms/x86: Add AMD system management interface Nathan Fontenot
2022-02-10 1:10 ` Song Liu
2022-02-10 19:52 ` Nathan Fontenot
2022-02-10 20:32 ` Song Liu
2022-02-10 20:42 ` Nathan Fontenot [this message]
2022-02-10 21:40 ` Song Liu
2022-02-14 15:32 ` Chatradhi, Naveen Krishna
2022-02-14 17:21 ` Song Liu
2022-02-15 17:24 ` Nathan Fontenot
2022-02-15 18:21 ` Song Liu
2022-02-16 13:42 ` Chatradhi, Naveen Krishna
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=aeb4d8d9-a43c-0697-5035-eff7f4ba3728@amd.com \
--to=nafonten@amd.com \
--cc=carlos.bilbao@amd.com \
--cc=hdegoede@redhat.com \
--cc=nchatrad@amd.com \
--cc=platform-driver-x86@vger.kernel.org \
--cc=siva.sathappan@amd.com \
--cc=song@kernel.org \
--cc=suma.hegde@amd.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