도와주세요!!
글 수 15,339
2004.12.15 15:33:37 (*.100.129.49)
6753
서로 다른 세개의 드라이버가 아래와 같이 커널 타이머를 이용하여 동작하고
있습니다.
#define SCANHZ (HZ/20)
static void AIScan(unsigned long dummy)
{
AIActive();
init_timer(&aiTimer);
aiTimer.expires = jiffies + SCANHZ;
aiTimer.data = 0;
aiTimer.function = AIScan;
add_timer(&aiTimer);
}
그런데 몇시간정도 지나면 약 15분정도 시스템이 멈춰버립니다. 처음엔 죽은건
줄 알았습니다. 드라이버 어느한곳에서 루프가 도는가 싶었는데, 그건 아닌것
같아요. jiffies값이 시스템이 멈춘시간에서 다시 시작하는 시간에서의
jiffies값이 똑같거든요. 그런데 더 이상한건 텔넷으로 접속해서 다른 작업들
을 모두 할수 있다것입니다. jiffies값이 변하지도 않는데 어플은 돌아가
고.... jiffies에 의해 태스크 스케쥴이 된다고 알고 있거든요.
있습니다.
#define SCANHZ (HZ/20)
static void AIScan(unsigned long dummy)
{
AIActive();
init_timer(&aiTimer);
aiTimer.expires = jiffies + SCANHZ;
aiTimer.data = 0;
aiTimer.function = AIScan;
add_timer(&aiTimer);
}
그런데 몇시간정도 지나면 약 15분정도 시스템이 멈춰버립니다. 처음엔 죽은건
줄 알았습니다. 드라이버 어느한곳에서 루프가 도는가 싶었는데, 그건 아닌것
같아요. jiffies값이 시스템이 멈춘시간에서 다시 시작하는 시간에서의
jiffies값이 똑같거든요. 그런데 더 이상한건 텔넷으로 접속해서 다른 작업들
을 모두 할수 있다것입니다. jiffies값이 변하지도 않는데 어플은 돌아가
고.... jiffies에 의해 태스크 스케쥴이 된다고 알고 있거든요.