Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

nginx with ipp zlib woker stucked when hot-restart or reload

Gu__Kevin
Beginner
1,508 Views

we build nginx with ipp zlib, when we hot-restart or reload nginx, some old workers would stucked and not quit, it seems that worker had fallen into infinite loop,the back trace of this process show it was running near the ipp, so may be it is a bug of ipp.

by the way, if this is a bug of ipp, do we have to buy a license to get the latest version without this bug?

thanks

back trace:

stack.png

top command:

top1.png

0 Kudos
12 Replies
Sergey_K_Intel
Employee
1,508 Views

What IPP version do you use now? Is this issue not seen when nginx built with original zlib?

Thank you.

0 Kudos
Gu__Kevin
Beginner
1,508 Views

Sergey Khlystov (Intel) wrote:

What IPP version do you use now? Is this issue not seen when nginx built with original zlib?

Thank you.

i'm not sure what exactly version when i downloaded, but i find the version info in include/ippversion.h is 2018.0.2,intel 64bit can this identify the version?

zlib version is 1.2.8

yes, we don't seen this issue when use the original system libz.so

0 Kudos
Chao_Y_Intel
Moderator
1,508 Views

Thanks,  Kevin for your report.

Does this issue only happen with nginx, with some input specific data?  To further investigate this issue, we need to have reproducer for the problem. Do you have any suggestion to create some simple code to show this issue? It looks the testing environment is a bit complex there.

regards,
Chao

0 Kudos
Gu__Kevin
Beginner
1,508 Views

Recently, we have tried to reproduce this problem in a small set of servers. In about one week, it just reproduce once, and we haven't found out how to reproduce exactly, but we have kept this environment and can gdb into this process, is this usable to analyze this problem?

0 Kudos
Gu__Kevin
Beginner
1,508 Views

Chao Y (Intel) wrote:

Thanks,  Kevin for your report.

Does this issue only happen with nginx, with some input specific data?  To further investigate this issue, we need to have reproducer for the problem. Do you have any suggestion to create some simple code to show this issue? It looks the testing environment is a bit complex there.

regards,
Chao

Recently, we have tried to reproduce this problem in a small set of servers. In about one week, it just reproduce once, and we haven't found out how to reproduce exactly, but we have kept this environment and can gdb into this process, is this usable to analyze this problem?

Thanks

0 Kudos
Sergey_K_Intel
Employee
1,508 Views

Gu, Kevin wrote:

Quote:

Recently, we have tried to reproduce this problem in a small set of servers. In about one week, it just reproduce once, and we haven't found out how to reproduce exactly, but we have kept this environment and can gdb into this process, is this usable to analyze this problem?

Thanks

What does it mean "have kept this environment and can gdb..."? Do you mean Linux "core" file, or anything else? I am asking this to estimate possibility to reproduce the issue locally at our side, or at least to look around looping function using gdb.

Regards

0 Kudos
Gu__Kevin
Beginner
1,508 Views

Sergey Khlystov (Intel) wrote:

Quote:

Gu, Kevin wrote:

 

Quote:

Recently, we have tried to reproduce this problem in a small set of servers. In about one week, it just reproduce once, and we haven't found out how to reproduce exactly, but we have kept this environment and can gdb into this process, is this usable to analyze this problem?

Thanks

 

 

What does it mean "have kept this environment and can gdb..."? Do you mean Linux "core" file, or anything else? I am asking this to estimate possibility to reproduce the issue locally at our side, or at least to look around looping function using gdb.

Regards

Hi, Sergey

Sorry about my english.

"have kept this environment and can gdb...", It means: this time, we kept this process without kill it, so we can attach to this process to see the bt and other information in any time. Because this dead loop process would hurt our services, so we need to kill it when we find this kind of abnormal process.

Sorry to to correct my desc before: this problem is not reproduced when nginx hot-restart or reload, but happened when nginx is serving.

We reproduced this problem with nginx 1.12.2/lua-nginx-module-0.10.11/zlib_1.2.8/ipp_2018.0.2_64bit, it takes serveral days and a lot of traffic in about 100 nginx instance(800 workers), I'm not sure if it is relavant to traffic.

Or

