3차보드에서 dm9000을 사용하는것 같아서 간단한 벤치마크 결과를 올립니다.
제가 DM9000을 2440에 사용해서 예전에 벤치 마크를 해보았습니다.
벤치마크 프로그램은 netperf라는 프로그램을 사용했습니다.
커널 2.4.20에서 1024바이트 짜리 패킷을 전송하면 17MBPS가 나옵니다.
커널 2.6.13에서는 29.53이 나왔습니다.(512일때 22.23, 128일때 5.72)
(패킷사이즈를 작게하면 더더욱 속도 안나고 더 크게 늘리면 속도가 더 나올거라고 생각됩니다.)
첨에는 커널의 차이라고 생각했는데, 디바이스 드라이버의 구현의 차이로 속도차이가 났습니다. 받은 패킷을 커널에 전달하는 방법이 2.4에서 부하가 많이 걸리는 방법이었씁니다.
2.4용)
int tmplen,i;
tmplen = (count + 3) / 4;
for (i = 0; i< tmplen; i++)
writel(((u32 *)data)[i], reg);
2.6용)
writesl(reg, data, (count+3) >> 2);
제 가정이 맞는지 확인하기 위해서 2.6용 드라이버를 2.4처럼 바꿔서 했더니
14.81MBPS가 나왔습니다.
고로 결론은 dm9000의 버퍼에 있는것을 커널에 어떻게 전달하냐에 따라 드라이버의 성능을 좌우하게 되네요 2006/07/03
보통 버퍼 운용이 주로 ethernet driver작성에서의 문제점이죠...^^
그리고, 요번 3차에 적용이 되는 것은 dm9000a입니다. 같은 줄 알앗는데, 좀 틀리다고 하네요.
아직 담당 엔지니어랑은 얘기를 안해봤는데 dm9000보다는 성능이 낫다고 합니다.
일단 보드 살리게 되면 저도 테스트 함 해봐야겠습니다.
제일 매력적인게 실은 가격이라....ㅎㅎ