kosslab-kr / uftrace

Function (graph) tracer for user-space
https://uftrace.github.io/slide/
GNU General Public License v2.0
16 stars 0 forks source link

[임민채] 최종보고서 #61

Open minchae opened 7 years ago

minchae commented 7 years ago

컨트리뷰톤 문서

프로젝트 소개 문서

환경 구축 문서

컨트리뷰톤 전략

uftrace 활동 내역

1. Gitter

exit() 종류로 함수를 탈출하거나 프로세스 종료시 trace가 마감되지 않아 그에 대한 질문

이런 참조 구조를 통하여 SegmentFault가 뜰 수 있는 가능성에 대한 질문

uftrace gitter 링크 : https://gitter.im/uftrace/ko

image image image image image image image

2. Issue

멀티 쓰레드 상황에서 pthread_exit()를 활용하여 thread 내부를 탈출할 때 SegmentFault가 발생하는 bug 발견

그에 대한 간략한 코드 작성 및 issue 등록

Issue 링크 : https://github.com/namhyung/uftrace/issues/242

3. Pull Request

위의 Issue에 제기한 문제를 가지고 있는 Testcase를 작성하여 그에대한 Pull Request를 제출

밑에는 작성한 testcase

#include <pthread.h>

#define NUM_THREAD 4

pthread_t threads[NUM_THREAD];
void *thread_main(void *arg)
{
    double result;
    result = 1.0;
    printf("%f\n",result);
    pthread_exit((void *) 0);
}

int main(void)
{
    for (int i = 0; i < NUM_THREAD; i++){   
        pthread_create(&threads[i], NULL, &thread_main, (void *)i);
    }
    for (int i = 0; i < NUM_THREAD; i++){
        int status; 
        pthread_join(threads[i], (void **)&status);
    }
    return 0;
}

Pull Request 링크 : https://github.com/namhyung/uftrace/pull/243

perf 활동 내역

1. patch file 보내기

image

Documentation/tips.txt에 perf probe에 대한 내용 추가