Re: [PATCH] drm/xe: Reject page faults from non-fault-mode scratch VMs

Matthew Brost <[email protected]>
Newsgroups org.freedesktop.lists.intel-xe
Message-ID <[email protected]>
On Thu, Aug 20, 2026 at 12:24:45PM +0530, Arvind Yadav wrote:
> Having scratch enabled does not make a VM capable of handling recoverable
> page faults. Allowing scratch VMs through the ASID lookup also admits
> dma-fence mode VMs.
> 
> If such a VM faults on an already valid VMA, the handler reports success
> without fixing the fault, causing the GPU to retry indefinitely.
> 
> Only allow fault-mode VMs through the ASID lookup. Fault-mode VMs using
> scratch remain supported, while faults from 3D VMs are rejected.
> 
> Fixes: ad9843aac91a ("drm/xe/madvise: Implement purgeable buffer object support")
> Cc: Matthew Brost <[email protected]>

Reviewed-by: Matthew Brost <[email protected]>

> Cc: Thomas Hellström <[email protected]>
> Cc: Himal Prasad Ghimiray <[email protected]>
> Suggested-by: Matthew Brost <[email protected]>
> Signed-off-by: Arvind Yadav <[email protected]>
> ---
>  drivers/gpu/drm/xe/xe_pagefault.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_pagefault.c b/drivers/gpu/drm/xe/xe_pagefault.c
> index b2d7bca9e407..19cc7c59bec4 100644
> --- a/drivers/gpu/drm/xe/xe_pagefault.c
> +++ b/drivers/gpu/drm/xe/xe_pagefault.c
> @@ -234,7 +234,7 @@ static struct xe_vm *xe_pagefault_asid_to_vm(struct xe_device *xe, u32 asid)
>  
>  	down_read(&xe->usm.lock);
>  	vm = xa_load(&xe->usm.asid_to_vm, asid);
> -	if (vm && (xe_vm_in_fault_mode(vm) || xe_vm_has_scratch(vm)))
> +	if (vm && xe_vm_in_fault_mode(vm))
>  		xe_vm_get(vm);
>  	else
>  		vm = ERR_PTR(-EINVAL);
> -- 
> 2.43.0
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.