Comment 61 for bug 1158689

Revision history for this message
In , Awl1 (awl1) wrote :

Hello again,

so it looks like I have now tracked the issue down.

The "offending" commit seems to be:

4c193d254ee94da02857b9670e815b1765a9579b

(the first commit which showed the issue - I tried for more than half an hour with its direct predecessor d1b167e168bdac0b6af11e7a8c601773639fc419, but could not reproduce the issue.

As the change by the offending commit seems really very 'simple':

  "use crypto engine for async buffer copies"

@@ -821,6 +839,7 @@ nouveau_bo_move_init(struct nouveau_channel *chan)
        } _methods[] = {
                { "COPY", 0xa0b5, nve0_bo_move_copy, nvc0_bo_move_init },
                { "M2MF", 0x9039, nvc0_bo_move_m2mf, nvc0_bo_move_init },
+ { "CRYPT", 0x74c1, nv84_bo_move_exec, nv50_bo_move_init },
                { "M2MF", 0x5039, nv50_bo_move_m2mf, nv50_bo_move_init },
                { "M2MF", 0x0039, nv04_bo_move_m2mf, nv04_bo_move_init },

at the heart of the issue, I think we now have the question whether it indeed is correct that there might be NV84-compatible G86 variants (such as my 8400M-based Quadro NVS130M), for which this "nv84_bo_move_exec" causes issues...!?

One more question regarding verification with current kernels:

In a current kernel, method nouveau_bo_move_init looks similar, but different:

        } _methods[] = {
                { "COPY", 4, 0xa0b5, nve0_bo_move_copy, nve0_bo_move_init },
                { "GRCE", 0, 0xa0b5, nve0_bo_move_copy, nvc0_bo_move_init },
                { "COPY1", 5, 0x90b8, nvc0_bo_move_copy, nvc0_bo_move_init },
                { "COPY0", 4, 0x90b5, nvc0_bo_move_copy, nvc0_bo_move_init },
                { "COPY", 0, 0x85b5, nva3_bo_move_copy, nv50_bo_move_init },
                { "CRYPT", 0, 0x74c1, nv84_bo_move_exec, nv50_bo_move_init },
                { "M2MF", 0, 0x9039, nvc0_bo_move_m2mf, nvc0_bo_move_init },
                { "M2MF", 0, 0x5039, nv50_bo_move_m2mf, nv50_bo_move_init },
                { "M2MF", 0, 0x0039, nv04_bo_move_m2mf, nv04_bo_move_init },
                {},
                { "CRYPT", 0, 0x88b4, nv98_bo_move_exec, nv50_bo_move_init },
        }, *mthd = _methods;

what would be an equivalent change to a current kernel to roll back the effects of the above forward patch?

Looking forward to your feedback...

Thanks a million & best regards,
Andreas