[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Pinned, non-revocable mappings of VRAM: will bad things happen?


  • To: Demi Marie Obenour <demiobenour@xxxxxxxxx>, dri-devel@xxxxxxxxxxxxxxxxxxxxx, Xen developer discussion <xen-devel@xxxxxxxxxxxxxxxxxxxx>, linux-media@xxxxxxxxxxxxxxx
  • From: Christian König <christian.koenig@xxxxxxx>
  • Date: Fri, 17 Apr 2026 09:53:52 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=xI41eCdxT3vHHUSP6mcueoyvicczs1k4tmRDnqD8o30=; b=ESRXJ3T8IjwDYBQuza0F+Nc8luOf83vdiANBkzFC3o8SSnV91/QeGW1EizU2HPAZqV7HSQ/6jGyA6ijNeXZG+Az2XpcFVMlLbLrsK3LhRbeEc6wXsJszFIt8yQxQykl6TSwpl66E7OiynWKKAbEsHJAu9fWH03vA0CNLAmGKRPjEa3TMNRb1sW9tDJTm3AHQV9KpjhII4nh6U6mhdqqTAOpfzgCbakR/qxJINPSfvTZpV9ITQOCxW4NlgP1LHIDpra3+j4VwsKw74PgilGTZ6omsxWLmn6otqIKXt4S0HZVq2sRrQu0TR/CzPUFy4Ua7XVeA07yn+p3KLJ/KZLY2XQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iwwfUQNOsZyMgVOxTdoZhcOP+NTpog2V3nabtDcbgvjR/HltgFj/lTD8pUia4edheIbLi+1dofd5zQSF5v+lNS7d6/L/XWRvi/qleQc8k/ciH4suXj5/hVtvuHgMdvCZ0o3EqciSgCsfQTdq19uwy2Gp/VDNLjIu3B5ZuWTFpMKnbA42284Yv885dyPUaMNNONnGwQAHWMKH936gvcxKKA/eeNprOncE1sb6obQUE/9IetbA7NrxcJaF48uQKLcsQGYSk2JOfV1QU7rBKDUMXTVlR28ShbKAJwPkN8n64c/6VYhq2rePysadV9pbPUQH0svq2mmmy7KLjeh8AImVLg==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com;
  • Cc: Val Packett <val@xxxxxxxxxxxxxxxxxxxxxx>, Suwit Semal <sumit.semwal@xxxxxxxxxx>
  • Delivery-date: Fri, 17 Apr 2026 07:54:12 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 4/16/26 18:13, Demi Marie Obenour wrote:
> On 4/16/26 05:57, Christian König wrote:
>> On 4/16/26 01:27, Demi Marie Obenour wrote:
>>> Is it safe to assume that if a dmabuf exporter cannot handle
>>> non-revocable, pinned importers, it will fail the import?  Or is
>>> using dma_buf_pin() unsafe if one does not know the exporter?
>>
>> Neither.
>>
>> dma_buf_pin() makes sure that the importer doesn't get any invalidation 
>> notifications because the exporter moves the backing store of the buffer 
>> around for memory management.
>>
>> But what is still possible is that the exporter is hot removed, in which 
>> case the importer should basically terminate it's DMA operation as soon as 
>> possible.
>>
>> GPU drivers usually reject pin requests to VRAM from DMA-buf importers when 
>> that isn't restricted by cgroups for example, because that can otherwise 
>> easily result in a deny of service.
>>
>> Amdgpu only recently started to allow pinning into VRAM to support RDMA 
>> without ODP (I think it was ODP, but could be that I mixed up the RDMA three 
>> letter code for that feature).
>>
>>> For context, Xen grant tables do not support revocation.  One can ask
>>> the guest to unmap the grants, but if the guest doesn't obey the only
>>> recourse is to ungracefully kill it.  They also do not support page
>>> faults, so the pages must be pinned.  Right now, grant tables don't
>>> support PCI BAR mappings, but that's fixable.
>>
>> That sounds like an use case for the DMA-buf pin interface.
>>
>>> How badly is this going to break with dGPU VRAM, if at all?  I know
>>> that AMDGPU has a fallback when the BAR isn't mappable.  What about
>>> other drivers?  Supporting page faults the way KVM does is going to
>>> be extremely hard, so pinned mappings and DMA transfers are vastly
>>> preferable.
>>
>> Well if you only want to share a fixed amount of VRAM then that is pretty 
>> much ok.
>>
>> But when the client VM can trigger pinning on demand without any limitation 
>> you can pretty easily have deny of service against the host. That is usually 
>> a rather bad idea.
> 
> Is there a reasonable way to choose such an amount?

Not really.

> Unless I am
> mistaken, client workloads are highly non-uniform: a single game or
> compute job might well use more VRAM than every other program on the
> system combined.

Yeah, perfectly correct.

> Are these workloads impossible to make work well with pinning?

No, as long as you don't know the workload beforehand, e.g. when you define the 
limit.

I mean that's why basically everybody avoids pinning and assigning fixed 
amounts of resources.

Even if you can make it work technically pinning usually results in a rather 
bad end user experience.

Regards,
Christian.



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.