On Fri, May 7, 2021 at 4:59 PM Tejun Heo <tj@xxxxxxxxxx> wrote: > > Hello, > > On Fri, May 07, 2021 at 03:55:39PM -0400, Alex Deucher wrote: > > The problem is temporal partitioning on GPUs is much harder to enforce > > unless you have a special case like SR-IOV. Spatial partitioning, on > > AMD GPUs at least, is widely available and easily enforced. What is > > the point of implementing temporal style cgroups if no one can enforce > > it effectively? > > So, if generic fine-grained partitioning can't be implemented, the right > thing to do is stopping pushing for full-blown cgroup interface for it. The > hardware simply isn't capable of being managed in a way which allows generic > fine-grained hierarchical scheduling and there's no point in bloating the > interface with half baked hardware dependent features. > > This isn't to say that there's no way to support them, but what have been > being proposed is way too generic and ambitious in terms of interface while > being poorly developed on the internal abstraction and mechanism front. If > the hardware can't do generic, either implement the barest minimum interface > (e.g. be a part of misc controller) or go driver-specific - the feature is > hardware specific anyway. I've repeated this multiple times in these > discussions now but it'd be really helpful to try to minimize the interace > while concentrating more on internal abstractions and actual control > mechanisms. Maybe we are speaking past each other. I'm not following. We got here because a device specific cgroup didn't make sense. With my Linux user hat on, that makes sense. I don't want to write code to a bunch of device specific interfaces if I can avoid it. But as for temporal vs spatial partitioning of the GPU, the argument seems to be a sort of hand-wavy one that both spatial and temporal partitioning make sense on CPUs, but only temporal partitioning makes sense on GPUs. I'm trying to understand that assertion. There are some GPUs that can more easily be temporally partitioned and some that can be more easily spatially partitioned. It doesn't seem any different than CPUs. Alex