티스토리 뷰

RDK를 개발하다 debugging시에 process 점유율이 높아서 짜증 나는 일이 발생했었다(지금은 무슨 문제였는 지 기억이 안 난다).
그 당시 어디가 문제인 지 모르는 상황이었다(남에 코드 가져다 개발하면 원래 이러지). 


Debugging을 위해 htop으로 문제의 process를 살펴보면 점유율은 높은데, 어떤 thread들이 문제인지 보려고 thread list를 보면 모든 thread가 전부 같은 이름을 가지고 있는 것을 발견했다. 이런 왜 이렇게 돼있지? 


Code를 살펴보면, 주저리주러리 긴 이름으로 thread들에 이름을 일일히 지정해 놨던데 이상하다 생각하고 이유를 찾기 시작했다. 참고로 RDK에선 pthread를 사용하는 RMF_OSAL로 시작하는 wrapper가 있다.


rmf_Error rmf_osal_threadCreate(void (*entry)(void *), 
                                void *data, 
                                uint32_t priority, 
                                uint32_t stackSize, 
                                rmf_osal_TreadId *threadId, 
                                const char *name);


parameter를 보면 분명 thread name을 받아들이게 끔 되어 있고, 구현 역시 name에 NULL이 들어오면 이름을 자동으로 생성하도록 구현되어 있는데, htop으로 보면 thread name이 다 똑같은 것이다.


흠.


Debugging을 해보니, RDK 애네들이 thread name을 자기들 debugging structure에는 넣고, pthread API에는 넣어주지 않고 있었던 것을 찾았다.


결국 요놈을 안 부른 거지. 요 API 쓸 때 주의할 점은 name의 size는 16이라는 것이다. 이를 넘긴 string을 넣게 되면 error가 retuen되고 이름이 설정되지 않는다. 꼭 16이라는 size를 지켜야 한다.


int pthread_setname_np(pthread_t thread, const char *name);
http://man7.org/linux/man-pages/man3/pthread_setname_np.3.html


그래서, 이 API를 추가하고 debugging을 잘 했더라는 기억이 있다.


근데, "이런 것을 안 했을 리가" 하면서 개발했었는데, 진짜 RDK에는 없는 것들이 너무 많았기 때문에 답답해 할 다른 개발자들을 위해 commit을 시도해 보기로 했다. (RDK에서 받아 주지 않을 거라는 의견이 있었다. 그리고 우리 회사는 외부로 하는 commit을 달가워 하지 않았다. ㅜㅜ)


시험삼아 RDK repository에 commit 했었는데(2016년 1월에), 반영되지 않았었다. RDK가 commit을 받아줄 것인가 궁금했었기 때문에 너무 가벼운 마음으로 올리고 review -1 받으면 수정하고 올려야지 했었는데, 진짜 -1 받았다. 그 이후론 맡은 Role이 변경되면서 수정해야지 수정해야지 하다가 잊어버리고 있었는데, 오늘 code 받아서 확인해보니 내 commit을 RDK에서 comment 살짝 변경해서 지들이 그냥 올렸더라. 내 commit은 시간 만료로 abandon 했고. 


올라간 코드를 보니, 나한테 16이라는 constant를 define으로 지정하지 않았다고 해서 code review에서 -1을 줬는데, 지들이 올린 코드는 내 comment는 살짝 바꾸고, 내 코드 고대로 constant를 define으로 추가도 안하고 고대로 "15" size만 copy하도록 해 놨다. (왜 -1 준거야!!) 담에는 좀 더 진지하게 commit 하는 걸로.


RDK WiKi 계정 있으시면, 로그인해서 확인 가능. https://code.rdkcentral.com/r/#/c/3593/
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함