본문 바로가기

Developement/eLinux

임베디드 리눅스의 이 난감한 상황은 ...

시그윈에서 socket 과 inet 만으로 단순 socket server 를 만들었습니다.
class 로 wrapping 해서 쓰기 편하게 만들어서 돌렸더만 잘 돌기에 힘들게 porting 한 embedded linux 에 넣고 짠!

하고 잘 돌줄 알았더니, 흠 -

얘가 뭔가 뾰로퉁 하게 도네요 ..
30MB 짜리 버퍼를 보내는데 4KB 보내고 멎어 있습니다.
socket server 를 non-blocking, async 로 설계한 이유는 아닌거 같은데, FD_ISSET() 이나 ioctl() 에서 멎는 문제도 아닐텐데, 그 이유를 찾기가 어려운 난감한 상황이 아닌가 합니다.

현재 GbE 로 연결된 상태라 전체 속도의 반인 60MBytes/sec 정도가 나와 주면 좋겠는데, 설계의 문제인지 아니면 제가 porting 한 부분이 잘못 된건지를 알아 내는데 시간이 또 걸릴 듯 합니다.

혹시 이런 문제를 격은 분들이 계실까 해서, 원인과 해결 책을 찾으면 series 로 글을 이어 가 보도록 하겠습니다.

embedded Linux environment:
CPU : TI社 CortexA8 호환 계열 , 1GHz
MEM : 256MB / 128MB + 128MB DDR2 (system 은 128MB 만 사용함) 
linux kernel : 2.6.34