Hi Boris, Minor spelling issues to raise in the documentation text uAPI: On Mon, Jan 22, 2024 at 05:30:32PM +0100, Boris Brezillon wrote: > Panthor follows the lead of other recently submitted drivers with > ioctls allowing us to support modern Vulkan features, like sparse memory > binding: > > - Pretty standard GEM management ioctls (BO_CREATE and BO_MMAP_OFFSET), > with the 'exclusive-VM' bit to speed-up BO reservation on job submission > - VM management ioctls (VM_CREATE, VM_DESTROY and VM_BIND). The VM_BIND > ioctl is loosely based on the Xe model, and can handle both > asynchronous and synchronous requests > - GPU execution context creation/destruction, tiler heap context creation > and job submission. Those ioctls reflect how the hardware/scheduler > works and are thus driver specific. > > We also have a way to expose IO regions, such that the usermode driver > can directly access specific/well-isolate registers, like the > LATEST_FLUSH register used to implement cache-flush reduction. > > This uAPI intentionally keeps usermode queues out of the scope, which > explains why doorbell registers and command stream ring-buffers are not > directly exposed to userspace. > > v4: > - Add a VM_GET_STATE ioctl > - Fix doc > - Expose the CORE_FEATURES register so we can deal with variants in the > UMD > - Add Steve's R-b > [snip] > + > +/** > + * enum drm_panthor_vm_state - VM states. > + */ > +enum drm_panthor_vm_state { > + /** > + * @DRM_PANTHOR_VM_STATE_USABLE: VM is usable. > + * > + * New VM operations will be accepted on this VM. > + */ > + DRM_PANTHOR_VM_STATE_USABLE, > + > + /** > + * @DRM_PANTHOR_VM_STATE_UNSABLE: VM is unsable. s/UNSABLE/UNUSABLE/ and s/unsable/unusable/ > + * > + * Something put the VM in an unusable state (like an asynchronous > + * VM_BIND request failing for any reason). > + * > + * Once the VM is in this state, all new MAP operations will be > + * rejected, and any GPU job targeting this VM will fail. > + * UNMAP operations are still accepted. > + * > + * The only way to recover from an unusable VM is to create a new > + * VM, and destroy the old one. > + */ > + DRM_PANTHOR_VM_STATE_UNUSABLE, > +}; > + [snip] The rest of the patch looks good to me! Reviewed-by: Liviu Dudau <liviu.dudau@xxxxxxx> Best regards, Liviu -- ==================== | I would like to | | fix the world, | | but they're not | | giving me the | \ source code! / --------------- ¯\_(ツ)_/¯