All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nirmoy Das <nirmoy.das@linux.intel.com>
To: Matt Roper <matthew.d.roper@intel.com>,
	Nirmoy Das <nirmoy.das@intel.com>
Cc: intel-xe@lists.freedesktop.org
Subject: Re: [PATCH 1/3] drm/xe: Consolidate setting PTE_AE into one place
Date: Fri, 12 Apr 2024 11:34:40 +0200	[thread overview]
Message-ID: <cefb9860-9c63-45bc-95b8-db5d8558a600@linux.intel.com> (raw)
In-Reply-To: <20240411232243.GG6571@mdroper-desk1.amr.corp.intel.com>

Hi Matt,

On 4/12/2024 1:22 AM, Matt Roper wrote:
> On Wed, Apr 10, 2024 at 07:03:06PM +0200, Nirmoy Das wrote:
>> Currently decision to set PTE_AE is spread between xe_pt
>> and xe_vm files and there is no reason to be keep it that
>> way. Consolidate the logic for better maintainability.
> Does this series bisect properly?  I.e., if we run the driver with this
> patch applied, but the other two patches missing, isn't it going to turn
> on the AE bit in the page table in some BMG SMEM cases where it
> shouldn't?  It seems like we should at least mention that in the commit
> message to avoid confusion.
Sorry for the confusion; it came up because I made a mistake with the 
if-conditions. I didn't intend to introduce any functional changes with 
this patch.

Version 2 corrects the if-condition, which now only allows setting 
PTE_AE on PVC+VRAM, XE2+VRAM, and XE2+iGFX, thus maintaining the 
functionality as it was

Regards,

Nirmoy

>
>
> Matt
>
>> This also remove the extra care needed for PVC which only
>> allows setting PTE_AE for LMEM.
>>
>> Signed-off-by: Nirmoy Das <nirmoy.das@intel.com>
>> ---
>>   drivers/gpu/drm/xe/xe_pt.c | 4 +---
>>   drivers/gpu/drm/xe/xe_vm.c | 7 ++++---
>>   2 files changed, 5 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
>> index 5b7930f46cf3..7dc13a8bb44f 100644
>> --- a/drivers/gpu/drm/xe/xe_pt.c
>> +++ b/drivers/gpu/drm/xe/xe_pt.c
>> @@ -597,7 +597,6 @@ static int
>>   xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
>>   		 struct xe_vm_pgtable_update *entries, u32 *num_entries)
>>   {
>> -	struct xe_device *xe = tile_to_xe(tile);
>>   	struct xe_bo *bo = xe_vma_bo(vma);
>>   	bool is_devmem = !xe_vma_is_userptr(vma) && bo &&
>>   		(xe_bo_is_vram(bo) || xe_bo_is_stolen_devmem(bo));
>> @@ -619,8 +618,7 @@ xe_pt_stage_bind(struct xe_tile *tile, struct xe_vma *vma,
>>   	struct xe_pt *pt = xe_vma_vm(vma)->pt_root[tile->id];
>>   	int ret;
>>   
>> -	if ((vma->gpuva.flags & XE_VMA_ATOMIC_PTE_BIT) &&
>> -	    (is_devmem || !IS_DGFX(xe)))
>> +	if (vma->gpuva.flags & XE_VMA_ATOMIC_PTE_BIT)
>>   		xe_walk.default_pte |= XE_USM_PPGTT_PTE_AE;
>>   
>>   	if (is_devmem) {
>> diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
>> index a196dbe65252..8f3474c5f480 100644
>> --- a/drivers/gpu/drm/xe/xe_vm.c
>> +++ b/drivers/gpu/drm/xe/xe_vm.c
>> @@ -904,9 +904,6 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
>>   	for_each_tile(tile, vm->xe, id)
>>   		vma->tile_mask |= 0x1 << id;
>>   
>> -	if (GRAPHICS_VER(vm->xe) >= 20 || vm->xe->info.platform == XE_PVC)
>> -		vma->gpuva.flags |= XE_VMA_ATOMIC_PTE_BIT;
>> -
>>   	vma->pat_index = pat_index;
>>   
>>   	if (bo) {
>> @@ -914,6 +911,10 @@ static struct xe_vma *xe_vma_create(struct xe_vm *vm,
>>   
>>   		xe_bo_assert_held(bo);
>>   
>> +		if (GRAPHICS_VER(vm->xe) >= 20 || xe_bo_is_vram(bo) ||
>> +		    !IS_DGFX(vm->xe))
>> +			vma->gpuva.flags |= XE_VMA_ATOMIC_PTE_BIT;
>> +
>>   		vm_bo = drm_gpuvm_bo_obtain(vma->gpuva.vm, &bo->ttm.base);
>>   		if (IS_ERR(vm_bo)) {
>>   			xe_vma_free(vma);
>> -- 
>> 2.42.0
>>

  reply	other threads:[~2024-04-12  9:34 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-10 17:03 [PATCH 0/3] Enable device atomics with a VM bind flag Nirmoy Das
2024-04-10 17:03 ` [PATCH 1/3] drm/xe: Consolidate setting PTE_AE into one place Nirmoy Das
2024-04-11 23:22   ` Matt Roper
2024-04-12  9:34     ` Nirmoy Das [this message]
2024-04-12 11:33       ` Nirmoy Das
2024-04-10 17:03 ` [PATCH 2/3] drm/xe: Add function to check if BO has single placement Nirmoy Das
2024-04-10 17:03 ` [PATCH 3/3] drm/xe/uapi: Introduce VMA bind flag for device atomics Nirmoy Das
2024-04-10 17:35   ` Matthew Brost
2024-04-11  9:22     ` Nirmoy Das
2024-04-11 14:00     ` Nirmoy Das
2024-04-11 13:14   ` Lionel Landwerlin
2024-04-11 13:32     ` Lionel Landwerlin
2024-04-11 13:42     ` Nirmoy Das
2024-04-11 14:00       ` Lionel Landwerlin
2024-04-11 14:07         ` Souza, Jose
2024-04-11 14:32           ` Nirmoy Das
2024-04-11 14:40             ` Souza, Jose
2024-04-11 14:54               ` Nirmoy Das
2024-04-11 23:44   ` Matt Roper
2024-04-12  8:06     ` Nirmoy Das
2024-04-10 18:04 ` ✓ CI.Patch_applied: success for Enable device atomics with a VM bind flag Patchwork
2024-04-10 18:04 ` ✓ CI.checkpatch: " Patchwork
2024-04-10 18:04 ` ✗ CI.KUnit: failure " Patchwork
2024-04-11 16:22 ` [PATCH 0/3] " Zeng, Oak
2024-04-11 17:00   ` Nirmoy Das
2024-04-11 17:23     ` Zeng, Oak
2024-04-12  5:06       ` Mrozek, Michal

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=cefb9860-9c63-45bc-95b8-db5d8558a600@linux.intel.com \
    --to=nirmoy.das@linux.intel.com \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=matthew.d.roper@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.