Message ID | 20220211161831.3493782-1-tjmercier@google.com (mailing list archive) |
---|---|
Headers | show |
Series | Proposal for a GPU cgroup controller | expand |
Hello, On Fri, Feb 11, 2022 at 04:18:23PM +0000, T.J. Mercier wrote: > 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@intel.com/#22624705 > [2]: https://lore.kernel.org/amd-gfx/20210126214626.16260-1-brian.welty@intel.com/ > [3]: https://lore.kernel.org/amd-gfx/YCVOl8%2F87bqRSQei@phenom.ffwll.local/ IIRC, the only consensus was that it needs to be a separate controller and folks had trouble agreeing on resource types, control mechanism and interface. Imma keep an eye on how the discussion develops among GPU folks. Please feel free to ping if there's an area my input may be useful. Thanks.
On Fri, Feb 11, 2022 at 8:18 AM T.J. Mercier <tjmercier@google.com> 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@google.com/ > > 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@intel.com/#22624705 > [2]: https://lore.kernel.org/amd-gfx/20210126214626.16260-1-brian.welty@intel.com/ > [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!