On Fri, Feb 11, 2022 at 8:18 AM T.J. Mercier <tjmercier@xxxxxxxxxx> wrote: > > This patch series revisits the proposal for a GPU cgroup controller to > track and limit memory allocations by various device/allocator > subsystems. The patch series also contains a simple prototype to > illustrate how Android intends to implement DMA-BUF allocator > attribution using the GPU cgroup controller. The prototype does not > include resource limit enforcements. > > Changelog: > > v2: > See the previous revision of this change submitted by Hridya Valsaraju > at: https://lore.kernel.org/all/20220115010622.3185921-1-hridya@xxxxxxxxxx/ > > Move dma-buf cgroup charge transfer from a dma_buf_op defined by every > heap to a single dma-buf function for all heaps per Daniel Vetter and > Christian König. Pointers to struct gpucg and struct gpucg_device > tracking the current associations were added to the dma_buf struct to > achieve this. > > Fix incorrect Kconfig help section indentation per Randy Dunlap. > > History of the GPU cgroup controller > ==================================== > The GPU/DRM cgroup controller came into being when a consensus[1] > was reached that the resources it tracked were unsuitable to be integrated > into memcg. Originally, the proposed controller was specific to the DRM > subsystem and was intended to track GEM buffers and GPU-specific > resources[2]. In order to help establish a unified memory accounting model > for all GPU and all related subsystems, Daniel Vetter put forth a > suggestion to move it out of the DRM subsystem so that it can be used by > other DMA-BUF exporters as well[3]. This RFC proposes an interface that > does the same. > > [1]: https://patchwork.kernel.org/project/dri-devel/cover/20190501140438.9506-1-brian.welty@xxxxxxxxx/#22624705 > [2]: https://lore.kernel.org/amd-gfx/20210126214626.16260-1-brian.welty@xxxxxxxxx/ > [3]: https://lore.kernel.org/amd-gfx/YCVOl8%2F87bqRSQei@phenom.ffwll.local/ > > T.J. Mercier (6): > gpu: rfc: Proposal for a GPU cgroup controller > cgroup: gpu: Add a cgroup controller for allocator attribution of GPU > memory > dmabuf: Use the GPU cgroup charge/uncharge APIs > dmabuf: heaps: export system_heap buffers with GPU cgroup charging > dmabuf: Add gpu cgroup charge transfer function > android: binder: Add a buffer flag to relinquish ownership of fds > > Documentation/gpu/rfc/gpu-cgroup.rst | 195 +++++++++++++++++ > Documentation/gpu/rfc/index.rst | 4 + > drivers/android/binder.c | 26 +++ > drivers/dma-buf/dma-buf.c | 100 +++++++++ > drivers/dma-buf/dma-heap.c | 27 +++ > drivers/dma-buf/heaps/system_heap.c | 3 + > include/linux/cgroup_gpu.h | 127 +++++++++++ > include/linux/cgroup_subsys.h | 4 + > include/linux/dma-buf.h | 22 +- > include/linux/dma-heap.h | 11 + > include/uapi/linux/android/binder.h | 1 + > init/Kconfig | 7 + > kernel/cgroup/Makefile | 1 + > kernel/cgroup/gpu.c | 304 +++++++++++++++++++++++++++ > 14 files changed, 830 insertions(+), 2 deletions(-) > create mode 100644 Documentation/gpu/rfc/gpu-cgroup.rst > create mode 100644 include/linux/cgroup_gpu.h > create mode 100644 kernel/cgroup/gpu.c > > -- > 2.35.1.265.g69c8d7142f-goog > Gentle nudge to GPU maintainers to please provide their feedback on this RFC. Thanks!