2016-06-21 2 views
0

코드에서 lock contention을 찾으려고하는데 표준 systemtap 릴리스에서 futexes.stp를 찾았습니다. 주소를 스택 ..........Systemtap의 futexes.stp에서 출력을 해석하는 방법

  • 무엇 모든 구조에서 0x7f와 :

    그래서 여기
    stap -d /usr/local/bin/cruncher ~/futexes.stp 
    (and then I run cruncher application in another term) 
    
    auditd[1803] lock 0x564dd507f228 contended 2 times, 119 avg us 
    auditd[1803] lock 0x564dd507f254 contended 28 times, 458040 avg us 
    rs:main Q:Reg[1837] lock 0x5563b67c2044 contended 7 times, 2352067 avg us 
    ... 
    cruncher[17021] lock 0x7f6c9c57914c contended 2 times, 46 avg us 
    cruncher[17021] lock 0x7eff50 contended 82 times, 16 avg us 
    cruncher[17021] lock 0x7f6c40901f24 contended 20 times, 109 avg us 
    cruncher[17021] lock 0x7f6f38e0633c contended 4471 times, 2106 avg us 
    cruncher[17021] lock 0x7dae7c0 contended 8861 times, 26 avg us 
    cruncher[17021] lock 0x7f6cc2f14560 contended 2 times, 9 avg us 
    cruncher[17021] lock 0x7f6c8685d024 contended 5 times, 95 avg us 
    cruncher[17021] lock 0x7f6cd9e2ded4 contended 6 times, 428 avg us 
    cruncher[17021] lock 0x7f6c5196937c contended 44 times, 484 avg us 
    cruncher[17021] lock 0x7f6ba20c0290 contended 4 times, 8 avg us 
    ... 
    

    이 질문들 :하지만 출력과 몇 가지 질문이 있습니까? 나는 그것이 내 신청서가 아니라고 확신한다. 라이브러리 또는 커널 뮤텍스 (또는 condvars)가 내 애플리케이션을 대신합니까? 어떻게 확인합니까?

  • 짧은 주소가있는 "잠금 장치"는 내 것입니다. 나는 gdb의 "info symbol"명령으로 그것들을 검증 할 수 있지만, stap에서 기호로 자동 디코드하는 좋은 방법은 무엇이겠습니까?

저는 리눅스 4.6.2 메인 라인 커널을 사용하고 있습니다. 동일한 상자에 내장되어 있으며 git 저장소의 최신 시스템 탭이 있습니다. 내 cruncher 응용 프로그램은 -g로 작성되었으며 기호는 제거되지 않습니다.

미리 감사드립니다.

답변

0

lock 0x7f... 주소는 futex(2) 시스템 호출로 전달되는 사용자 공간 포인터입니다. 이 스크립트는 그대로 축 어적으로 저장합니다. 그들은 glibc pthreads-mutex 타입 객체의 내부를 가리킬 것입니다.

어떤 개체로 ... 주소 - 기호 찾아보기 단계를 추가해야합니다. 아마도 pthread mutex 초기화를 다른 프로브로 인터셉트하여 pthread 잠금 테이블을 어셈블하는 것으로 작동 할 수 있습니다. 또는 수신 futex 주소에 usymdata(...) 조회를 추가합니다. 두 기술을 모두 사용하려면 mutex-contention.stp 샘플 스크립트를 참조하십시오.

관련 문제