기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

linux kernel 2.6.20
s3c2410
nand 64MB

 


JFFS2가 마운트시 리소스를 많이 먹는다는 건 여러 문서를 통해 알고 있었습니다.

그러나 이 정도 일 줄은 몰랐습니다.

리소스를 많이 먹다 못해 리눅스 자체를 아예 1초 동안 멈춰 버리게 합니다.


처음부터 이랬던 건 아닙니다.

파일 생성 삭제를 반복하다 보니 이런 증상이 생깁니다.

대략 5M 정도의 jffs2 파티션에 4KB 정도의 TEXT 파일을 주기적으로 썼다 지웟다를 반복 하다 보면

어느 순간부터 마운트 도중 os가 멈칫 합니다. . 멈칫 하는 시간도 처음엔 짧게 멈추다가 더욱 많이 파일을 쓰고 지우면

멈칫거리는 시간이 점점 늘어납니다.

파일을 대략 100만번 썻다 지웟다를 반복하니 1.5초까지 멈추더군요. ㅡㅡ;;

 

JFFS2 마운트시 프로세스중에 pdflush가 먼저 리소스를 차지하기 시작합니다.

그러나 jffs2_gcd_mtd1 이란 프로세스가 점점 치고 들어 오다가 100% 리소스를 먹는 순간 os가 멈~칫 합니다.

그러다 리소스를 반환하기 시작하면 정상적으로 돌아옵니다.

마운트시 임의로 jffs2_gcd_mtd1을 stop 시키면 멈칫거리는 증상이 나타나질 않는 것으로 봐서

주범은 저 프로세스입니다.

그렇다고 죽여 놓으면 jffs2가 어떤 이상 증세를 보일지 모르기 때문에 죽이기도 찝찝합니다.

 

파일 생성/삭제를 여러 번 할 수록 파일이나 노드들 기타 등등이 조각나서 그런 것 일까요?

리눅스엔 파일조각모음 이란 어플은 없더군요. 원래 리눅스 파일 시스템이 조각나기 어려운 구조 라더군요.

그런데 증상을 보면 조각 났을 거란 추정 밖엔 딱히 떠오르는 게 없네요.

디스크 검사 하는 fsck도 jffs2는 지원하지 않더군요.


원래 NAND에 file write를 계속 한다는 건 잘못된 것이지만...

해결 방안이 없을까요?

조각모음 이라던지 디스크정리 라던지 이런 유틸이 있음 좋으련만...


까짓꺼 1.5초 멈추면 어떠냐 ...하실 수도 있겠지만...

부득이하게 보드에 외부 와치독이 달려 있습니다. 토글 안 시켜주면 리부팅 시켜버립니다.

딱 리부팅 되기 좋은 상황인 것이죠. ㅠㅠ


쓰다 보니 장문이 되 버렸습니다. 읽어 주셔서 감사합니다.

 


이제현

2009.12.18 07:42:07
*.120.74.180

100만번이면... 좀 많긴 많습니다.

저널링 구조상 노드 정보가 엄청 쌓여 있을것 같습니다.

YAFFS로 한번 시도해 보시는게 어떨까요? 저도 100만번 테스트는 안해봐서.. 잘은 모르겠지만요...


아니면 아래 링크를 참고하세요. NAND에 좀 더 최적화된 JFFS2 패치랍니다.

http://www.inf.u-szeged.hu/jffs2/mount.php

두병균

2009.12.18 23:08:29
*.137.13.179

댓글 감사드립니다. 좋은 정보 얻어 갑니다.

고도리

2009.12.18 11:54:34
*.59.122.199

음.....jffs2의 경우는 소스를 봐봐야 알겠지만....

 

아마도 log structured style일 가능성이 좀 보이네요. 이 경우 전체 영역에 대한 저널링 처리를 하기 때문에

write/erase 를 반복하게 되면, 엄청 느려질 가능성이 높습니다.

 

지금 문제를 보면 garbage collection 부분 처리에서 벅벅대는 듯 합니다.

 

아마도 yaffs2를 포팅하셔도 비슷한 증상이 나올거라고 보여집니다.

최후로 테스트해 볼 것은 결국은 ubifs밖에 없을 듯 하네요.

 

ubifs는 hdd와 유사한 형태로 구현거니 아마도 gc 부분이 없어서 괜찮을 듯 합니다만...kernel 2.6.27서부터 공식으로 지원합니다....쩝

두병균

2009.12.18 23:10:17
*.137.13.179

댓글 감사드립니다.

 

yaffs2도같은 증상이 나올꺼란 추측에 약간 당황스럽네요.

ubifs 환경을 하루빨리 구축해야 겠습니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
648 [질문] nfs 대몬 질문 드립니다. <= 완료 [2] 안정섭 2006-04-14 2528
647 ramdisk를 위한 lib의 작게 하는 방법 [3] 김경호 2006-04-13 3494
646 smpeg질문 [1] 박진수 2006-04-13 2774
645 이솦보드 키패드 처리 방법?[완료] [3] 김대영 2006-04-12 3257
644 GUI Tool 선정에 관하여 [2] 권형식 2006-04-12 3724
643 자료실에서... [3] 박현진 2006-04-09 3540
642 2.6.13커널 디버그출력을 터미널로?[완료] [2] 김대영 2006-04-08 3846
641 U-BOOT 포팅중 질문사항 <= 완료 [4] 장석원 2006-04-07 4026
640 메인 페이지도 오픈하셨네요... 툴체인 관련...<=완료 [5] 이홍석 2006-04-06 3738
639 현재 개발하고 계시는 cross-toolchain은 어디서?[완료] [2] 김대영 2006-04-06 3787
638 2.6.13 최신 커널 소스는 어디서?[완료] [2] 김대영 2006-04-06 3801
637 이솦보드 palette세팅중 3번째 질문(kelp에서 kozicozi님의 질문... [4] 고현철 2006-04-05 6955
636 [Alsa] dmix 사용 시 snd_pcm_avail 오류관련. 김정현 2009-12-19 609
635 고민 [8] 김상각 2009-12-18 516
634 무선랜과 블루투스 인터페이스가? [2] 현쓰 2009-12-18 530
» JFFS2 왜 이런 건가요?? [4] 두병균 2009-12-18 742
632 안드로이드 부팅로고 변경 [3] 김영일 2009-12-17 2218
631 Android WiFi 보안접속 문제(WEP,WPA등) [2] 파일럿 2009-12-17 1248
630 오드로이드 ESD 필터 질문... [1] 현쓰 2009-12-17 662
629 가속도 센서 포팅 문의 [1] 왕자 2009-12-16 507

사용자 로그인