[FFmpeg-devel] [PATCH 1/2] checkasm: add sbrdsp tests

James Almer jamrial at gmail.com
Wed Jul 5 05:04:06 EEST 2017


On 7/4/2017 10:45 PM, Michael Niedermayer wrote:
> On Tue, Jul 04, 2017 at 03:15:56PM -0300, James Almer wrote:
>> On 7/4/2017 2:31 PM, Michael Niedermayer wrote:
>>> On Mon, Jul 03, 2017 at 02:32:28PM +0200, Matthieu Bouron wrote:
>>>> On Fri, Jun 30, 2017 at 05:16:37PM +0200, Matthieu Bouron wrote:
>>>>> On Fri, Jun 30, 2017 at 03:55:52PM +0200, Michael Niedermayer wrote:
>>>>>> On Thu, Jun 29, 2017 at 10:53:06PM -0300, James Almer wrote:
>>>>>>> On 6/29/2017 10:14 PM, Henrik Gramner wrote:
>>>>>>>> On Fri, Jun 30, 2017 at 1:58 AM, Michael Niedermayer
>>>>>>>> <michael at niedermayer.cc> wrote:
>>>>>>>>> Program received signal SIGSEGV, Segmentation fault.
>>>>>>>>> 0x0000000000684919 in ff_sbr_hf_gen_sse ()
>>>>>>>>
>>>>>>>>>    0x0000000000684909 <ff_sbr_hf_gen_sse+25>:   sub    %r9,%r8
>>>>>>>>
>>>>>>>>> => 0x0000000000684919 <ff_sbr_hf_gen_sse+41>:   movaps (%rsi,%r8,1),%xmm0
>>>>>>>>
>>>>>>>>> r9             0xdeadbeef00000080       -2401053092612145024
>>>>>>>>
>>>>>>>> Another case of a 32-bit int being used as part of a 64-bit operation.
>>>>>>>
>>>>>>> I can't reproduce it on my ArchLinux x86_64 environment for some reason,
>>>>>>> but based on what you said i assume the attached patch should fix it.
>>>>>>
>>>>>> no crash occurs here with this, so it seems fixed
>>>>>
>>>>> Should i push the patchset or wait a little bit longer ?
>>>>
>>>> Patchset applied.
>>>
>>> it seems theres some issue still in this:
>>>
>>> checkasm: using random seed 3655967467
>>> MMX:
>>>  - audiodsp.audiodsp             [OK]
>>>  - blockdsp.blockdsp             [OK]
>>>  - h264dsp.idct                  [OK]
>>>  - h264pred.pred4x4              [OK]
>>>  - h264pred.pred8x8              [OK]
>>>  - h264pred.pred16x16            [OK]
>>>  - pixblockdsp.get_pixels        [OK]
>>>  - pixblockdsp.diff_pixels       [OK]
>>>  - vp8dsp.idct                   [OK]
>>>  - vp8dsp.mc                     [OK]
>>>  - vp9dsp.ipred                  [OK]
>>>  - vp9dsp.itxfm                  [OK]
>>>  - vp9dsp.mc                     [OK]
>>> MMXEXT:
>>>  - audiodsp.audiodsp             [OK]
>>>  - h264dsp.idct                  [OK]
>>>  - h264pred.pred4x4              [OK]
>>>  - h264pred.pred8x8              [OK]
>>>  - h264pred.pred16x16            [OK]
>>>  - h264pred.pred8x8l             [OK]
>>>  - h264qpel.put                  [OK]
>>>  - h264qpel.avg                  [OK]
>>>  - hevc_add_res.add_residual     [OK]
>>>  - hevc_idct.idct_dc             [OK]
>>>  - vp8dsp.mc                     [OK]
>>>  - vp9dsp.ipred                  [OK]
>>>  - vp9dsp.itxfm                  [OK]
>>>  - vp9dsp.loopfilter             [OK]
>>>  - vp9dsp.mc                     [OK]
>>> SSE:
>>>  - aacpsdsp.add_squares          [OK]
>>>  - aacpsdsp.mul_pair_single      [OK]
>>>  - aacpsdsp.hybrid_analysis      [OK]
>>>  - sbrdsp.sum64x5                [OK]
>>>  - sbrdsp.sum_square             [OK]
>>>  - sbrdsp.neg_odd_64             [OK]
>>>  - sbrdsp.qmf_post_shuffle       [OK]
>>>  - sbrdsp.qmf_deint_neg          [OK]
>>>  - sbrdsp.qmf_deint_bfly         [OK]
>>>  - sbrdsp.autocorrelate          [OK]
>>>  - sbrdsp.hf_gen                 [OK]
>>>  - sbrdsp.hf_g_filt              [OK]
>>>  - audiodsp.audiodsp             [OK]
>>>  - blockdsp.blockdsp             [OK]
>>>  - fmtconvert.fmtconvert         [OK]
>>>  - h264pred.pred16x16            [OK]
>>>  - vp8dsp.idct                   [OK]
>>>  - vp8dsp.mc                     [OK]
>>>  - vp9dsp.ipred                  [OK]
>>>  - vp9dsp.mc                     [OK]
>>>  - float_dsp.vector_fmul         [OK]
>>>  - float_dsp.vector_fmac         [OK]
>>>  - float_dsp.butterflies_float   [OK]
>>>  - float_dsp.scalarproduct_float [OK]
>>> SSE2:
>>>  - sbrdsp.qmf_pre_shuffle        [OK]
>>>  - sbrdsp.qmf_deint_bfly         [OK]
>>>
>>> Program received signal SIGSEGV, Segmentation fault.
>>> apply_noise_main.loop () at libavcodec/x86/sbrdsp.asm:418
>>> 418         movu       m7, [Yq + 2*count + mmsize]
>>> (gdb) bt
>>> Python Exception <type 'exceptions.ImportError'> No module named gdb.frames:
>>> #0  apply_noise_main.loop () at libavcodec/x86/sbrdsp.asm:418
>>> #1  0x000000000043659b in checkasm_checked_call () at tests/checkasm/x86/checkasm.asm:77
>>> #2  0xdeadbeefdeadbeef in ?? ()
>>> #3  0xdeadbeefdeadbeef in ?? ()
>>> #4  0xdeadbeefdeadbeef in ?? ()
>>> #5  0xdeadbeefdeadbeef in ?? ()
>>> #6  0xdeadbeefdeadbeef in ?? ()
>>> #7  0xdeadbeefdeadbeef in ?? ()
>>> #8  0xdeadbeefdeadbeef in ?? ()
>>> #9  0xdeadbeefdeadbeef in ?? ()
>>> #10 0xdeadbeefdeadbeef in ?? ()
>>> #11 0xdeadbeefdeadbeef in ?? ()
>>> #12 0xdeadbeefdeadbeef in ?? ()
>>> #13 0xdeadbeefdeadbeef in ?? ()
>>> #14 0xdeadbeefdeadbeef in ?? ()
>>> #15 0xdeadbeefdeadbeef in ?? ()
>>> #16 0xdeadbeefdeadbeef in ?? ()
>>> #17 0xdeadbeefdeadbeef in ?? ()
>>> #18 0xdeadbeefdeadbeef in ?? ()
>>> #19 0x00007fffffffd870 in ?? ()
>>> #20 0x00007fffffffcc70 in ?? ()
>>> #21 0x00007fffffffce70 in ?? ()
>>> #22 0x0000000000000000 in ?? ()
>>> (gdb) info all-registers
>>> rax            0x0      0
>>> rbx            0xed56bb2dcb3c7736       -1344681633365854410
>>> rcx            0x8e8    2280
>>> rdx            0x7ab77bbbffffd070       8842672440749314160
>>> rsi            0x7ab77bbbffffce70       8842672440749313648
>>> rdi            0xf56e7777ffffdc70       -761539929699263376
>>> rbp            0x8bda43d3fd1a7e06       0x8bda43d3fd1a7e06
>>> rsp            0x7fffffffcae8   0x7fffffffcae8
>>> r8             0xdeadbeef00000000       -2401053092612145152
>>> r9             0x85490444000009c0       -8842531703260968512
>>> r10            0x684bf0 6835184
>>> r11            0x1      1
>>> r12            0x4a75479abd64e097       5365273261009854615
>>> r13            0x249214109d5d1c88       2635190793557318792
>>> r14            0xb64a9c9e5d318408       -5311260606547786744
>>> r15            0xdf9a54b303f1d3a3       -2334460328996121693
>>> rip            0x684cc9 0x684cc9 <apply_noise_main.loop+105>
>>> eflags         0x10206  [ PF IF RF ]
>>> cs             0x33     51
>>> ss             0x2b     43
>>> ds             0x0      0
>>> es             0x0      0
>>> fs             0x0      0
>>> gs             0x0      0
>>> st0            -nan(0x0fffb0005)        (raw 0xffff00000000fffb0005)
>>> st1            -nan(0x334fe50ff28fc84)  (raw 0xffff0334fe50ff28fc84)
>>> st2            -nan(0x0ff640150)        (raw 0xffff00000000ff640150)
>>> st3            -nan(0x0005e005a)        (raw 0xffff00000000005e005a)
>>> st4            -nan(0x0ff5bffe7)        (raw 0xffff00000000ff5bffe7)
>>> st5            -nan(0xff63fc2cfe94fee5) (raw 0xffffff63fc2cfe94fee5)
>>> st6            -nan(0x01c4df38a)        (raw 0xffff000000001c4df38a)
>>> st7            -nan(0x06215436f)        (raw 0xffff000000006215436f)
>>>
>>
>> Does the attached patch fix it?
> 
> linux x86-64, seems so

Applied then.

> 
> mingw-32 no
> 
> SSE:
>  - aacpsdsp.add_squares          [OK]
>  - aacpsdsp.mul_pair_single      [OK]
>  - aacpsdsp.hybrid_analysis      [OK]
>  - sbrdsp.sum64x5                [OK]
>    sum_square_sse (failed to issue emms)
>  - sbrdsp.sum_square             [FAILED]
>  - sbrdsp.neg_odd_64             [OK]
>  - sbrdsp.qmf_post_shuffle       [OK]
> 
> 
> linux32:
>  - aacpsdsp.hybrid_analysis      [OK]
>  - sbrdsp.sum64x5                [OK]
>    sum_square_sse (failed to issue emms)
>  - sbrdsp.sum_square             [FAILED]
>  - sbrdsp.neg_odd_64             [OK]
>  - sbrdsp.qmf_post_shuffle       [OK]
>  - sbrdsp.qmf_deint_neg          [OK]
> 
>  thx

Fixed as well.


More information about the ffmpeg-devel mailing list