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을 교체하도 동일한 현상이 발생한다는 것...

ㅋㅋㅋ

방법이 없는건가요????