Our abnormal nginx worker is still running, but we have isolated it, if you need some disassemble or registers info, please let me know.

Regards

0 Kudos
Sergey_K_Intel
Employee
1,508 Views

Hi Kevin,

Sorry about your worker running, we didn't know about this kind of environment freeze)). First, we'd like to know the loop where the control is running. There's the following tree of calls:

<outer function/application>
        Zlib's "inflate" function
                ippsInflateBuildHuffTable_8u
                ippsInflate_8u
                        ownInflateShort_8u
                        ownDecodeLZ77DHF_HotSpot

In the GDB the function names could have preffix "l9_*" which simply means that they are for AVX2/64-bit instruction set.

Could you (stepping with GDB) determine in which function the looping is happened? Using "stepi", "finish" or other GDB commands. Are we looping within IPP functions, or we return back to Zlib "inflate" and even upper? We don't expect that there is much data which the functions work with. Also, it can be interesting the return value upon ownDecodeLZ77DHF_HotSpot function return, i.e. content of RAX register.

Regards
                        

0 Kudos
Gu__Kevin
Beginner
1,508 Views

Sergey Khlystov (Intel) wrote:

Hi Kevin,

Sorry about your worker running, we didn't know about this kind of environment freeze)). First, we'd like to know the loop where the control is running. There's the following tree of calls:

<outer function/application>
        Zlib's "inflate" function
                ippsInflateBuildHuffTable_8u
                ippsInflate_8u
                        ownInflateShort_8u
                        ownDecodeLZ77DHF_HotSpot

In the GDB the function names could have preffix "l9_*" which simply means that they are for AVX2/64-bit instruction set.

Could you (stepping with GDB) determine in which function the looping is happened? Using "stepi", "finish" or other GDB commands. Are we looping within IPP functions, or we return back to Zlib "inflate" and even upper? We don't expect that there is much data which the functions work with. Also, it can be interesting the return value upon ownDecodeLZ77DHF_HotSpot function return, i.e. content of RAX register.

Regards
                        

 

Hi Sergey,

I tried to step into the process, and execute 'finish' command to see the return value of l9_ownDecodeLZ77DHF_HotSpot, but it never exit with the return value, like this:

(gdb) finish
Run till exit from #0  0x00000000007d61e8 in l9_ownDecodeLZ77DHF_HotSpot ()
^C
Program received signal SIGINT, Interrupt.
0x00000000007d5fd3 in l9_ownDecodeLZ77DHF_HotSpot ()  

 

Then I executed command with stepi, and found the process may be dead loop between '0x7d5fc8 <l9_ownDecodeLZ77DHF_HotSpot+136>:  and    %r12,%rax' and '0x7d61e8 <l9_ownDecodeLZ77DHF_HotSpot+680>:  jg     0x7d5fc8 <l9_ownDecodeLZ77DHF_HotSpot+136>'.

Here is the history of my operations:

 

