2012/1/31 Jerome Glisse <j.glisse@xxxxxxxxx>: > On Tue, Jan 31, 2012 at 06:56:01PM +0100, Michel Dänzer wrote: >> On Die, 2012-01-31 at 16:59 +0000, Simon Farnsworth wrote: >> > Userspace currently busywaits for fences to complete; on my workload, this >> > busywait consumes 10% of the available CPU time. >> > >> > Provide an ioctl so that userspace can wait for an EOP interrupt that >> > corresponds to a previous EVENT_WRITE_EOP. >> > >> > Signed-off-by: Simon Farnsworth <simon.farnsworth@xxxxxxxxxxxx> >> > --- >> > I've been working on top of Jerome's tiling patches, so this doesn't apply >> > directly on top of current upstream kernels. I can easily rebase to another >> > version upon request - just point me to a git tree. >> > >> > My goal is to remove the sched_yield in Mesa's r600_fence_finish given up to >> > date enough kernel; I hope, though, that the interface is clean enough for >> > other users to extend it in the future (e.g. using compute rings). >> >> I'm afraid not: Unless I'm missing something, userspace can't know which >> ring the kernel submitted the CS to, and the kernel can't guess which >> ring userspace needs to wait for. > > iirc the plan was to add a return value to cs ioctl and add an ioctl to > allow to wait on this return value. ie allowing userspace to wait on > specific submited cs. You don't need a new API for that, r300g already does that. It adds a dummy relocation and later uses GEM_WAIT_IDLE to wait for it. r600g can be updated to do the same thing without kernel changes (besides, we must support the old kernels as well, so this is a no-brainer). What would be much more useful is to be able to wait for a fence, which can be in the middle of a CS. Now that's something that would justify changes in the kernel interface. Marek _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel