On Fri, May 20, 2022 at 12:47 AM Tejun Heo tj@kernel.org wrote:
Hello,
On Tue, May 17, 2022 at 04:30:29PM -0700, T.J. Mercier wrote:
Thanks for your suggestion. This almost works. "dmabuf" as a key could work, but I'd actually like to account for each heap. Since heaps can be dynamically added, I can't accommodate every potential heap name by hardcoding registrations in the misc controller.
On its own, that's a pretty weak reason to be adding a separate gpu controller especially given that it doesn't really seem to be one with proper abstractions for gpu resources. We don't want to keep adding random keys to misc controller but can definitely add limited flexibility. What kind of keys do you need?
Well the dmabuf-from-heaps component of this is the initial use case. I was envisioning we'd have additional keys as discussed here: https://lore.kernel.org/lkml/20220328035951.1817417-1-tjmercier@google.com/T... So we'd end up with a well-defined core set of keys like "system", and then drivers would be free to use their own keys for their own unique purposes which could be complementary or orthogonal to the core set. Yesterday I was talking with someone who is interested in limiting gpu cores and bus IDs in addition to gpu memory. How to define core keys is the part where it looks like there's trouble.
For my use case it would be sufficient to have current and maximum values for an arbitrary number of keys - one per heap. So the only part missing from the misc controller (for my use case) is the ability to register a new key at runtime as heaps are added. Instead of keeping track of resources with enum misc_res_type, requesting a resource handle/ID from the misc controller at runtime is what I think would be required instead.
Thanks.
-- tejun