[20210218]shared latch spin count 5.txt

来源:这里教程网 时间:2026-03-03 16:27:21 作者:

[20210218]shared latch spin count 5.txt --//节前的测试,链接http://blog.itpub.net/267265/viewspace-2756963/=>[20200426]查看shared latch gets的变化.txt, --//我发现如果大量shared latch出现,也会出现少量进入spin状态。 --//按照文中链接介绍,spin_count最大数量是cpu_count+2.如何测试呢? --//本来年前可以完成的测试,但是没想到测试遇到许多困难,只能拖到年后完成. 1.环境: SCOTT@book> @ ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production SYS@book> create pfile='/tmp/@.ora' from spfile ; File created. --//关闭数据库.修改/tmp/book.ora文件加入或者修改: *.audit_trail='NONE' *.cpu_count=4 *.audit_sys_operations=TRUE *.audit_syslog_level='Local0.info' SYS@book> startup pfile='/tmp/@.ora'; ORACLE instance started. Total System Global Area  643084288 bytes Fixed Size                  2255872 bytes Variable Size             205521920 bytes Database Buffers          427819008 bytes Redo Buffers                7487488 bytes Database mounted. Database opened. SYS@book> show parameter cpu_count NAME      TYPE    VALUE --------- ------- ----- cpu_count integer 4 SYS@book> show parameter audit NAME                 TYPE    VALUE -------------------- ------- -------------------------------- audit_file_dest      string  /u01/app/oracle/admin/book/adump audit_sys_operations boolean TRUE audit_syslog_level   string  LOCAL0.INFO audit_trail          string  NONE --//修改/etc/rsyslog.conf文件,主要目的是减少跟踪文件的产生.注解如下: #*.info;mail.none;authpriv.none;cron.none                /var/log/messages #local0.infO                     /var/log/oracleaudit.log #*.* ?FILENAME --//重启rsyslog服务. # service rsyslog restart Shutting down system logger:     [  OK  ] Starting system logger:          [  OK  ] --//注这样实际上还是写/u01/app/oracle/diag/rdbms/book/book/trace,测试前一定保持足够的磁盘空间. 2.建立测试脚本: --//测试需要的脚本如下: $ cat viewlatch.sql SELECT addr       ,name       ,level#       ,GETS       ,MISSES       ,SLEEPS       ,IMMEDIATE_GETS       ,IMMEDIATE_MISSES       ,WAITERS_WOKEN       ,WAITS_HOLDING_LATCH       ,SPIN_GETS       ,WAIT_TIME   FROM v$latch_parent  WHERE LOWER (name) LIKE '%' || LOWER ('&&1') || '%'; SYS@book> @ viewlatch.sql 'gcs partitioned table hash' @ prxx ADDR             NAME                       LEVEL#       GETS     MISSES     SLEEPS IMMEDIATE_GETS IMMEDIATE_MISSES WAITERS_WOKEN WAITS_HOLDING_LATCH  SPIN_GETS  WAIT_TIME ---------------- -------------------------- ------ ---------- ---------- ---------- -------------- ---------------- ------------- ------------------- ---------- ---------- 0000000060018A18 gcs partitioned table hash      6          0          0          0              0                0             0                   0          0          0 --// 记下addr=0x0000000060018A18. $ cat peek.sh #! /bib/bash # 参数如下:latch_name Monitoring_duration or laddr sqlplus -s -l / as sysdba <<EOF col laddr new_value laddr SELECT sysdate,addr laddr FROM v\$latch_parent WHERE NAME='$1'; oradebug setmypid $(seq $2|xargs -I{} echo -e 'oradebug peek 0x&laddr 60\nhost sleep 1' ) EOF $ cat shared_latch_new.txt --//connect / as sysdba --//oradebug setmypid oradebug call kslgetsl_w 0x0000000060018A18 1 7 8 9 oradebug call kslfre 0x0000000060018A18 --//exit --//注:我直接输入addr地址,可以通过viewlatch.sql脚本查询获得.这样测试容易出现spin. $ cat $(which timestamp.pl) #!/usr/bin/perl while (<>) { ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(); printf("%02d:%02d:%02d", $hour, $min, $sec); print  ": $_"; #print localtime() . ": $_"; } $ cat i6.sh #! /bin/bash zdate=$(date '+%H%M%S') echo $zdate source peek.sh 'gcs partitioned table hash' 1500 | timestamp.pl >| /tmp/peeks_${zdate}.txt & #seq 10 | xargs -I{} echo -e 'sqlplus -s -l / as sysdba <<< @latch_free\nsleep 1'  | bash >| /tmp/latch_free_${zdate}.txt & sleep 1 # 参数如下: @ latch.txt latch_name willing why where mode sleep_num #seq 1500 | xargs -I {} -P 100 taskset 000001 sqlplus -s -l / as sysdba  @ shared_latch.txt 'gcs partitioned table hash' 1 4 {}  s 0.01 > /dev/null #seq 1500 | xargs -I {} -P 150 taskset 00000e sqlplus -s -l / as sysdba  @ 10000.txt > /dev/null #seq 1500 | xargs -I {} -P 150 taskset 00000f sqlplus -s -l / as sysdba  @ 10000.txt > /dev/null seq 1500 | xargs -I {} -P 150  sqlplus -s -l / as sysdba  @ 10000.txt > /dev/null wait --//建立10000.txt,10000行一样的内容。 $ uniq -c 10000.txt       1 set feedback off       1 set term off       1 oradebug setmypid   10000 @ shared_latch_new.txt       1 set term on       1 set feedback on 3.编程gdb跟踪脚本: --//随便找一个oracle进程.反汇编disassemble kslskgs $ ps -ef | grep smo[n] oracle    5872     1  0 15:29 ?        00:00:00 ora_smon_book $ gdb -p 5872 | tee gdb.txt (gdb) disassemble kslskgs (gdb) quit A debugging session is active.         Inferior 1 [process 5872] will be detached. Quit anyway? (y or n) y Detaching from program: /u01/app/oracle/product/11.2.0.4/dbhome_1/bin/oracle, process 5872 $ grep -A1 ffffffffffffffff gdb.txt 0x0000000000a875df <kslskgs+233>:       add    $0xffffffffffffffff,%r13d 0x0000000000a875e3 <kslskgs+237>:       jne    0xa875be <kslskgs+200> -- 0x0000000000a87687 <kslskgs+401>:       add    $0xffffffffffffffff,%r14d 0x0000000000a8768b <kslskgs+405>:       test   %r15,%rbx -- 0x0000000000a87698 <kslskgs+418>:       add    $0xffffffffffffffff,%r14d 0x0000000000a8769c <kslskgs+422>:       jne    0xa87658 <kslskgs+354> --//首先说明我不懂汇编,完全是乱猜, $xffffffffffffffff 表示 -1. 跟踪这个地址的执行就可以看到计数的变化. --//建立gdb跟踪脚本: $ grep -v "^#" latch11gs.gdb set pagination off break kslskgs   commands     silent         shell echo     shell echo -n $( date +"%Y/%m/%d %T.%N : ")     printf "kslskgs %x, %d, %d, %d\n", $rdi, $rsi, $rdx, $rcx     c   end break *0xa875df   commands     silent         shell echo     shell echo -n $( date +"%Y/%m/%d %T.%N : ")     printf "*0xa875df: spin count loop: %d %x\n", $r13,$rip     c   end break *0xa87687   commands     silent     shell echo -n $( date +"%Y/%m/%d %T.%N : ")     printf "*0xa87687: spin count loop: %d %x\n", $r14,$rip     c   end break *0xa8768b   commands     silent     c   end break *0xa8768e   commands     silent     c   end break *0xa87698   commands     silent         shell echo     shell echo -n $( date +"%Y/%m/%d %T.%N : ")     printf "*0xa87698: spin count loop: %d %x\n", $r14,$rip     c   end break skgpwwait   commands     silent     printf "skgpwwait %d, %d, %d, %d\n", $rdi, $rsi, $rdx, $rcx     c   end break sskgpwwait   commands     silent     printf "sskgpwwait %d, %d, %d, %d\n", $rdi, $rsi, $rdx, $rcx     c   end break semop   commands     silent     printf "semop %d, %d, %d, %d\n", $rdi, $rsi, $rdx, $rcx     c   end --//注意我还顺便设置了break *0xa8768b,break *0xa8768e,不然非常难跟踪到spin的变化. 4.开始测试: --//测试前做一点点说明,由于使用sys用户登录,要产生大量的跟踪文件在/u01/app/oracle/diag/rdbms/book/book/trace目录, --//要写一个脚本定时清除. --//session 1: SYS@book> @ viewlatch.sql 'gcs partitioned table hash' ADDR             NAME                                         LEVEL#       GETS     MISSES     SLEEPS IMMEDIATE_GETS IMMEDIATE_MISSES WAITERS_WOKEN WAITS_HOLDING_LATCH  SPIN_GETS  WAIT_TIME ---------------- ---------------------------------------- ---------- ---------- ---------- ---------- -------------- ---------------- ------------- ------------------- ---------- ---------- 0000000060018A18 gcs partitioned table hash                        6          0          0          0              0                0             0                   0          0          0 --//windows 1: --//先打入以下命令不要执行。 $ . i6.sh --//session 2: SYS@book> @ spid        SID    SERIAL# PROCESS                  SERVER    SPID       PID  P_SERIAL# C50 ---------- ---------- ------------------------ --------- ------ ------- ---------- --------------------------------------------------        244         17 35232                    DEDICATED 35233       19          7 alter system kill session '244,17' immediate; --//记下spid=35233 --//先打入以下命令不要执行。 SYS@book> @ 10000.txt --//windows 2: $ gdb -p 35233 -x latch11gs.gdb | tee res.txt Breakpoint 1 at 0xa874fa Breakpoint 2 at 0xa875df Breakpoint 3 at 0xa87687 Breakpoint 4 at 0xa8768b Breakpoint 5 at 0xa8768e Breakpoint 6 at 0xa87698 Breakpoint 7 at 0x9808932 Breakpoint 8 at 0x9809840 Breakpoint 9 at 0x37990d6400 (gdb) --//OK,现在先执行windows 1: 的 i6.sh脚本。然后执行session 2,10000.txt脚本。切换到windows 2观察。 (gdb) c (gdb) c Continuing. 2021/02/18 15:51:52.598152261 :kslskgs 60018a18, 6, 929817680, 929818224 2021/02/18 15:51:52.604581548 :*0xa87687: spin count loop: 4 a87687 2021/02/18 15:51:52.610972554 :*0xa87687: spin count loop: 3 a87687 2021/02/18 15:51:52.616719815 :*0xa87687: spin count loop: 2 a87687 2021/02/18 15:51:52.623191750 :*0xa87687: spin count loop: 1 a87687 2021/02/18 15:51:52.630966475 :*0xa87698: spin count loop: 2000 a87698 2021/02/18 15:51:52.637195641 :*0xa87687: spin count loop: 4 a87687 2021/02/18 15:51:52.642983203 :*0xa87687: spin count loop: 3 a87687 2021/02/18 15:51:52.649088599 :*0xa87687: spin count loop: 2 a87687 2021/02/18 15:51:52.654759673 :*0xa87687: spin count loop: 1 a87687 2021/02/18 15:51:52.662544757 :*0xa87698: spin count loop: 1999 a87698 2021/02/18 15:51:54.440909478 :kslskgs 60018a18, 6, 929817680, 929818224 2021/02/18 15:51:56.677567413 :kslskgs 60018a18, 6, 929817680, 929818224 2021/02/18 15:51:56.683185841 :*0xa87687: spin count loop: 4 a87687 2021/02/18 15:51:56.688927949 :*0xa87687: spin count loop: 3 a87687 2021/02/18 15:51:56.694252516 :*0xa87687: spin count loop: 2 a87687 2021/02/18 15:51:56.699441517 :*0xa87687: spin count loop: 1 a87687 2021/02/18 15:51:56.705942574 :*0xa87698: spin count loop: 2000 a87698 2021/02/18 15:51:56.711313100 :*0xa87687: spin count loop: 4 a87687 2021/02/18 15:51:56.716322313 :*0xa87687: spin count loop: 3 a87687 2021/02/18 15:51:56.721304727 :*0xa87687: spin count loop: 2 a87687 2021/02/18 15:51:56.726386340 :*0xa87687: spin count loop: 1 a87687 2021/02/18 15:51:56.732967701 :*0xa87698: spin count loop: 1999 a87698 2021/02/18 15:51:56.738010257 :*0xa87687: spin count loop: 4 a87687 2021/02/18 15:51:56.742473027 :*0xa87687: spin count loop: 3 a87687 2021/02/18 15:51:56.745386114 :*0xa87687: spin count loop: 2 a87687 2021/02/18 15:51:56.748461503 :*0xa87687: spin count loop: 1 a87687 2021/02/18 15:51:56.752307565 :*0xa87698: spin count loop: 1998 a87698 ... 2021/02/18 15:57:27.459426921 :kslskgs 60018a18, 6, 128051040, 128051584 2021/02/18 15:57:27.466403394 :*0xa87687: spin count loop: 4 a87687 2021/02/18 15:57:27.472208065 :*0xa87687: spin count loop: 3 a87687 2021/02/18 15:57:27.478077048 :*0xa87687: spin count loop: 2 a87687 2021/02/18 15:57:27.484191018 :*0xa87687: spin count loop: 1 a87687 2021/02/18 15:57:27.492431005 :*0xa87698: spin count loop: 2000 a87698 2021/02/18 15:57:27.499155005 :*0xa87687: spin count loop: 4 a87687 2021/02/18 15:57:27.505217979 :*0xa87687: spin count loop: 3 a87687 2021/02/18 15:57:27.510815580 :*0xa87687: spin count loop: 2 a87687 2021/02/18 15:57:27.516498146 :*0xa87687: spin count loop: 1 a87687 2021/02/18 15:57:27.524401034 :*0xa87698: spin count loop: 1999 a87698 2021/02/18 15:57:27.530470533 :*0xa87687: spin count loop: 4 a87687 2021/02/18 15:57:27.536292687 :*0xa87687: spin count loop: 3 a87687 2021/02/18 15:57:27.542214158 :*0xa87687: spin count loop: 2 a87687 2021/02/18 15:57:27.547843092 :*0xa87687: spin count loop: 1 a87687 2021/02/18 15:57:27.556815580 :*0xa87698: spin count loop: 1998 a87698 2021/02/18 15:57:27.565061595 :*0xa87687: spin count loop: 4 a87687 2021/02/18 15:57:27.571067169 :*0xa87687: spin count loop: 3 a87687 2021/02/18 15:57:27.577793300 :*0xa87687: spin count loop: 2 a87687 2021/02/18 15:57:27.583724376 :*0xa87687: spin count loop: 1 a87687 2021/02/18 15:57:27.593319162 :*0xa87698: spin count loop: 1997 a87698 2021/02/18 15:57:27.599342687 :*0xa87687: spin count loop: 4 a87687 2021/02/18 15:57:27.605480648 :*0xa87687: spin count loop: 3 a87687 2021/02/18 15:57:27.611107830 :*0xa87687: spin count loop: 2 a87687 2021/02/18 15:57:27.617360925 :*0xa87687: spin count loop: 1 a87687 2021/02/18 15:57:27.625274080 :*0xa87698: spin count loop: 1996 a87698 2021/02/18 15:57:27.631908457 :*0xa87687: spin count loop: 4 a87687 2021/02/18 15:57:29.902695215 :kslskgs 60018a18, 6, 128051040, 128051584 ---------------------- SYS@book> @ viewlatch.sql 'gcs partitioned table hash' ADDR             NAME                                         LEVEL#       GETS     MISSES     SLEEPS IMMEDIATE_GETS IMMEDIATE_MISSES WAITERS_WOKEN WAITS_HOLDING_LATCH  SPIN_GETS  WAIT_TIME ---------------- ---------------------------------------- ---------- ---------- ---------- ---------- -------------- ---------------- ------------- ------------------- ---------- ---------- 0000000060018A18 gcs partitioned table hash                        6     223919        804          0              0                0             0                   0        804          0 --//奇怪,我尝试多次就是看不到sleeps计数增加. # vmstat  1 100 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st 14  0      0 118054128 442704 9727720    0    0     0     6    1    0  0  0 100  0  0  9  0      0 118050560 442704 9730896    0    0     0  2132 50358 74399 31 15 55  0  0 14  0      0 118048128 442704 9733196    0    0     0   596 41630 61783 29 13 58  0  0 11  0      0 118044528 442704 9736776    0    0     0     0 48770 76711 29 13 59  0  0 11  0      0 118041184 442712 9740072    0    0     0 13888 50246 72362 31 15 54  0  0 12  0      0 118037664 442712 9743352    0    0     0  2544 48205 70332 30 14 56  0  0 13  0      0 118034584 442712 9746256    0    0     0  2148 49625 73596 30 14 56  0  0 18  0      0 118021600 442712 9748972    0    0     0  1648 41215 62941 27 12 60  0  0  9  0      0 118018480 442712 9751808    0    0     0   520 43409 66708 28 13 59  0  0 12  0      0 118015760 442712 9755388    0    0     0 12192 50737 75644 30 14 56  0  0 10  0      0 118012512 442712 9758604    0    0     0  1620 49358 80965 29 13 59  0  0 15  0      0 118009536 442712 9761688    0    0     0  3036 44829 69719 26 12 62  0  0 20  0      0 118006944 442712 9764936    0    0     0  2448 50361 74785 31 15 55  0  0 19  0      0 118003344 442712 9768516    0    0     0   896 48810 73226 29 14 57  0  0  8  0      0 118000464 442716 9771452    0    0     0 12176 47782 66337 30 15 55  0  0 12  0      0 117996608 442716 9774680    0    0     0  1516 51559 75710 33 16 51  0  0 13  0      0 117993504 442716 9777652    0    0     0  2972 49101 70501 32 15 53  0  0 18  0      0 117980256 442716 9780676    0    0     0  2348 47234 67977 30 14 56  0  0 15  0      0 117976768 442716 9784096    0    0     0   956 48611 69637 32 15 53  0  0 20  0      0 117973920 442720 9787008    0    0     0 12300 49871 70088 31 15 54  0  0  8  0      0 117971192 442720 9789780    0    0     0  1640 49790 75964 32 15 52  0  0 5.修改cpu_count参数: --//重复测试: SYS@book> show parameter cpu_count NAME      TYPE    VALUE --------- ------- ------- cpu_count integer 3 (gdb) c Continuing. 2021/02/18 16:14:46.778579223 :kslskgs 60018a18, 6, 283716784, 283717328 2021/02/18 16:14:46.785910586 :*0xa87687: spin count loop: 3 a87687 2021/02/18 16:14:46.791884616 :*0xa87687: spin count loop: 2 a87687 2021/02/18 16:14:46.797980334 :*0xa87687: spin count loop: 1 a87687 2021/02/18 16:14:46.806807505 :*0xa87698: spin count loop: 2000 a87698 2021/02/18 16:14:46.813383198 :*0xa87687: spin count loop: 3 a87687 2021/02/18 16:14:46.819353275 :*0xa87687: spin count loop: 2 a87687 2021/02/18 16:14:48.113589673 :kslskgs 60018a18, 6, 283716784, 283717328 2021/02/18 16:14:48.121196787 :*0xa87687: spin count loop: 3 a87687 2021/02/18 16:14:48.128792042 :*0xa87687: spin count loop: 2 a87687 2021/02/18 16:14:48.135572995 :*0xa87687: spin count loop: 1 a87687 2021/02/18 16:14:48.143634610 :*0xa87698: spin count loop: 2000 a87698 2021/02/18 16:14:48.150272887 :*0xa87687: spin count loop: 3 a87687 2021/02/18 16:14:48.156610454 :*0xa87687: spin count loop: 2 a87687 2021/02/18 16:14:48.163472352 :*0xa87687: spin count loop: 1 a87687 2021/02/18 16:14:48.172146070 :*0xa87698: spin count loop: 1999 a87698 2021/02/18 16:14:48.181231250 :*0xa87687: spin count loop: 3 a87687 2021/02/18 16:14:48.188271352 :*0xa87687: spin count loop: 2 a87687 2021/02/18 16:14:48.194545781 :*0xa87687: spin count loop: 1 a87687 2021/02/18 16:14:48.202499380 :*0xa87698: spin count loop: 1998 a87698 2021/02/18 16:14:50.082033752 :kslskgs 60018a18, 6, 283716784, 283717328 2021/02/18 16:14:50.089758821 :*0xa87687: spin count loop: 3 a87687 2021/02/18 16:14:50.096454506 :*0xa87687: spin count loop: 2 a87687 2021/02/18 16:14:50.102671824 :*0xa87687: spin count loop: 1 a87687 2021/02/18 16:14:50.110333114 :*0xa87698: spin count loop: 2000 a87698 2021/02/18 16:14:50.116676575 :*0xa87687: spin count loop: 3 a87687 2021/02/18 16:14:50.124042767 :*0xa87687: spin count loop: 2 a87687 2021/02/18 16:14:50.130917522 :*0xa87687: spin count loop: 1 a87687 2021/02/18 16:14:50.140123589 :*0xa87698: spin count loop: 1999 a87698 2021/02/18 16:14:50.146840829 :*0xa87687: spin count loop: 3 a87687 2021/02/18 16:14:50.152307081 :*0xa87687: spin count loop: 2 a87687 2021/02/18 16:14:50.157731142 :*0xa87687: spin count loop: 1 a87687 2021/02/18 16:14:50.165359806 :*0xa87698: spin count loop: 1998 a87698 2021/02/18 16:14:50.172874645 :*0xa87687: spin count loop: 3 a87687 2021/02/18 16:14:50.181793430 :*0xa87687: spin count loop: 2 a87687 2021/02/18 16:14:50.188943762 :*0xa87687: spin count loop: 1 a87687 2021/02/18 16:14:50.197589693 :*0xa87698: spin count loop: 1997 a87698 2021/02/18 16:14:50.203674455 :*0xa87687: spin count loop: 3 a87687 2021/02/18 16:14:50.209190905 :*0xa87687: spin count loop: 2 a87687 2021/02/18 16:14:50.215012281 :*0xa87687: spin count loop: 1 a87687 2021/02/18 16:14:50.222724480 :*0xa87698: spin count loop: 1996 a87698 2021/02/18 16:14:53.423927452 :kslskgs 60018a18, 6, 283716784, 283717328 2021/02/18 16:14:53.431248508 :*0xa87687: spin count loop: 3 a87687 ^C Program received signal SIGINT, Interrupt. 0x00000037990d5c85 in send () from /lib64/libc.so.6 6.总结: --//我的感觉是死循环,并没有进入sleep,不知道我哪里做错了. 7.附上反汇编kslskgs的内容: (gdb) disassemble kslskgs Dump of assembler code for function kslskgs: 0x0000000000a874f6 <kslskgs+0>: push   %rbp 0x0000000000a874f7 <kslskgs+1>: mov    %rsp,%rbp 0x0000000000a874fa <kslskgs+4>: sub    $0x60,%rsp 0x0000000000a874fe <kslskgs+8>: mov    %rdx,%r8 0x0000000000a87501 <kslskgs+11>:        mov    0x5f5826f9(%rip),%edx        # 0x60009c00 0x0000000000a87507 <kslskgs+17>:        mov    0xb66c03f(%rip),%eax        # 0xc0f354c <ksmmpd_> 0x0000000000a8750d <kslskgs+23>:        mov    %esi,-0x18(%rbp) 0x0000000000a87510 <kslskgs+26>:        mov    0xb66a629(%rip),%rsi        # 0xc0f1b40 <ksupga_> 0x0000000000a87517 <kslskgs+33>:        test   %eax,%eax 0x0000000000a87519 <kslskgs+35>:        je     0xa8780f <kslskgs+793> 0x0000000000a8751f <kslskgs+41>:        mov    0x5f584bcb(%rip),%eax        # 0x6000c0f0 0x0000000000a87525 <kslskgs+47>:        test   %eax,%eax 0x0000000000a87527 <kslskgs+49>:        je     0xa8780f <kslskgs+793> 0x0000000000a8752d <kslskgs+55>:        cmp    $0x1,%eax 0x0000000000a87530 <kslskgs+58>:        jle    0xa8780b <kslskgs+789> 0x0000000000a87536 <kslskgs+64>:        mov    (%rcx),%eax 0x0000000000a87538 <kslskgs+66>:        test   $0x20,%al 0x0000000000a8753a <kslskgs+68>:        jne    0xa87801 <kslskgs+779> 0x0000000000a87540 <kslskgs+74>:        test   $0x100,%eax 0x0000000000a87545 <kslskgs+79>:        jne    0xa87550 <kslskgs+90> 0x0000000000a87547 <kslskgs+81>:        mov    %rdi,0x278(%rsi) 0x0000000000a8754e <kslskgs+88>:        jmp    0xa8755d <kslskgs+103> 0x0000000000a87550 <kslskgs+90>:        mov    -0x18(%rbp),%eax 0x0000000000a87553 <kslskgs+93>:        mov    %eax,%eax 0x0000000000a87555 <kslskgs+95>:        mov    %rdi,0x460(%rsi,%rax,8) 0x0000000000a8755d <kslskgs+103>:       mov    (%rcx),%r10d 0x0000000000a87560 <kslskgs+106>:       test   $0x8,%r10d 0x0000000000a87567 <kslskgs+113>:       jne    0xa87608 <kslskgs+274> 0x0000000000a8756d <kslskgs+119>:       mov    0xb66a5cc(%rip),%r9        # 0xc0f1b40 <ksupga_> 0x0000000000a87574 <kslskgs+126>:       movslq 0xb8(%r9),%r9 0x0000000000a8757b <kslskgs+133>:       mov    $0x2000000000000000,%rax 0x0000000000a87585 <kslskgs+143>:       or     %rax,%r9 0x0000000000a87588 <kslskgs+146>:       mov    (%rdi),%rax 0x0000000000a8758b <kslskgs+149>:       test   %edx,%edx 0x0000000000a8758d <kslskgs+151>:       je     0xa87757 <kslskgs+609> 0x0000000000a87593 <kslskgs+157>:       mov    %rsi,-0x50(%rbp) 0x0000000000a87597 <kslskgs+161>:       mov    %r8,-0x48(%rbp) 0x0000000000a8759b <kslskgs+165>:       mov    %rbx,-0x40(%rbp) 0x0000000000a8759f <kslskgs+169>:       mov    %rax,%rbx 0x0000000000a875a2 <kslskgs+172>:       mov    %r12,-0x38(%rbp) 0x0000000000a875a6 <kslskgs+176>:       mov    %r13,-0x30(%rbp) 0x0000000000a875aa <kslskgs+180>:       mov    %r14,-0x28(%rbp) 0x0000000000a875ae <kslskgs+184>:       mov    %r15,-0x20(%rbp) 0x0000000000a875b2 <kslskgs+188>:       mov    %edx,%r13d 0x0000000000a875b5 <kslskgs+191>:       mov    %rcx,%r15 0x0000000000a875b8 <kslskgs+194>:       mov    %rdi,%r14 0x0000000000a875bb <kslskgs+197>:       mov    %r9,%r12 0x0000000000a875be <kslskgs+200>:       mov    $0x4000000000000000,%rsi ====================================================================== 0x0000000000a875c8 <kslskgs+210>:       cmp    %rsi,%rbx 0x0000000000a875cb <kslskgs+213>:       je     0xa876db <kslskgs+485> 0x0000000000a875d1 <kslskgs+219>:       test   %rbx,%rbx 0x0000000000a875d4 <kslskgs+222>:       je     0xa876db <kslskgs+485> 0x0000000000a875da <kslskgs+228>:       mov    (%r14),%rbx 0x0000000000a875dd <kslskgs+231>:       pause 0x0000000000a875df <kslskgs+233>:       add    $0xffffffffffffffff,%r13d 0x0000000000a875e3 <kslskgs+237>:       jne    0xa875be <kslskgs+200> ======================================================================= 0x0000000000a875e5 <kslskgs+239>:       mov    -0x50(%rbp),%rsi 0x0000000000a875e9 <kslskgs+243>:       mov    -0x40(%rbp),%rbx 0x0000000000a875ed <kslskgs+247>:       mov    -0x38(%rbp),%r12 0x0000000000a875f1 <kslskgs+251>:       mov    -0x30(%rbp),%r13 0x0000000000a875f5 <kslskgs+255>:       mov    %r15,%rcx 0x0000000000a875f8 <kslskgs+258>:       mov    (%rcx),%r10d 0x0000000000a875fb <kslskgs+261>:       mov    -0x28(%rbp),%r14 0x0000000000a875ff <kslskgs+265>:       mov    -0x20(%rbp),%r15 0x0000000000a87603 <kslskgs+269>:       jmpq   0xa876bc <kslskgs+454> 0x0000000000a87608 <kslskgs+274>:       mov    $0xe000000000000000,%r9 0x0000000000a87612 <kslskgs+284>:       mov    %r10d,%eax 0x0000000000a87615 <kslskgs+287>:       and    $0x80,%eax 0x0000000000a8761a <kslskgs+292>:       mov    $0xa000000000000000,%rax 0x0000000000a87624 <kslskgs+302>:       cmove  %r9,%rax 0x0000000000a87628 <kslskgs+306>:       test   %edx,%edx 0x0000000000a8762a <kslskgs+308>:       je     0xa876bc <kslskgs+454> 0x0000000000a87630 <kslskgs+314>:       mov    %rsi,-0x50(%rbp) 0x0000000000a87634 <kslskgs+318>:       mov    %r8,-0x48(%rbp) 0x0000000000a87638 <kslskgs+322>:       mov    %rbx,-0x40(%rbp) 0x0000000000a8763c <kslskgs+326>:       mov    %rax,%rbx 0x0000000000a8763f <kslskgs+329>:       mov    %r12,-0x38(%rbp) 0x0000000000a87643 <kslskgs+333>:       mov    %rcx,%r12 0x0000000000a87646 <kslskgs+336>:       mov    %r13,-0x30(%rbp) 0x0000000000a8764a <kslskgs+340>:       mov    %r14,-0x28(%rbp) 0x0000000000a8764e <kslskgs+344>:       mov    %r15,-0x20(%rbp) 0x0000000000a87652 <kslskgs+348>:       mov    %edx,%r14d 0x0000000000a87655 <kslskgs+351>:       mov    %rdi,%r13 0x0000000000a87658 <kslskgs+354>:       mov    0x0(%r13),%r15 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0x0000000000a8765c <kslskgs+358>:       mov    0xb66beea(%rip),%esi        # 0xc0f354c <ksmmpd_> 0x0000000000a87662 <kslskgs+364>:       test   %esi,%esi 0x0000000000a87664 <kslskgs+366>:       je     0xa877e1 <kslskgs+747> 0x0000000000a8766a <kslskgs+372>:       mov    0x5f584a80(%rip),%eax        # 0x6000c0f0 0x0000000000a87670 <kslskgs+378>:       test   %eax,%eax 0x0000000000a87672 <kslskgs+380>:       je     0xa877e1 <kslskgs+747> 0x0000000000a87678 <kslskgs+386>:       mov    %r14d,-0x10(%rbp) 0x0000000000a8767c <kslskgs+390>:       mov    %eax,%r14d 0x0000000000a8767f <kslskgs+393>:       jmp    0xa8768b <kslskgs+405> 0x0000000000a87681 <kslskgs+395>:       mov    -0x60(%rbp),%r15 0x0000000000a87685 <kslskgs+399>:       pause 0x0000000000a87687 <kslskgs+401>:       add    $0xffffffffffffffff,%r14d ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0x0000000000a8768b <kslskgs+405>:       test   %r15,%rbx 0x0000000000a8768e <kslskgs+408>:       je     0xa8775f <kslskgs+617> 0x0000000000a87694 <kslskgs+414>:       mov    -0x10(%rbp),%r14d 0x0000000000a87698 <kslskgs+418>:       add    $0xffffffffffffffff,%r14d 0x0000000000a8769c <kslskgs+422>:       jne    0xa87658 <kslskgs+354> 0x0000000000a8769e <kslskgs+424>:       mov    -0x50(%rbp),%rsi 0x0000000000a876a2 <kslskgs+428>:       mov    -0x40(%rbp),%rbx 0x0000000000a876a6 <kslskgs+432>:       mov    -0x30(%rbp),%r13 0x0000000000a876aa <kslskgs+436>:       mov    -0x28(%rbp),%r14 0x0000000000a876ae <kslskgs+440>:       mov    %r12,%rcx 0x0000000000a876b1 <kslskgs+443>:       mov    (%rcx),%r10d 0x0000000000a876b4 <kslskgs+446>:       mov    -0x38(%rbp),%r12 0x0000000000a876b8 <kslskgs+450>:       mov    -0x20(%rbp),%r15 0x0000000000a876bc <kslskgs+454>:       test   $0x100,%r10d 0x0000000000a876c3 <kslskgs+461>:       jne    0xa877eb <kslskgs+757> 0x0000000000a876c9 <kslskgs+467>:       movq   $0x0,0x278(%rsi) 0x0000000000a876d4 <kslskgs+478>:       xor    %eax,%eax 0x0000000000a876d6 <kslskgs+480>:       mov    %rbp,%rsp 0x0000000000a876d9 <kslskgs+483>:       pop    %rbp 0x0000000000a876da <kslskgs+484>:       retq 0x0000000000a876db <kslskgs+485>:       mov    (%r15),%esi 0x0000000000a876de <kslskgs+488>:       test   $0x2,%esi 0x0000000000a876e4 <kslskgs+494>:       jne    0xa87725 <kslskgs+559> 0x0000000000a876e6 <kslskgs+496>:       mov    %rbx,%rax 0x0000000000a876e9 <kslskgs+499>:       lock cmpxchg %r12,(%r14) 0x0000000000a876ee <kslskgs+504>:       mov    %rax,-0x60(%rbp) 0x0000000000a876f2 <kslskgs+508>:       sete   %al 0x0000000000a876f5 <kslskgs+511>:       movzbq %al,%rax 0x0000000000a876f9 <kslskgs+515>:       test   %rax,%rax 0x0000000000a876fc <kslskgs+518>:       je     0xa8771c <kslskgs+550> 0x0000000000a876fe <kslskgs+520>:       mov    -0x40(%rbp),%rbx 0x0000000000a87702 <kslskgs+524>:       mov    -0x38(%rbp),%r12 0x0000000000a87706 <kslskgs+528>:       mov    -0x30(%rbp),%r13 0x0000000000a8770a <kslskgs+532>:       mov    -0x28(%rbp),%r14 0x0000000000a8770e <kslskgs+536>:       mov    $0x1,%eax 0x0000000000a87713 <kslskgs+541>:       mov    -0x20(%rbp),%r15 0x0000000000a87717 <kslskgs+545>:       mov    %rbp,%rsp 0x0000000000a8771a <kslskgs+548>:       pop    %rbp 0x0000000000a8771b <kslskgs+549>:       retq 0x0000000000a8771c <kslskgs+550>:       mov    -0x60(%rbp),%rbx                                                                                                                                                                                                         [0/221] 0x0000000000a87720 <kslskgs+554>:       jmpq   0xa875dd <kslskgs+231> 0x0000000000a87725 <kslskgs+559>:       mov    -0x48(%rbp),%rdi 0x0000000000a87729 <kslskgs+563>:       callq  0x9405080 <kslwtectx> 0x0000000000a8772e <kslskgs+568>:       mov    (%r15),%esi 0x0000000000a87731 <kslskgs+571>:       and    $0xfffffffffffffffd,%esi 0x0000000000a87734 <kslskgs+574>:       mov    %esi,(%r15) 0x0000000000a87737 <kslskgs+577>:       test   $0x4,%esi 0x0000000000a8773d <kslskgs+583>:       je     0xa876e6 <kslskgs+496> 0x0000000000a8773f <kslskgs+585>:       mov    0xb66a2f2(%rip),%rdi        # 0xc0f1a38 <ksmgpp_> 0x0000000000a87746 <kslskgs+592>:       mov    -0x48(%rbp),%rsi 0x0000000000a8774a <kslskgs+596>:       xor    %edx,%edx 0x0000000000a8774c <kslskgs+598>:       callq  0x97fd318 <kgslwait_resource_time_waited_usecs> 0x0000000000a87751 <kslskgs+603>:       add    %rax,0x30(%r14) 0x0000000000a87755 <kslskgs+607>:       jmp    0xa876e6 <kslskgs+496> 0x0000000000a87757 <kslskgs+609>:       mov    (%rcx),%r10d 0x0000000000a8775a <kslskgs+612>:       jmpq   0xa876bc <kslskgs+454> 0x0000000000a8775f <kslskgs+617>:       test   %r14d,%r14d 0x0000000000a87762 <kslskgs+620>:       je     0xa87694 <kslskgs+414> 0x0000000000a87768 <kslskgs+626>:       mov    (%r12),%edx 0x0000000000a8776c <kslskgs+630>:       test   $0x2,%dl 0x0000000000a8776f <kslskgs+633>:       jne    0xa877b0 <kslskgs+698> 0x0000000000a87771 <kslskgs+635>:       lea    0x1(%r15),%rdx 0x0000000000a87775 <kslskgs+639>:       mov    %r15,%rax 0x0000000000a87778 <kslskgs+642>:       lock cmpxchg %rdx,0x0(%r13) 0x0000000000a8777e <kslskgs+648>:       mov    %rax,-0x60(%rbp) 0x0000000000a87782 <kslskgs+652>:       sete   %al 0x0000000000a87785 <kslskgs+655>:       movzbq %al,%rax 0x0000000000a87789 <kslskgs+659>:       test   %rax,%rax 0x0000000000a8778c <kslskgs+662>:       je     0xa87681 <kslskgs+395> 0x0000000000a87792 <kslskgs+668>:       mov    -0x40(%rbp),%rbx 0x0000000000a87796 <kslskgs+672>:       mov    -0x38(%rbp),%r12 0x0000000000a8779a <kslskgs+676>:       mov    -0x30(%rbp),%r13 0x0000000000a8779e <kslskgs+680>:       mov    -0x28(%rbp),%r14 0x0000000000a877a2 <kslskgs+684>:       mov    $0x1,%eax 0x0000000000a877a7 <kslskgs+689>:       mov    -0x20(%rbp),%r15 0x0000000000a877ab <kslskgs+693>:       mov    %rbp,%rsp 0x0000000000a877ae <kslskgs+696>:       pop    %rbp 0x0000000000a877af <kslskgs+697>:       retq 0x0000000000a877b0 <kslskgs+698>:       mov    -0x48(%rbp),%rdi 0x0000000000a877b4 <kslskgs+702>:       callq  0x9405080 <kslwtectx> 0x0000000000a877b9 <kslskgs+707>:       mov    (%r12),%edx 0x0000000000a877bd <kslskgs+711>:       and    $0xfffffffffffffffd,%edx 0x0000000000a877c0 <kslskgs+714>:       mov    %edx,(%r12) 0x0000000000a877c4 <kslskgs+718>:       test   $0x4,%dl 0x0000000000a877c7 <kslskgs+721>:       je     0xa87771 <kslskgs+635> 0x0000000000a877c9 <kslskgs+723>:       mov    0xb66a268(%rip),%rdi        # 0xc0f1a38 <ksmgpp_> 0x0000000000a877d0 <kslskgs+730>:       mov    -0x48(%rbp),%rsi 0x0000000000a877d4 <kslskgs+734>:       xor    %edx,%edx 0x0000000000a877d6 <kslskgs+736>:       callq  0x97fd318 <kgslwait_resource_time_waited_usecs> 0x0000000000a877db <kslskgs+741>:       add    %rax,0x30(%r13) 0x0000000000a877df <kslskgs+745>:       jmp    0xa87771 <kslskgs+635> 0x0000000000a877e1 <kslskgs+747>:       callq  0x238dfbc <ksb_cpu_eff_thread_count_compute> 0x0000000000a877e6 <kslskgs+752>:       jmpq   0xa87678 <kslskgs+386> 0x0000000000a877eb <kslskgs+757>:       mov    -0x18(%rbp),%eax 0x0000000000a877ee <kslskgs+760>:       mov    %eax,%eax 0x0000000000a877f0 <kslskgs+762>:       movq   $0x0,0x460(%rsi,%rax,8) 0x0000000000a877fc <kslskgs+774>:       jmpq   0xa876d4 <kslskgs+478> 0x0000000000a87801 <kslskgs+779>:       mov    $0x1,%edx 0x0000000000a87806 <kslskgs+784>:       jmpq   0xa87540 <kslskgs+74> 0x0000000000a8780b <kslskgs+789>:       mov    (%rcx),%eax 0x0000000000a8780d <kslskgs+791>:       jmp    0xa87801 <kslskgs+779> 0x0000000000a8780f <kslskgs+793>:       mov    %edx,-0x10(%rbp) 0x0000000000a87812 <kslskgs+796>:       mov    %rsi,-0x50(%rbp) 0x0000000000a87816 <kslskgs+800>:       mov    %rdi,-0x60(%rbp) 0x0000000000a8781a <kslskgs+804>:       mov    %r8,-0x48(%rbp) 0x0000000000a8781e <kslskgs+808>:       mov    %rcx,-0x58(%rbp) 0x0000000000a87822 <kslskgs+812>:       callq  0x238dfbc <ksb_cpu_eff_thread_count_compute> 0x0000000000a87827 <kslskgs+817>:       mov    -0x58(%rbp),%rcx 0x0000000000a8782b <kslskgs+821>:       mov    -0x48(%rbp),%r8 0x0000000000a8782f <kslskgs+825>:       mov    -0x60(%rbp),%rdi 0x0000000000a87833 <kslskgs+829>:       mov    -0x50(%rbp),%rsi 0x0000000000a87837 <kslskgs+833>:       mov    -0x10(%rbp),%edx 0x0000000000a8783a <kslskgs+836>:       jmpq   0xa8752d <kslskgs+55> 0x0000000000a8783f <kslskgs+841>:       nop End of assembler dump.

相关推荐