lkml.org 
[lkml]   [2022]   [Jan]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
Subject[RFC 4/6] dma-buf: Add DMA-BUF exporter op to charge a DMA-BUF to a cgroup.
From
The optional exporter op provides a way for processes to transfer
charge of a buffer to a different process. This is essential for the
cases where a central allocator process does allocations for various
subsystems, hands over the fd to the client who
requested the memory and drops all references to the allocated memory.

Signed-off-by: Hridya Valsaraju <hridya@google.com>
---
include/linux/dma-buf.h | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
index 7ab50076e7a6..d5e52f81cc6f 100644
--- a/include/linux/dma-buf.h
+++ b/include/linux/dma-buf.h
@@ -13,6 +13,7 @@
#ifndef __DMA_BUF_H__
#define __DMA_BUF_H__

+#include <linux/cgroup_gpu.h>
#include <linux/dma-buf-map.h>
#include <linux/file.h>
#include <linux/err.h>
@@ -285,6 +286,23 @@ struct dma_buf_ops {

int (*vmap)(struct dma_buf *dmabuf, struct dma_buf_map *map);
void (*vunmap)(struct dma_buf *dmabuf, struct dma_buf_map *map);
+
+ /**
+ * @charge_to_cgroup:
+ *
+ * This is called by an exporter to charge a buffer to the specified
+ * cgroup. The caller must hold a reference to @gpucg obtained via
+ * gpucg_get(). The DMA-BUF will be uncharged from the cgroup it is
+ * currently charged to before being charged to @gpucg. The caller must
+ * belong to the cgroup the buffer is currently charged to.
+ *
+ * This callback is optional.
+ *
+ * Returns:
+ *
+ * 0 on success or negative error code on failure.
+ */
+ int (*charge_to_cgroup)(struct dma_buf *dmabuf, struct gpucg *gpucg);
};

/**
--
2.34.1.703.g22d0c6ccf7-goog
\
 
 \ /
  Last update: 2022-01-15 02:09    [W:0.075 / U:0.492 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site