(gdb) display/i $pc
1: x/i $pc
=> 0x7d61df <l9_ownDecodeLZ77DHF_HotSpot+671>:  mov    $0x3ff,%eax
(gdb) stepi
0x00000000007d61e4 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61e4 <l9_ownDecodeLZ77DHF_HotSpot+676>:  cmp    $0x0,%r10d
(gdb) stepi
0x00000000007d61e8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61e8 <l9_ownDecodeLZ77DHF_HotSpot+680>:  jg     0x7d5fc8 <l9_ownDecodeLZ77DHF_HotSpot+136>
(gdb)
0x00000000007d5fc8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fc8 <l9_ownDecodeLZ77DHF_HotSpot+136>:  and    %r12,%rax
(gdb)
0x00000000007d5fcb in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fcb <l9_ownDecodeLZ77DHF_HotSpot+139>:  movzbl 0x600(%rbp,%rax,1),%ecx
(gdb)
0x00000000007d5fd3 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fd3 <l9_ownDecodeLZ77DHF_HotSpot+147>:  movzbl 0x0(%rbp,%rax,1),%ebx
(gdb)
0x00000000007d5fd8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fd8 <l9_ownDecodeLZ77DHF_HotSpot+152>:  mov    %ecx,%eax
(gdb)
0x00000000007d5fda in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fda <l9_ownDecodeLZ77DHF_HotSpot+154>:  and    $0xf,%ecx
(gdb)
0x00000000007d5fdd in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fdd <l9_ownDecodeLZ77DHF_HotSpot+157>:  cmp    $0xa,%ecx
(gdb)
0x00000000007d5fe0 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fe0 <l9_ownDecodeLZ77DHF_HotSpot+160>:  jg     0x7d623d <l9_ownDecodeLZ77DHF_HotSpot+765>
(gdb)
0x00000000007d5fe6 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fe6 <l9_ownDecodeLZ77DHF_HotSpot+166>:  sub    %ecx,%edx
(gdb)
0x00000000007d5fe8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fe8 <l9_ownDecodeLZ77DHF_HotSpot+168>:  shrx   %rcx,%r12,%r12
(gdb)
0x00000000007d5fed in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fed <l9_ownDecodeLZ77DHF_HotSpot+173>:  test   $0x80,%eax
(gdb)
0x00000000007d5ff2 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5ff2 <l9_ownDecodeLZ77DHF_HotSpot+178>:  je     0x7d61a5 <l9_ownDecodeLZ77DHF_HotSpot+613>
(gdb)
0x00000000007d61a5 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61a5 <l9_ownDecodeLZ77DHF_HotSpot+613>:  and    $0x70,%eax
(gdb)
0x00000000007d61a8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61a8 <l9_ownDecodeLZ77DHF_HotSpot+616>:  jne    0x7d65a0 <l9_ownDecodeLZ77DHF_HotSpot+1632>
(gdb)
0x00000000007d61ae in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61ae <l9_ownDecodeLZ77DHF_HotSpot+622>:  mov    %bl,(%rdi)
(gdb)
0x00000000007d61b0 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61b0 <l9_ownDecodeLZ77DHF_HotSpot+624>:  add    $0x1,%r9d
(gdb)
0x00000000007d61b4 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61b4 <l9_ownDecodeLZ77DHF_HotSpot+628>:  sub    $0x1,%r10d
(gdb)
0x00000000007d61b8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61b8 <l9_ownDecodeLZ77DHF_HotSpot+632>:  add    $0x1,%rdi
(gdb)
0x00000000007d61bc in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61bc <l9_ownDecodeLZ77DHF_HotSpot+636>:  mov    $0x40,%ecx
(gdb)
0x00000000007d61c1 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61c1 <l9_ownDecodeLZ77DHF_HotSpot+641>:  shlx   %rdx,(%rsi),%r13
(gdb)
0x00000000007d61c6 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61c6 <l9_ownDecodeLZ77DHF_HotSpot+646>:  sub    %edx,%ecx
(gdb)
0x00000000007d61c8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61c8 <l9_ownDecodeLZ77DHF_HotSpot+648>:  or     %r13,%r12
(gdb)
0x00000000007d61cb in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61cb <l9_ownDecodeLZ77DHF_HotSpot+651>:  and    $0xfffffff8,%ecx
(gdb)
0x00000000007d61ce in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61ce <l9_ownDecodeLZ77DHF_HotSpot+654>:  add    %ecx,%edx
(gdb)
0x00000000007d61d0 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61d0 <l9_ownDecodeLZ77DHF_HotSpot+656>:  shr    $0x3,%ecx
(gdb)
0x00000000007d61d3 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61d3 <l9_ownDecodeLZ77DHF_HotSpot+659>:  sub    %ecx,%r8d
(gdb)
0x00000000007d61d6 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61d6 <l9_ownDecodeLZ77DHF_HotSpot+662>:  add    %rcx,%rsi
(gdb)
0x00000000007d61d9 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61d9 <l9_ownDecodeLZ77DHF_HotSpot+665>:  cmp    $0x8,%r8d
(gdb)
0x00000000007d61dd in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61dd <l9_ownDecodeLZ77DHF_HotSpot+669>:  jl     0x7d61ee <l9_ownDecodeLZ77DHF_HotSpot+686>
(gdb)
0x00000000007d61df in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61df <l9_ownDecodeLZ77DHF_HotSpot+671>:  mov    $0x3ff,%eax
(gdb)
0x00000000007d61e4 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61e4 <l9_ownDecodeLZ77DHF_HotSpot+676>:  cmp    $0x0,%r10d
(gdb)
0x00000000007d61e8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61e8 <l9_ownDecodeLZ77DHF_HotSpot+680>:  jg     0x7d5fc8 <l9_ownDecodeLZ77DHF_HotSpot+136>
(gdb)
0x00000000007d5fc8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fc8 <l9_ownDecodeLZ77DHF_HotSpot+136>:  and    %r12,%rax
(gdb) i r
rax            0x3ff    1023
rbx            0x0  0
rcx            0x0  0
rdx            0x3e 62
rsi            0x2f3465c    49497692
rdi            0x7ffd61fca2fe   140726247400190
rbp            0x8c56c0 0x8c56c0 <spec_table_fixed_Huffman>
rsp            0x7ffd61fc9620   0x7ffd61fc9620
r8             0x19 25
r9             0x99e    2462
r10            0x662    1634
r11            0x8c71e0 9204192
r12            0xc7d9d755c7d1de3    900048627932405219
r13            0x0  0
r14            0x0  0
r15            0x0  0
rip            0x7d5fc8 0x7d5fc8 <l9_ownDecodeLZ77DHF_HotSpot+136>
eflags         0x202    [ IF ]
cs             0x33 51
ss             0x2b 43
ds             0x0  0
es             0x0  0
fs             0x0  0
gs             0x0  0
(gdb) stepi
0x00000000007d5fcb in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fcb <l9_ownDecodeLZ77DHF_HotSpot+139>:  movzbl 0x600(%rbp,%rax,1),%ecx
(gdb)
0x00000000007d5fd3 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fd3 <l9_ownDecodeLZ77DHF_HotSpot+147>:  movzbl 0x0(%rbp,%rax,1),%ebx
(gdb)
0x00000000007d5fd8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fd8 <l9_ownDecodeLZ77DHF_HotSpot+152>:  mov    %ecx,%eax
(gdb)
0x00000000007d5fda in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fda <l9_ownDecodeLZ77DHF_HotSpot+154>:  and    $0xf,%ecx
(gdb)
0x00000000007d5fdd in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fdd <l9_ownDecodeLZ77DHF_HotSpot+157>:  cmp    $0xa,%ecx
(gdb)
0x00000000007d5fe0 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fe0 <l9_ownDecodeLZ77DHF_HotSpot+160>:  jg     0x7d623d <l9_ownDecodeLZ77DHF_HotSpot+765>
(gdb)
0x00000000007d5fe6 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fe6 <l9_ownDecodeLZ77DHF_HotSpot+166>:  sub    %ecx,%edx
(gdb)
0x00000000007d5fe8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fe8 <l9_ownDecodeLZ77DHF_HotSpot+168>:  shrx   %rcx,%r12,%r12
(gdb)
0x00000000007d5fed in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fed <l9_ownDecodeLZ77DHF_HotSpot+173>:  test   $0x80,%eax
(gdb)
0x00000000007d5ff2 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5ff2 <l9_ownDecodeLZ77DHF_HotSpot+178>:  je     0x7d61a5 <l9_ownDecodeLZ77DHF_HotSpot+613>
(gdb)
0x00000000007d61a5 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61a5 <l9_ownDecodeLZ77DHF_HotSpot+613>:  and    $0x70,%eax
(gdb)
0x00000000007d61a8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61a8 <l9_ownDecodeLZ77DHF_HotSpot+616>:  jne    0x7d65a0 <l9_ownDecodeLZ77DHF_HotSpot+1632>
(gdb)
0x00000000007d61ae in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61ae <l9_ownDecodeLZ77DHF_HotSpot+622>:  mov    %bl,(%rdi)
(gdb)
0x00000000007d61b0 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61b0 <l9_ownDecodeLZ77DHF_HotSpot+624>:  add    $0x1,%r9d
(gdb)
0x00000000007d61b4 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61b4 <l9_ownDecodeLZ77DHF_HotSpot+628>:  sub    $0x1,%r10d
(gdb)
0x00000000007d61b8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61b8 <l9_ownDecodeLZ77DHF_HotSpot+632>:  add    $0x1,%rdi
(gdb)
0x00000000007d61bc in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61bc <l9_ownDecodeLZ77DHF_HotSpot+636>:  mov    $0x40,%ecx
(gdb)
0x00000000007d61c1 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61c1 <l9_ownDecodeLZ77DHF_HotSpot+641>:  shlx   %rdx,(%rsi),%r13
(gdb)
0x00000000007d61c6 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61c6 <l9_ownDecodeLZ77DHF_HotSpot+646>:  sub    %edx,%ecx
(gdb)
0x00000000007d61c8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61c8 <l9_ownDecodeLZ77DHF_HotSpot+648>:  or     %r13,%r12
(gdb)
0x00000000007d61cb in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61cb <l9_ownDecodeLZ77DHF_HotSpot+651>:  and    $0xfffffff8,%ecx
(gdb)
0x00000000007d61ce in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61ce <l9_ownDecodeLZ77DHF_HotSpot+654>:  add    %ecx,%edx
(gdb)
0x00000000007d61d0 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61d0 <l9_ownDecodeLZ77DHF_HotSpot+656>:  shr    $0x3,%ecx
(gdb)
0x00000000007d61d3 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61d3 <l9_ownDecodeLZ77DHF_HotSpot+659>:  sub    %ecx,%r8d
(gdb)
0x00000000007d61d6 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61d6 <l9_ownDecodeLZ77DHF_HotSpot+662>:  add    %rcx,%rsi
(gdb)
0x00000000007d61d9 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61d9 <l9_ownDecodeLZ77DHF_HotSpot+665>:  cmp    $0x8,%r8d
(gdb)
0x00000000007d61dd in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61dd <l9_ownDecodeLZ77DHF_HotSpot+669>:  jl     0x7d61ee <l9_ownDecodeLZ77DHF_HotSpot+686>
(gdb)
0x00000000007d61df in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61df <l9_ownDecodeLZ77DHF_HotSpot+671>:  mov    $0x3ff,%eax
(gdb)
0x00000000007d61e4 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61e4 <l9_ownDecodeLZ77DHF_HotSpot+676>:  cmp    $0x0,%r10d
(gdb)
0x00000000007d61e8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61e8 <l9_ownDecodeLZ77DHF_HotSpot+680>:  jg     0x7d5fc8 <l9_ownDecodeLZ77DHF_HotSpot+136>
(gdb)
0x00000000007d5fc8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fc8 <l9_ownDecodeLZ77DHF_HotSpot+136>:  and    %r12,%rax
(gdb) i r
rax            0x3ff    1023
rbx            0x0  0
rcx            0x0  0
rdx            0x3e 62
rsi            0x2f3465c    49497692
rdi            0x7ffd61fca2ff   140726247400191
rbp            0x8c56c0 0x8c56c0 <spec_table_fixed_Huffman>
rsp            0x7ffd61fc9620   0x7ffd61fc9620
r8             0x19 25
r9             0x99f    2463
r10            0x661    1633
r11            0x8c71e0 9204192
r12            0xc7d9d755c7d1de3    900048627932405219
r13            0x0  0
r14            0x0  0
r15            0x0  0
rip            0x7d5fc8 0x7d5fc8 <l9_ownDecodeLZ77DHF_HotSpot+136>
eflags         0x202    [ IF ]
cs             0x33 51
ss             0x2b 43
ds             0x0  0
es             0x0  0
fs             0x0  0
gs             0x0  0
(gdb) stepi
0x00000000007d5fcb in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fcb <l9_ownDecodeLZ77DHF_HotSpot+139>:  movzbl 0x600(%rbp,%rax,1),%ecx
(gdb)
0x00000000007d5fd3 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fd3 <l9_ownDecodeLZ77DHF_HotSpot+147>:  movzbl 0x0(%rbp,%rax,1),%ebx
(gdb)
0x00000000007d5fd8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fd8 <l9_ownDecodeLZ77DHF_HotSpot+152>:  mov    %ecx,%eax
(gdb)
0x00000000007d5fda in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fda <l9_ownDecodeLZ77DHF_HotSpot+154>:  and    $0xf,%ecx
(gdb)
0x00000000007d5fdd in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fdd <l9_ownDecodeLZ77DHF_HotSpot+157>:  cmp    $0xa,%ecx
(gdb)
0x00000000007d5fe0 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fe0 <l9_ownDecodeLZ77DHF_HotSpot+160>:  jg     0x7d623d <l9_ownDecodeLZ77DHF_HotSpot+765>
(gdb)
0x00000000007d5fe6 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fe6 <l9_ownDecodeLZ77DHF_HotSpot+166>:  sub    %ecx,%edx
(gdb)
0x00000000007d5fe8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fe8 <l9_ownDecodeLZ77DHF_HotSpot+168>:  shrx   %rcx,%r12,%r12
(gdb)
0x00000000007d5fed in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fed <l9_ownDecodeLZ77DHF_HotSpot+173>:  test   $0x80,%eax
(gdb)
0x00000000007d5ff2 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5ff2 <l9_ownDecodeLZ77DHF_HotSpot+178>:  je     0x7d61a5 <l9_ownDecodeLZ77DHF_HotSpot+613>
(gdb)
0x00000000007d61a5 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61a5 <l9_ownDecodeLZ77DHF_HotSpot+613>:  and    $0x70,%eax
(gdb)
0x00000000007d61a8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61a8 <l9_ownDecodeLZ77DHF_HotSpot+616>:  jne    0x7d65a0 <l9_ownDecodeLZ77DHF_HotSpot+1632>
(gdb)
0x00000000007d61ae in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61ae <l9_ownDecodeLZ77DHF_HotSpot+622>:  mov    %bl,(%rdi)
(gdb)
0x00000000007d61b0 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61b0 <l9_ownDecodeLZ77DHF_HotSpot+624>:  add    $0x1,%r9d
(gdb)
0x00000000007d61b4 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61b4 <l9_ownDecodeLZ77DHF_HotSpot+628>:  sub    $0x1,%r10d
(gdb)
0x00000000007d61b8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61b8 <l9_ownDecodeLZ77DHF_HotSpot+632>:  add    $0x1,%rdi
(gdb)
0x00000000007d61bc in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61bc <l9_ownDecodeLZ77DHF_HotSpot+636>:  mov    $0x40,%ecx
(gdb)
0x00000000007d61c1 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61c1 <l9_ownDecodeLZ77DHF_HotSpot+641>:  shlx   %rdx,(%rsi),%r13
(gdb)
0x00000000007d61c6 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61c6 <l9_ownDecodeLZ77DHF_HotSpot+646>:  sub    %edx,%ecx
(gdb)
0x00000000007d61c8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61c8 <l9_ownDecodeLZ77DHF_HotSpot+648>:  or     %r13,%r12
(gdb)
0x00000000007d61cb in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61cb <l9_ownDecodeLZ77DHF_HotSpot+651>:  and    $0xfffffff8,%ecx
(gdb)
0x00000000007d61ce in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61ce <l9_ownDecodeLZ77DHF_HotSpot+654>:  add    %ecx,%edx
(gdb)
0x00000000007d61d0 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61d0 <l9_ownDecodeLZ77DHF_HotSpot+656>:  shr    $0x3,%ecx
(gdb)
0x00000000007d61d3 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61d3 <l9_ownDecodeLZ77DHF_HotSpot+659>:  sub    %ecx,%r8d
(gdb)
0x00000000007d61d6 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61d6 <l9_ownDecodeLZ77DHF_HotSpot+662>:  add    %rcx,%rsi
(gdb)
0x00000000007d61d9 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61d9 <l9_ownDecodeLZ77DHF_HotSpot+665>:  cmp    $0x8,%r8d
(gdb)
0x00000000007d61dd in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61dd <l9_ownDecodeLZ77DHF_HotSpot+669>:  jl     0x7d61ee <l9_ownDecodeLZ77DHF_HotSpot+686>
(gdb)
0x00000000007d61df in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61df <l9_ownDecodeLZ77DHF_HotSpot+671>:  mov    $0x3ff,%eax
(gdb)
0x00000000007d61e4 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61e4 <l9_ownDecodeLZ77DHF_HotSpot+676>:  cmp    $0x0,%r10d
(gdb)
0x00000000007d61e8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61e8 <l9_ownDecodeLZ77DHF_HotSpot+680>:  jg     0x7d5fc8 <l9_ownDecodeLZ77DHF_HotSpot+136>
(gdb)
0x00000000007d5fc8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fc8 <l9_ownDecodeLZ77DHF_HotSpot+136>:  and    %r12,%rax
(gdb) i r
rax            0x3ff    1023
rbx            0x0  0
rcx            0x0  0
rdx            0x3e 62
rsi            0x2f3465c    49497692
rdi            0x7ffd61fca300   140726247400192
rbp            0x8c56c0 0x8c56c0 <spec_table_fixed_Huffman>
rsp            0x7ffd61fc9620   0x7ffd61fc9620
r8             0x19 25
r9             0x9a0    2464
r10            0x660    1632
r11            0x8c71e0 9204192
r12            0xc7d9d755c7d1de3    900048627932405219
r13            0x0  0
r14            0x0  0
r15            0x0  0
rip            0x7d5fc8 0x7d5fc8 <l9_ownDecodeLZ77DHF_HotSpot+136>
eflags         0x206    [ PF IF ]
cs             0x33 51
ss             0x2b 43
ds             0x0  0
es             0x0  0
fs             0x0  0
gs             0x0  0
(gdb) stepi
0x00000000007d5fcb in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fcb <l9_ownDecodeLZ77DHF_HotSpot+139>:  movzbl 0x600(%rbp,%rax,1),%ecx
(gdb)
0x00000000007d5fd3 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fd3 <l9_ownDecodeLZ77DHF_HotSpot+147>:  movzbl 0x0(%rbp,%rax,1),%ebx
(gdb)
0x00000000007d5fd8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fd8 <l9_ownDecodeLZ77DHF_HotSpot+152>:  mov    %ecx,%eax
(gdb)
0x00000000007d5fda in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fda <l9_ownDecodeLZ77DHF_HotSpot+154>:  and    $0xf,%ecx
(gdb)
0x00000000007d5fdd in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fdd <l9_ownDecodeLZ77DHF_HotSpot+157>:  cmp    $0xa,%ecx
(gdb)
0x00000000007d5fe0 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fe0 <l9_ownDecodeLZ77DHF_HotSpot+160>:  jg     0x7d623d <l9_ownDecodeLZ77DHF_HotSpot+765>
(gdb)
0x00000000007d5fe6 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fe6 <l9_ownDecodeLZ77DHF_HotSpot+166>:  sub    %ecx,%edx
(gdb)
0x00000000007d5fe8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fe8 <l9_ownDecodeLZ77DHF_HotSpot+168>:  shrx   %rcx,%r12,%r12
(gdb)
0x00000000007d5fed in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5fed <l9_ownDecodeLZ77DHF_HotSpot+173>:  test   $0x80,%eax
(gdb)
0x00000000007d5ff2 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d5ff2 <l9_ownDecodeLZ77DHF_HotSpot+178>:  je     0x7d61a5 <l9_ownDecodeLZ77DHF_HotSpot+613>
(gdb)
0x00000000007d61a5 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61a5 <l9_ownDecodeLZ77DHF_HotSpot+613>:  and    $0x70,%eax
(gdb)
0x00000000007d61a8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61a8 <l9_ownDecodeLZ77DHF_HotSpot+616>:  jne    0x7d65a0 <l9_ownDecodeLZ77DHF_HotSpot+1632>
(gdb)
0x00000000007d61ae in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61ae <l9_ownDecodeLZ77DHF_HotSpot+622>:  mov    %bl,(%rdi)
(gdb)
0x00000000007d61b0 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61b0 <l9_ownDecodeLZ77DHF_HotSpot+624>:  add    $0x1,%r9d
(gdb)
0x00000000007d61b4 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61b4 <l9_ownDecodeLZ77DHF_HotSpot+628>:  sub    $0x1,%r10d
(gdb)
0x00000000007d61b8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61b8 <l9_ownDecodeLZ77DHF_HotSpot+632>:  add    $0x1,%rdi
(gdb)
0x00000000007d61bc in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61bc <l9_ownDecodeLZ77DHF_HotSpot+636>:  mov    $0x40,%ecx
(gdb)
0x00000000007d61c1 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61c1 <l9_ownDecodeLZ77DHF_HotSpot+641>:  shlx   %rdx,(%rsi),%r13
(gdb)
0x00000000007d61c6 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61c6 <l9_ownDecodeLZ77DHF_HotSpot+646>:  sub    %edx,%ecx
(gdb)
0x00000000007d61c8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61c8 <l9_ownDecodeLZ77DHF_HotSpot+648>:  or     %r13,%r12
(gdb)
0x00000000007d61cb in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61cb <l9_ownDecodeLZ77DHF_HotSpot+651>:  and    $0xfffffff8,%ecx
(gdb)
0x00000000007d61ce in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61ce <l9_ownDecodeLZ77DHF_HotSpot+654>:  add    %ecx,%edx
(gdb)
0x00000000007d61d0 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61d0 <l9_ownDecodeLZ77DHF_HotSpot+656>:  shr    $0x3,%ecx
(gdb)
0x00000000007d61d3 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61d3 <l9_ownDecodeLZ77DHF_HotSpot+659>:  sub    %ecx,%r8d
(gdb)
0x00000000007d61d6 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61d6 <l9_ownDecodeLZ77DHF_HotSpot+662>:  add    %rcx,%rsi
(gdb)
0x00000000007d61d9 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61d9 <l9_ownDecodeLZ77DHF_HotSpot+665>:  cmp    $0x8,%r8d
(gdb)
0x00000000007d61dd in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61dd <l9_ownDecodeLZ77DHF_HotSpot+669>:  jl     0x7d61ee <l9_ownDecodeLZ77DHF_HotSpot+686>
(gdb)
0x00000000007d61df in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61df <l9_ownDecodeLZ77DHF_HotSpot+671>:  mov    $0x3ff,%eax
(gdb)
0x00000000007d61e4 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61e4 <l9_ownDecodeLZ77DHF_HotSpot+676>:  cmp    $0x0,%r10d
(gdb)
0x00000000007d61e8 in l9_ownDecodeLZ77DHF_HotSpot ()
1: x/i $pc
=> 0x7d61e8 <l9_ownDecodeLZ77DHF_HotSpot+680>:  jg     0x7d5fc8 <l9_ownDecodeLZ77DHF_HotSpot+136>
(gdb) i r
rax            0x3ff    1023
rbx            0x0  0
rcx            0x0  0
rdx            0x3e 62
rsi            0x2f3465c    49497692
rdi            0x7ffd61fca301   140726247400193
rbp            0x8c56c0 0x8c56c0 <spec_table_fixed_Huffman>
rsp            0x7ffd61fc9620   0x7ffd61fc9620
r8             0x19 25
r9             0x9a1    2465
r10            0x65f    1631
r11            0x8c71e0 9204192
r12            0xc7d9d755c7d1de3    900048627932405219
r13            0x0  0
r14            0x0  0
r15            0x0  0
rip            0x7d61e8 0x7d61e8 <l9_ownDecodeLZ77DHF_HotSpot+680>
eflags         0x206    [ PF IF ]
cs             0x33 51
ss             0x2b 43
ds             0x0  0
es             0x0  0
fs             0x0  0
gs             0x0  0

 

I'm not familiar with disassembly instruction and don't know what the meaning of this pieces code. Sorry.

If you need to know the registers value of other step, let me know.

Regards

0 Kudos
Sergey_K_Intel
Employee
1,508 Views

Hi,

Could you write to "sergey.khlystov@intel.com" ? The discussion can be lengthy and I don't want to mess in the forum.

Regards,
Sergey

0 Kudos
Chao_Y_Intel
Moderator
1,508 Views

Hi Keven,  
We need to get some reproducer to further investigate the problem.  We have a private support channel to submit the support ticket.

Attached is the process you can follow.  We will work with you with further investigation there.

thanks,
Chao
 

0 Kudos
Gu__Kevin
Beginner
1,508 Views

Thanks, i have submitted a support ticket,

https://supporttickets.intel.com/requestdetail?casenumber=03836859&lang=en-US

Chao Y (Intel) wrote:

Hi Keven,  
We need to get some reproducer to further investigate the problem.  We have a private support channel to submit the support ticket.

Attached is the process you can follow.  We will work with you with further investigation there.

thanks,
Chao
 

0 Kudos
Reply