[완료]리눅스 커널의 오버헤드 적은 모니터링 방법을 알고싶습니다
글쓴이: thethe / 작성시간: 수, 2010/07/21 - 10:34오전
현재 리눅스 커널 2.6.23 스케줄링 정책을 수정하고 있습니다.
아직 미흡한 단계라 task_struct 구조체의 몇몇 변수값을 확인하고 싶어서
schedule(void) 함수 내에 printk를 삽입하고 dmesg를 사용하여 로그를 추적하고있는데요
printk가 가벼운 함수가 아닌지 스케줄링의 원초적(?)디버깅 방법조차 오버헤드가 큰거같았습니다;
cat 으로 (확인시(task switching) 너무 자주일어납니다)
그래서 오버헤드가 적으면서 스케줄링 과정을 추적하는 방법을 아무리 고심해도
printk 보다 간단하면서 좋은 방법이 떠오르질않습니다. 혹시 이쪽 관련하여 좋은 방법있으시면 조언 부탁드립니다
Forums:
음... 커널 버전이 꼭
음... 커널 버전이 꼭 2.6.23이어야 하나요?
2.6.27이후에는 커널에 ftrace 패치가 통합이 되어서 스케줄링 과정을 추적하기가 쉽습니다.
ftrace의 수많은 트레이서중 하나인 sched_switch를 사용하면 태스크 스위치 과정이 일목요연하게 출력됩니다.
참고하시길...
--------------
save the earth
생산적인 댓글을 달자
댓글 달기