kernel의 memcpy와 glibc의 memcpy ??
cpu ; arm9
cross compiler/glibc : scratchbox내 gcc-2005q3 / gcc-2005q3-glibc-2.3.5
테스트 항목 ; memcpy()
-----------------------------
커널 테스트 : proc을 이용해서 write시 memcpy가 수행 되도록 했습니다.
application 테스트 : static으로 컴파일된 app를 실행함
- 커널과 app에서 동작하는 memcpy테스트 루틴은 동일합니다
가정 : 커널 memcpy.S를 변경해서 2000 ms 나오던 것을 1000 ms으로 줄였다.
실험1)
커널에서 컴파일된 memcpy.o 파일을 glibc내 libc.a 에 추가해서 static으로 컴파일해서
application을 테스트한 결과 변경 전과 별다른 점을 찾지 못했습니다.
(변경전 2000ms -> 변경후 2000ms 변화없음)
실험2)
커널과 어플 사이에서 동작이 달라서 속도가 변화가 없는 것인가? 하는 생각에
원본 libc.a에 있는 memcpy.o를 커널에 넣어 봤습니다.
수행 결과, 커널 수행 속도가 application에서 수행할 때와
같은 속도가 나왔습니다 (2000ms).
질문 1)
실험2 결과처럼 application에서 동작하던 memcpy.o를 커널에 넣었을 때는
커널과 app가 동일한 속도가 나왔는데, 커널에서 동작하는 memcpy.o를 applicaiton에
넣었을 때에는 왜 아무런 속도 변화가 없는 것 일까요?
※ 질문이 이상하거나 이해가 안 가시는 부분은 리플 부탁드려요 ^^;
댓글 달기