drm/xe/exec: A couple of fixes around the dma-fence signalling critical path
A couple of fixes around the exec dma-fence signalling critical path.
The first patch deals with performing the userptr invalidation check before arming the sched job. That moves away one point of failure from the dma-fence critical path and also a potential lockdep inversion since we want to be able to wait for fence inside the userptr notifier lock if needed (amdgpu does this, but IMO unnecessarily).
The first patch annotates everything between job arm and job push as dma-fence signalling critcal path, and that reveals a lockdep problem that is fixed in the second patch.
The second patch moves xe sync object dependency adding to before the dma-fence signalling critical path and also removes one point of failure from it.
The third patch deals with performing the userptr invalidation check before arming the sched job. That also moves away one point of failure from the dma-fence critical path and also a potential lockdep inversion since we want to be able to wait for fence inside the userptr notifier lock if needed (amdgpu does this, but IMO unnecessarily).