[PATCH 0/3] Enable device atomics with a VM bind flag

Zeng, Oak oak.zeng at intel.com
Thu Apr 11 16:22:06 UTC 2024



> -----Original Message-----
> From: Das, Nirmoy <nirmoy.das at intel.com>
> Sent: Wednesday, April 10, 2024 1:03 PM
> To: intel-xe at lists.freedesktop.org
> Cc: Das, Nirmoy <nirmoy.das at intel.com>; Vivekanandan, Balasubramani
> <balasubramani.vivekanandan at intel.com>; Welty, Brian
> <brian.welty at intel.com>; Yang, Fei <fei.yang at intel.com>; Landwerlin, Lionel G
> <lionel.g.landwerlin at intel.com>; Roper, Matthew D
> <matthew.d.roper at intel.com>; Brost, Matthew <matthew.brost at intel.com>;
> Mrozek, Michal <michal.mrozek at intel.com>; Zeng, Oak <oak.zeng at intel.com>;
> Thomas Hellstr_m <thomas.hellstrom at linux.intel.com>
> Subject: [PATCH 0/3] Enable device atomics with a VM bind flag
> 
> Currently device atomics in SMEM only buffer is not supported and
> given that simultaneous usage of device atomics and CPU atomics on
> the same SMEM buffer is not guaranteed to function without migration,
> and UMD expects no migration for SMEM-only buffer objects, so this
> provide a way to set device atomics when UMD is certain to use the
> buffer only for device atomics.

If I understand it correctly, per umd-kmd contract, kmd should assume all shared allocations support system-wide atomic by default (i.e. even if there is not any user settings). So if we want to introduce API to let user to say "only device atomic is expected on this allocation", the API would be "No system-wide atomics on this allocation".

Similarly, we can introduce API to let user say:
	there is no atomics expected to this allocation
	no device atomic or
	no host atomic

But the above assumption (all allocation by default support system-wide atomics) doesn't work for device or host allocations on some platform, i.e., as explained in the commit message...

So the API format is still an open to me. Should we define thing similar to umd api here: https://spec.oneapi.io/level-zero/latest/core/api.html#ze-memory-atomic-attr-exp-flags-t

Oak


> 
> Test-with: 20240410170041.24963-1-nirmoy.das at intel.com
> Cc: Balasubramani Vivekanandan <balasubramani.vivekanandan at intel.com>
> Cc: Brian Welty <brian.welty at intel.com>
> Cc: Fei Yang <fei.yang at intel.com>
> Cc: Lionel G Landwerlin <lionel.g.landwerlin at intel.com>
> Cc: Matt Roper <matthew.d.roper at intel.com>
> Cc: Matthew Brost <matthew.brost at intel.com>
> Cc: Michal Mrozek <michal.mrozek at intel.com>
> Cc: Oak Zeng <oak.zeng at intel.com>
> Cc: Thomas Hellstr_m <thomas.hellstrom at linux.intel.com>
> 
> Nirmoy Das (3):
>   drm/xe: Consolidate setting PTE_AE into one place
>   drm/xe: Add function to check if BO has single placement
>   drm/xe/uapi: Introduce VMA bind flag for device atomics
> 
>  drivers/gpu/drm/xe/xe_bo.c       | 14 ++++++++++++++
>  drivers/gpu/drm/xe/xe_bo.h       |  1 +
>  drivers/gpu/drm/xe/xe_pt.c       |  4 +---
>  drivers/gpu/drm/xe/xe_vm.c       | 32 ++++++++++++++++++++++++++++----
>  drivers/gpu/drm/xe/xe_vm_types.h |  2 ++
>  include/uapi/drm/xe_drm.h        |  9 +++++----
>  6 files changed, 51 insertions(+), 11 deletions(-)
> 
> --
> 2.42.0



More information about the Intel-xe mailing list