[Nouveau] [PATCH 0/2] reclocking stability improvements
Maxim Levitsky
maximlevitsky at gmail.com
Thu Apr 28 04:43:31 PDT 2011
On Thu, 2011-04-28 at 13:15 +0200, Martin Peres wrote:
> Le 28/04/2011 12:32, Maxim Levitsky a écrit :
> > On Thu, 2011-04-28 at 01:58 +0200, Martin Peres wrote:
> >> Hi everyone,
> >>
> >> I would like everyone to test this set of patch as we'll need them quite soon for timing management on nv50.
> >>
> >> Please report success/failure by answering to this email.
> >>
> >> Thanks in advance,
> >> Martin
> > I tested this.
> > Patch seems to work except following problems:
> >
> > Sometimes reclocking fails like this:
> >
> > root at maxim-laptop:/home/maxim# echo 2> /sys/class/drm/card0/device/performance_level
> > bash: echo: write error: Resource temporarily unavailable
> This is expected. Unfortunately, I can't do anything better than this
> for the upcoming months. I need help from the people really into the
> command submission system.
> >
> > [ 630.371117] [drm] nouveau 0000:01:00.0: setting performance level: performance_level_2
> > [ 630.412048] [drm] nouveau 0000:01:00.0: PFIFO DMA_PUSH never depleted (0xd06091)
> I consider it not safe to reclock core if PFIFO DMA_PUSH isn't empty.
> Hence the reason why I abort there.
> > Once it even hang the GPU.
> This shouldn't happen but I managed to hang it too once. Anyway, this
> isn't perfect but still way better than what is currently implemented.
> > Easy to reproduce while running compiz and its benchmark overlay.
> >
> Exactly, when playing open arena, the success ratio is very very low but
> I don't mind yet. I first want stability and then reliability.
> > Also, it seems not to restore perf level after resume from ram.
> Good catch, I thought I had fixed that but it doesn't seem like. I'll
> fix this tonight and send an update. Thanks a lot.
> > Best regards
> > Maxim Levitsky
> Thanks a lot for testing it Maxim.
>
> Martin
Martin, one more thing, this is my observations regarding clocks I
finished today:
clock = (ref * N / M) >> (P & 0x7)
first line is blob, second nouveau
level0:
P NNMM
0x4008 - memory - 0018e200 00002505 = 1 = 01.0000
80016400 00002505 = 37 / 5 / 2 = 03.7000
0x4020 - shader - 80010000 00000b01 = 11 / 1 / 2 = 05.5000
80020000 00001b02 = 27 / 2 / 4 = 03.3750
0x4028 - core - a0120000 00001b04 = 27 / 4 / 4 = 01.6875
a0020000 00001b04 = 27 / 4 / 4 = 01.6875
0x4030 - unk_05 - a0120000 00000b02 = 11 / 2 / 4 = 01.3750
80020000 00001b04 = 27 / 4 / 4 = 01.6875
level1:
0x4008 - memory - 809ae400 00002505 = 37 / 5 / 4 = 01.8500
80026400 00002505 = 37 / 5 / 4 = 01.8500
0x4020 - shader - 80000000 00000b01 = 11 / 1 / 1 = 11.0000
80010000 00000b01 = 11 / 1 / 2 = 05.5000
0x4028 - core - a0090000 00000b02 = 11 / 2 / 1 = 05.5000
a0010000 00000b02 = 11 / 2 / 1 = 05.5000
0x4030 - unk_05 - a0120000 00000b02 = 11 / 2 / 4 = 01.3750
80010000 00000b02 = 11 / 2 / 2 = 05.5000
level2:
0x4008 - memory - 8059e400 00002505 = 37 / 5 / 2 = 03.7000
80016400 00002505 = 37 / 5 / 2 = 03.7000
0x4020 - shader - 80000000 00000b01 = 11 / 1 / 1 = 11.0000
80000000 00001002 = 16 / 2 / 1 = 08.0000
0x4028 - core - a0090000 00001002 = 16 / 2 / 2 = 04.0000
a0010000 00001002 = 16 / 2 / 2 = 04.0000
0x4030 - unk_05 - a0120000 00000b02 = 11 / 2 / 4 = 01.3750
80010000 00001202 = 18 / 2 / 2 = 06.0000
Clocks are very different and we seems to overclock hard the unk_05 PLL
And shader PLL is underclocked always, so another way to boost performance?
(it didn't seem to affect perfomace much here, but yet...)
--
Best regards,
Maxim Levitsky
Visit my blog: http://maximlevitsky.wordpress.com
Warning: Above blog contains rants.
More information about the Nouveau
mailing list