nouveau: multithreading fixes
Fixes multithreading inside nouveau by moving move stuff into the context. Fencing is probably the biggest change here. Nothing too complicated going on overall.
I'd like to merge it directly after the next release gets branched out. This MR itself is easily backportable so if distributions want to quick multithreading in older releases downstream, they are free to do so with this MR. It should contain everything needed. The only additional patch to backport would be this one: de0a0d2f
- State tracking issues in drivers. Especially the text are is causing issues.
- Get more distributions/users to test those patches
On nv50 I hit the issue where some pushbuffer submits are not worked through on the hw. No idea if that's only limited to the fencing part or if that includes the entire pushbuffer.
usleepprior kicking does help, so it might be some stupid timing issue.