도와주세요!!
PXA270을 사용하고 있습니다.
eth0: Receiver overrun.
free_pages < need_pages
메세지를 출력하고는 네트웍이 완전 동작하지 않습니다. 다른 루틴은 동작하구요.
네트웍관련 부분만 전혀 동작하지 않습니다.
TCP통신, UDP통신, ping 도 동작하지 않구요.....
수신버퍼를 늘리면 가능한지요?
통신 속도가 그리 빠른 편은 아닌데..ㅋㅋ
100M랜 환경이고..
UDP 송신(100ms간격으로 2k byte전송)
TCP 서버, 클라이언트 각 2개씩 돌아갑니다.
송신주기는 비 정기적으로 연속될 경우는 거의 없구 한번에 100byte 정도의 데이터가 가끔(30초 ~ 2시간 간격)
정기적으로 30초마다 20byte를 연결상태 확인용으로 송,수신 하고 있습니다.
자구 현상이 발생하는 것이 아니라 2~3달 정도에 한번씩 말썽이네요...
해결 방법이 있는지요?
TCP내부 루틴에 지연이 많으면 더 많이 생길까봐.. 수신하고는 바로 메세지Q로 보내서 다른 쓰레드에서 수신 데이터는 처리하므로 수신하는 시간 외에는 TCP상에서 지연 시간은 별로 없습니다.
Message:: Active Internet connections (servers and established)
Message:: Proto Recv-Q Send-Q Local Address Foreign Address State
Message:: tcp 0 0 0.0.0.0:6031 0.0.0.0:* LISTEN
Message:: tcp 0 0 172.24.223.62:3647 172.24.223.11:5031 ESTABLISHED
Message:: tcp 0 0 172.24.223.62:6031 172.24.223.12:53467 ESTABLISHED
Message:: udp 0 0 0.0.0.0:2048 0.0.0.0:*
Message:: Active UNIX domain sockets (servers and established)
Message:: Proto RefCnt Flags Type State I-Node Path
Message:: unix 2 [ ] DGRAM 1117 /dev/log
메모리 버퍼의 상태는 정상인듯합니다.
메세지는 드라이버에서 나오는 메세지 입니다.
드라이버에서 free_pages < need_pages 메시지를 표시하고는 전혀 드라이버 에서 동작하지 않습니다.
문제가 생기면 대부분 내부 프로그램은 reset 코드를 넣으면 되는데..
드라이버는 따로 reset할수 있는 기능이 있는지요?
랜통신(tcp,udp)만 안되고 다른 GPIO는 정상동작합니다.
Socket Open & Connection Error!![EC:CONNECT] [try:1]]
try-[2/3]-[EC:INVALID_SOCKET]
이건 제가 tcp에 문제가 생기는 표시하는 메세지 인데..
드라이버 부분에서 멈춰있어서 ping도 동작하지 않고...ㅋㅋ
참으로 답답합니다.
Lan 칩 드라이버의 오류인지.. 아님 다른 문제가 있는건지..
응용프로그램 수준의 문제라면 프로그램 완전 수정하면 되겠지만..
이건... 드라이버가 멈춰있으니..
그것도 수신 단에서...
송신이 문제면 응용에서 보내는 것이 문제가 인식하겠지만...
보내는 쪽도 랜 packet 모니터링 해서.. 확인할 결과.. 별다른 특이점 없음..
중요한건..
CPU보드 PX270을 교체하도 동일한 현상이 발생한다는 것...
ㅋㅋㅋ
방법이 없는건가요????