[질문]O_DIRECT 옵션에 대해
글쓴이: spcmanhaha / 작성시간: 화, 2011/08/02 - 10:07오전
Direct IO 즉 O_DIRECT 옵션을 주고 write를 수행할 때
커널의 Page Cache를 거치지 않고 Device로 직접 Data를 write하는 것으로 알고 있습니다.
Device(Disk나 Flash 메모리)내부에도 Cache와 같은 영역이 있는 것으로 알고 있는데.. Direct IO옵션이 정한 write는 Device 내부의 Cache까지 write하는 것인지..
아님 Device에 완전히 Write되는 것 까지인지가 궁급합니다.
또한 Ext4 파일 시스템에서 Direct IO 옵션으로 write할 경우 JBD2 계층과 관련된 부분은 get_block를 호출할 때만 그런것인지도 궁급합니다.
현재 3.0 커널을 보며 공부하고 있느데 커널 소스 상으로는 ext4_get_block_write부분에서만 적용되는 듯 해서 문의드립니다.
고수님들의 답변 부탁드리겠습니다.
Forums:
잘 모르지만
디스크 device 내부 cache 는 안 건드리는 걸로 압니다... fsync 가 디스크 캐시에 영향을 준다는 것 같은데 잘은 모르겠네요
-----
안녕하세요 소프트웨어 공학센터 장원석 책임입니다.
http://www.software.kr
댓글 달기