On Tue, 2012-01-31 at 13:16 +0000, Simon Farnsworth wrote: > Hello, > > When profiling my workload on an AMD E-350 (PALM GPU) to see why it still > wasn't performing well with Jerome's WIP macrotiling patches, I noticed that > r600_fence_finish was taking 10% of my CPU time. I determined experimentally > that changing from sched_yield() to os_time_sleep(10) fixed this and > resolved my last performance issue on AMD Fusion as compared to Intel Atom, > but felt that this was hacky. No, you were right the first time, sched_yield should definitely not be being used in this busy wait under Linux (even with its preceding few spins). Back in 2003 when Linux 2.5 changed sched_yield to move processes from run queue to the expired queue instead, its use was discussed on the DRI devel list. http://lwn.net/Articles/31462/ http://thread.gmane.org/gmane.comp.video.dri.devel/5455/focus=6779 There stills seems to be five uses that should be checked. src/gallium/drivers/r600/r600_pipe.c src/gallium/drivers/nouveau/nouveau_fence.c src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c src/gallium/winsys/radeon/drm/radeon_drm_bo.c (*2) -- Alan. _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel