On 2022-11-08 09:01, Zhu, Jiadong wrote:> From: Michel Dänzer 
<[email protected]>
>
>>>> The bad news is that this series still makes some things very slow. The 
>>>> most extreme examples so far are glxgears (runs at ~400 fps now, ~7000 fps 
>>>> before, i.e. almost 20x slowdown) and hexchat (scrolling one page now 
>>>> takes ~1 second, I can see it drawing line by line; before it was almost 
>>>> instantaneous). I suspect this series makes the overhead of running a 
>>>> single GPU job much bigger. On the bright side, I'm not noticing any 
>>>> significant intermittent freezes anymore.
>>>
>>> Hi Michel,
>>>
>>> Thanks for the trying.
>>> Is there high priority jobs running while executing glxgears?
>> 
>> Yes, mutter is submitting high priority jobs. However, I don't think that 
>> can explain the problem by itself:
>> 
>> mutter only draws once per display refresh cycle. Let's assume mutter's GPU 
>> work takes ~6-7ms (conservative example, should be less than that usually). 
>> That leaves ~10ms per display refresh cycle (at 60 Hz refresh rate) where 
>> GPU work from glxgears & Xwayland can run without getting preempted. Since 
>> glxgears runs at ~7000 fps without this series, it should be able to draw at 
>> least ~70 frames in 10ms[0], which corresponds to over 4000 fps. Yet it 
>> manages only 1/10 of that.
>> 
>> [0] Worst case consideration, ignoring the fact that without this series, 
>> glxgears runs at ~7000 fps while mutter sustains 60 fps.
>
> I reproduced the glxgears 400fps scenario locally. The issue is caused by the 
> patch5 "drm/amdgpu: Improve the software rings priority scheduler" which 
> slows down the low priority scheduler thread if high priority ib is under 
> executing. I'll drop this patch as we cannot identify gpu bound according to 
> the unsignaled fence, etc.

Okay, I'm testing with patches 1-4 only now.

So far I haven't noticed any negative effects, no slowdowns or intermittent 
freezes.

The only issue is that there's hardly any positive effect either. While 
constantly moving the window of a GPU-limited GpuTest benchmark in circles, 
most of the time it looks exactly the same as without these patches. Only 
occasionally, at most every few seconds, I notice that the window movement 
becomes smoother for an instant.


-- 
Earthling Michel Dänzer            |                  https://redhat.com
Libre software enthusiast          |         Mesa and Xwayland developer


Reply via email to