O_SYNC 관련
글쓴이: minzkn / 작성시간: 화, 2003/08/12 - 6:22오후
* 상황 *
- CPU: Geode (중요!)
- IDE : Compact flash (Toshiba)
- Cache : cr3 의 PWT bit를 0으로 설정.
- Linux kernel 2.4.20-xxx
* 코드 *
Handle = open("Test.log", O_CREAT | O_SYNC | O_WRONLY, 0755); if(Handle >= 0) { /* 약 500MByte write 하는 코드 */ close(s_Handle); }
* 증상 및 의심가는 부분 *
증상으로는 첫번째 write하는 block이 read해보니 write했던 Data가 아닌 경우가 발생. (항상 발생하는 것은 아니며 간혹 발생)
의심가는 부분으로는 간혹 발생한다는 점을 감안하여 Cache관련 부분과
O_SYNC|O_CREAT 와의 관계가 좀 있는듯 한데 도저히 커널의
버그라고 하기에는 어처구니가 없어서 글 남깁니다.
이에 대하여 혹시 경험하신분이나 관련 E-Mail list가 있다면 댓글 달아주시면
무지 감사드립니다.
참고로 저와 비슷한 경우를 겪어보신분의 글을 찾아냈더니 다음과 같군요.
http://www.cs.helsinki.fi/linux/linux-kernel/2003-11/1735.html
Forums:
댓글 달기