Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: John Harrison <john.c.harrison@intel.com>
To: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>,
	Joonas Lahtinen <joonas.lahtinen@linux.intel.com>,
	"Intel graphics driver community testing & development"
	<intel-gfx@lists.freedesktop.org>
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>,
	Tvrtko Ursulin <tvrtko.ursulin@intel.com>,
	Jani Nikula <jani.nikula@intel.com>,
	Kenneth Graunke <kenneth@whitecape.org>,
	Rodrigo Vivi <rodrigo.vivi@intel.com>
Subject: Re: [RFC PATCH] drm/i915: Add GETPARAM for GuC submission version
Date: Wed, 24 Jan 2024 11:55:56 -0800	[thread overview]
Message-ID: <a8ab52ee-d80c-40e1-a6ac-1d23801378dc@intel.com> (raw)
In-Reply-To: <f04e6301-c41e-4293-96a7-6d1fa8f8304d@linux.intel.com>

On 1/24/2024 00:55, Tvrtko Ursulin wrote:
> On 24/01/2024 08:19, Joonas Lahtinen wrote:
>> Add reporting of the GuC submissio/VF interface version via GETPARAM
>> properties. Mesa intends to use this information to check for old
>> firmware versions with known bugs before enabling features like async
>> compute.
>
> There was 
> https://patchwork.freedesktop.org/patch/560704/?series=124592&rev=1 
> which does everything in one go so would be my preference.
I also think that the original version is a cleaner implementation.

>
> During the time of that patch there was discussion whether firmware 
> version or submission version was better. I vaguely remember someone 
> raised an issue with the latter. Adding John in case he remembers.
The file version number should not be exposed to UMDs, only the 
submission version. The whole purpose of the submission version is to 
track user facing changes. There was a very, very, very long discussion 
about that to which all parties did eventually agree on using the 
submission version.

The outstanding issues were simply a) whether UMDs should be tracking 
version numbers and all the complications that arise with branching and 
non-linear numbering, b) should it just be exposed as a feature flag 
instead and c) this will prevent hangs in certain specific situations 
but it won't prevent the system running slowly and not using the full 
capabilities of the hardware, for that we need to be making sure that 
distros actually update to a firmware release that is not ancient.


>
>> Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
>> Cc: Kenneth Graunke <kenneth@whitecape.org>
>> Cc: Jose Souza <jose.souza@intel.com>
>> Cc: Sagar Ghuge <sagar.ghuge@intel.com>
>> Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
>> Cc: John Harrison <John.C.Harrison@Intel.com>
>> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
>> Cc: Jani Nikula <jani.nikula@intel.com>
>> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>> ---
>>   drivers/gpu/drm/i915/i915_getparam.c | 12 ++++++++++++
>>   include/uapi/drm/i915_drm.h          | 13 +++++++++++++
>>   2 files changed, 25 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_getparam.c 
>> b/drivers/gpu/drm/i915/i915_getparam.c
>> index 5c3fec63cb4c1..f176372debc54 100644
>> --- a/drivers/gpu/drm/i915/i915_getparam.c
>> +++ b/drivers/gpu/drm/i915/i915_getparam.c
>> @@ -113,6 +113,18 @@ int i915_getparam_ioctl(struct drm_device *dev, 
>> void *data,
>>           if (value < 0)
>>               return value;
>>           break;
>> +    case I915_PARAM_GUC_SUBMISSION_VERSION_MAJOR:
>> +    case I915_PARAM_GUC_SUBMISSION_VERSION_MINOR:
>> +    case I915_PARAM_GUC_SUBMISSION_VERSION_PATCH:
>> +        if (!intel_uc_uses_guc_submission(&to_gt(i915)->uc))
>> +            return -ENODEV;
>> +        if (param->param == I915_PARAM_GUC_SUBMISSION_VERSION_MAJOR)
>> +            value = to_gt(i915)->uc.guc.submission_version.major;
>> +        else if (param->param == 
>> I915_PARAM_GUC_SUBMISSION_VERSION_MINOR)
>> +            value = to_gt(i915)->uc.guc.submission_version.minor;
>> +        else
>> +            value = to_gt(i915)->uc.guc.submission_version.patch;
>> +        break;
>>       case I915_PARAM_MMAP_GTT_VERSION:
>>           /* Though we've started our numbering from 1, and so class all
>>            * earlier versions as 0, in effect their value is 
>> undefined as
>> diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h
>> index fd4f9574d177a..7d5a47f182542 100644
>> --- a/include/uapi/drm/i915_drm.h
>> +++ b/include/uapi/drm/i915_drm.h
>> @@ -806,6 +806,19 @@ typedef struct drm_i915_irq_wait {
>>    */
>>   #define I915_PARAM_PXP_STATUS         58
>>   +/*
>> + * Query for the GuC submission/VF interface version number
>
> What is this VF you speak of? :/
Agreed. There is no SRIOV support in i915 so i915 should not be 
mentioning SRIOV specific features.

John.

>
> Regards,
>
> Tvrtko
>
>> + *
>> + * -ENODEV is returned if GuC submission is not used
>> + *
>> + * On success, returns the respective GuC submission/VF interface 
>> major,
>> + * minor or patch version as per the requested parameter.
>> + *
>> + */
>> +#define I915_PARAM_GUC_SUBMISSION_VERSION_MAJOR 59
>> +#define I915_PARAM_GUC_SUBMISSION_VERSION_MINOR 60
>> +#define I915_PARAM_GUC_SUBMISSION_VERSION_PATCH 61
>> +
>>   /* Must be kept compact -- no holes and well documented */
>>     /**


  reply	other threads:[~2024-01-24 19:56 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-24  8:19 [RFC PATCH] drm/i915: Add GETPARAM for GuC submission version Joonas Lahtinen
2024-01-24  8:43 ` ✗ Fi.CI.SPARSE: warning for " Patchwork
2024-01-24  8:49 ` ✗ Fi.CI.BAT: failure " Patchwork
2024-01-24  8:55 ` [RFC PATCH] " Tvrtko Ursulin
2024-01-24 19:55   ` John Harrison [this message]
2024-01-24 22:42   ` Kenneth Graunke
2024-02-01 18:25   ` Souza, Jose
2024-02-06 16:33     ` Tvrtko Ursulin
2024-02-06 20:42       ` John Harrison
2024-02-06 20:51         ` Souza, Jose
2024-02-07  8:44           ` Tvrtko Ursulin
2024-02-07 11:36             ` Joonas Lahtinen
2024-02-07 17:58               ` John Harrison
2024-02-07 18:02               ` Souza, Jose
2024-01-24 13:35 ` Souza, Jose

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=a8ab52ee-d80c-40e1-a6ac-1d23801378dc@intel.com \
    --to=john.c.harrison@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@intel.com \
    --cc=joonas.lahtinen@linux.intel.com \
    --cc=kenneth@whitecape.org \
    --cc=paulo.r.zanoni@intel.com \
    --cc=rodrigo.vivi@intel.com \
    --cc=tvrtko.ursulin@intel.com \
    --cc=tvrtko.ursulin@linux.intel.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