Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Nirmoy Das <nirmoy.das@linux.intel.com>
To: Lionel Landwerlin <lionel.g.landwerlin@intel.com>,
	Nirmoy Das <nirmoy.das@intel.com>,
	intel-xe@lists.freedesktop.org
Subject: Re: [PATCH v3 7/7] drm/xe/uapi: Add a query flag for has_device_atomics_on_smem
Date: Mon, 22 Apr 2024 10:53:02 +0200	[thread overview]
Message-ID: <84ad50d6-2668-4269-b6b0-72da57b0b324@linux.intel.com> (raw)
In-Reply-To: <109eb32e-99c9-49a0-8166-42ed59e67662@intel.com>

[-- Attachment #1: Type: text/plain, Size: 3534 bytes --]

Hi Lionel,

On 4/19/2024 9:08 AM, Lionel Landwerlin wrote:
> On 15/04/2024 17:52, Nirmoy Das wrote:
>> Add a query flag for xe->info.has_device_atomics_on_smem
>> as this is platform dependent. This flag can be use to inform
>> whether DRM_XE_VM_BIND_FLAG_DEVICE_ATOMICS can be effectively
>> applied for a given platform.
>>
>> Signed-off-by: Nirmoy Das<nirmoy.das@intel.com>
>> ---
>>   drivers/gpu/drm/xe/xe_query.c | 3 +++
>>   include/uapi/drm/xe_drm.h     | 5 ++++-
>>   2 files changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
>> index df407d73e5f5..43272fdd5442 100644
>> --- a/drivers/gpu/drm/xe/xe_query.c
>> +++ b/drivers/gpu/drm/xe/xe_query.c
>> @@ -336,6 +336,9 @@ static int query_config(struct xe_device *xe, struct drm_xe_device_query *query)
>>   	if (xe_device_get_root_tile(xe)->mem.vram.usable_size)
>>   		config->info[DRM_XE_QUERY_CONFIG_FLAGS] =
>>   			DRM_XE_QUERY_CONFIG_FLAG_HAS_VRAM;
>> +	if (xe->info.has_device_atomics_on_smem)
>> +		config->info[DRM_XE_QUERY_CONFIG_FLAGS] |=
>> +			DRM_XE_QUERY_CONFIG_FLAG_HAS_DEV_ATOMIC_ON_SMEM;
>>   	config->info[DRM_XE_QUERY_CONFIG_MIN_ALIGNMENT] =
>>   		xe->info.vram_flags & XE_VRAM_FLAGS_NEED64K ? SZ_64K : SZ_4K;
>>   	config->info[DRM_XE_QUERY_CONFIG_VA_BITS] = xe->info.va_bits;
>> diff --git a/include/uapi/drm/xe_drm.h b/include/uapi/drm/xe_drm.h
>> index ca4447e10ac9..80fff6fe3199 100644
>> --- a/include/uapi/drm/xe_drm.h
>> +++ b/include/uapi/drm/xe_drm.h
>> @@ -389,6 +389,8 @@ struct drm_xe_query_mem_regions {
>>    *
>>    *    - %DRM_XE_QUERY_CONFIG_FLAG_HAS_VRAM - Flag is set if the device
>>    *      has usable VRAM
>> + *    - %DRM_XE_QUERY_CONFIG_FLAG_HAS_DEV_ATOMIC_ON_SMEM - Flag is set if the device
>> + *      supports device atomics on system memory
>>    *  - %DRM_XE_QUERY_CONFIG_MIN_ALIGNMENT - Minimal memory alignment
>>    *    required by this device, typically SZ_4K or SZ_64K
>>    *  - %DRM_XE_QUERY_CONFIG_VA_BITS - Maximum bits of a virtual address
>> @@ -404,7 +406,8 @@ struct drm_xe_query_config {
>>   
>>   #define DRM_XE_QUERY_CONFIG_REV_AND_DEVICE_ID	0
>>   #define DRM_XE_QUERY_CONFIG_FLAGS			1
>> -	#define DRM_XE_QUERY_CONFIG_FLAG_HAS_VRAM	(1 << 0)
>> +	#define DRM_XE_QUERY_CONFIG_FLAG_HAS_VRAM		(1 << 0)
>> +	#define DRM_XE_QUERY_CONFIG_FLAG_HAS_DEV_ATOMIC_ON_SMEM	(1 << 1)
>
>
> I find this flag a bit confusing, because it would imply that 
> platforms that do not report this flag don't suppoort atomics on smem.
>
> But for DG2/MTL/TGL (if officially supported by Xe), that's not the 
> case, yet they do support this.
>
This query should return true for DG2/MTL/TGL but I missed setting 
has_device_atomics_on_smem on those platform.

>
> Maybe renaming this 
> toDRM_XE_QUERY_CONFIG_FLAG_HAS_EXPLICIT_DEV_ATOMIC_ON_SMEM would make 
> more sense.
>
> Meaning the platform requires a specific vm_bind flag to get atomics 
> working on SMEM only BO.
>
We could do that but we would need another query flag to indicate when a 
platform doesn't support dev atomics SMEM only BO at all like PVC.

So I think let's keep it DRM_XE_QUERY_CONFIG_FLAG_HAS_DEV_ATOMIC_ON_SMEM 
which will return true for all platform but PVC at this moment.

On platforms that doesn't have the new PTE bit, this flag will have no 
effect. Let me know what do you think?

Regards,

Nirmoy

> -Lionel
>
>
>>   #define DRM_XE_QUERY_CONFIG_MIN_ALIGNMENT		2
>>   #define DRM_XE_QUERY_CONFIG_VA_BITS			3
>>   #define DRM_XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY	4
>
>

[-- Attachment #2: Type: text/html, Size: 5280 bytes --]

  reply	other threads:[~2024-04-22  8:53 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-15 14:52 [PATCH v3 0/7] Enable device atomics with a VM bind flag Nirmoy Das
2024-04-15 14:52 ` [PATCH v3 1/7] drm/xe: Introduce has_atomic_enable_pte_bit device info Nirmoy Das
2024-04-19 16:06   ` Zeng, Oak
2024-04-15 14:52 ` [PATCH v3 2/7] drm/xe: Consolidate setting PTE_AE into one place Nirmoy Das
2024-04-16 14:33   ` Nirmoy Das
2024-04-19 18:35   ` Zeng, Oak
2024-04-22  8:18     ` Nirmoy Das
2024-04-15 14:52 ` [PATCH v3 3/7] drm/xe: Add function to check if BO has single placement Nirmoy Das
2024-04-15 14:52 ` [PATCH v3 4/7] drm/xe: Move vm bind bo validation to a helper function Nirmoy Das
2024-04-16  0:55   ` Matthew Brost
2024-04-16 13:32     ` Nirmoy Das
2024-04-19 20:14   ` Zeng, Oak
2024-04-15 14:52 ` [PATCH v3 5/7] drm/xe: Introduce has_device_atomics_on_smem device info Nirmoy Das
2024-04-19 20:24   ` Zeng, Oak
2024-04-15 14:52 ` [PATCH v3 6/7] drm/xe/uapi: Introduce VMA bind flag for device atomics Nirmoy Das
2024-04-19  7:16   ` Lionel Landwerlin
2024-04-22  8:39     ` Nirmoy Das
2024-04-19 21:04   ` Zeng, Oak
2024-04-22 10:12     ` Nirmoy Das
2024-04-22 21:39       ` Zeng, Oak
2024-04-23 12:33         ` Nirmoy Das
2024-04-15 14:52 ` [PATCH v3 7/7] drm/xe/uapi: Add a query flag for has_device_atomics_on_smem Nirmoy Das
2024-04-19  7:08   ` Lionel Landwerlin
2024-04-22  8:53     ` Nirmoy Das [this message]
2024-04-19 21:06   ` Zeng, Oak
2024-04-15 21:19 ` ✓ CI.Patch_applied: success for Enable device atomics with a VM bind flag (rev3) Patchwork
2024-04-15 21:19 ` ✓ CI.checkpatch: " Patchwork
2024-04-15 21:21 ` ✓ CI.KUnit: " Patchwork
2024-04-15 21:37 ` ✓ CI.Build: " Patchwork
2024-04-15 21:40 ` ✓ CI.Hooks: " Patchwork
2024-04-15 21:41 ` ✓ CI.checksparse: " Patchwork
2024-04-15 22:22 ` ✗ CI.BAT: failure " Patchwork
2024-04-16 13:46 ` ✓ CI.FULL: success " Patchwork
2024-04-19  7:17 ` [PATCH v3 0/7] Enable device atomics with a VM bind flag Lionel Landwerlin
2024-04-22 10:13   ` Nirmoy Das
2024-04-22 14:50 ` 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=84ad50d6-2668-4269-b6b0-72da57b0b324@linux.intel.com \
    --to=nirmoy.das@linux.intel.com \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=lionel.g.landwerlin@intel.com \
    --cc=nirmoy.das@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