안녕하세요. 지금 드라이버를 개발 중입니다.
근데 궁금 한 것이 printk를 많이 찍으면 문제가 발생 할 수 있나요?
로직상 문제가 없으면 느려지더라도 로직이 깨지지 않고 돌아가야 하나요?
아님 커널 구조상 문제가 될 수 있나요?
printk를 찍으면 뻗는데, 찍지 않으면 정상 동작을 합니다.
댓글 4
-
승철
2014.02.12 23:05
-
허경탁
2014.02.14 13:51
커널에서 printk를 찍을 때, 메모리에 락을 잡기 때문에 CPU Stall 이슈가 나올 수 있습니다 -
wizard1483
2014.02.14 16:14
네, 그건 소스를 통해 봤습니다. 근데 printk도 로직적으로 문제가 없다면 printk만 많이 써서는 lock up이 걸리지 않아야 하지 않습니까?
-
허경탁
2014.02.15 10:37
락을 잡는다는 것의 의미가 critical session을 만드는 것인데, 버퍼에 락을 잡는다면 먼저 처리가 되어야 하는 것이 처리가 안 되기 때문에 쌓이게 된다면 panic이 발생합니다
구조적으로 문제가 발생하지 않을 수 없는 구조라는 것이죠.. 그래서 커널이 아닌 T32를 이용해서 로그를 뽑아오는 방법도 있습니다
.
어떤 함수를 사용해 값을 반환받는다던가
내부적인 연산이 있다면 문제가 생길수도 있겠죠