On 2023-04-26 04:52:43, Daniel Vetter wrote: > > Joonas asked me to put my thoughts here: > > - in general the "feature discovery by trying it out" approach is most > robust and hence preferred, but it's also not something that's required > when there's good reasons against it More robust in what sense? Userspace has to set up some scenario to use the interface, which hopefully is not too complex. It's difficult to predict what it may look like in the future since we are talking about undefined extensions. Userspace has to rely on the kernel making creating and destroying this thing essentially free. For I915_GEM_CREATE_EXT_PROTECTED_CONTENT, that did not work out. For I915_GEM_CREATE_EXT_SET_PAT, just wondering, since the PAT indices are platform specific, what might happen if we tried to choose some common index value to detect the extension in a generic manner? Could it potentially lead to unexpected behavior, or maybe just an error. I guess it's really extension specific what kind of issues potentially could arise. > tldr; prefer discovery, don't sweat it if not, definitely don't > overengineer this with some magic "give me all extensions" thing because > that results in guaranteed cross-component backporting pains sooner or > later. Or inconsistency, which defeats the point. I guess I don't know the full context of your concerns here. For returning the gem-create extensions, isn't this just a matter of returning the valid indices to the create_extensions array in i915_gem_create.c? Is that an over-engineered query? It seems weird that there's a reasonably well defined "extension" mechanism here, but no way for the kernel to just tell us what extensions it knows about. -Jordan