[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