O_DIRECT 플래그는 VFS의 캐시 레이어를 거치지 않게 해준다고 해서
VFS 소스를 찾아 보니 그렇게 되있더군요..
그런데 어떤 제약 사항이 있는 것 같아요...
OPEN 할때까지는 에러가 안 나는 데... READ/WRITE를 하면 에러가 나는 군요
O_DIRECT 플래그를 제거하면 프로그램은 이상없이 돌아갑니다.
이유를 아시는 분 계십니까?
하루 종일 이것에만 매달려 있다가 답답해서 써봅니다... ^^;
참고하세요.. -_-;;
http://www.ac3.edu.au/SGI_Developer/books/T_IRIX_Prog/sgi_html/ch09.html#id29205
저도 같은 문제로 고생중인데요.. 위 싸이트 접근이 안되는데.. 혹시 이 내용 갖고 계시는 분 있나요? ㅠ
Linux 에서 O_DIRECT 사용시엔 해당 memory를 kernel memory로 copy없이 바로 DMA 태워 device로 보낸다고 들었습니다. 그때문에 DMA에서 사용할 수 있게 4kbyte 단위로 align이 맞아야만 죽지 않고 동작한다고 하더군요. 4kbyte align을 맞추기 위해서는 malloc 대신 valloc 이란 API를 이용하여 memory를 받으면 된다고 합니다.
어깨너머로 듣기보단 한번이라도 진실을 직시하면 자신감이 백배.http://kerneltrap.org/node/7563
다른 곳에서 퍼진 허위정보가 확대 재생산 되기 전에 막혔으면 하는 바람에서 뒤늦게나마 댓글답니다.
OTL
매번 감사합니다 꾸벅~~
미래를 수정할 수 있는 때는 현재이다.
--------------------------------------------- svn + trac + my project --> success ??? ---------------------------------------------
--------------------------------------------- git init git add . git commit -am "project init" ---------------------------------------------
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
참고하세요.. -_-;;http://www.ac3.edu.au
참고하세요.. -_-;;
http://www.ac3.edu.au/SGI_Developer/books/T_IRIX_Prog/sgi_html/ch09.html#id29205
접근이 안되는데 혹시 이 내용 갖고 계시는 분 있나요?
저도 같은 문제로 고생중인데요..
위 싸이트 접근이 안되는데.. 혹시 이 내용 갖고 계시는 분 있나요? ㅠ
저 사이트의 내용은 모르겠습니다만...
Linux 에서 O_DIRECT 사용시엔 해당 memory를 kernel memory로 copy없이 바로 DMA 태워 device로 보낸다고 들었습니다.
그때문에 DMA에서 사용할 수 있게 4kbyte 단위로 align이 맞아야만 죽지 않고 동작한다고 하더군요.
4kbyte align을 맞추기 위해서는 malloc 대신 valloc 이란 API를 이용하여 memory를 받으면 된다고 합니다.
어깨너머로 듣기보단
어깨너머로 듣기보단 한번이라도 진실을 직시하면 자신감이 백배.
http://kerneltrap.org/node/7563
다른 곳에서 퍼진 허위정보가 확대 재생산 되기 전에 막혔으면 하는 바람에서 뒤늦게나마 댓글답니다.
OTL
매번 감사합니다 꾸벅~~
매번 감사합니다 꾸벅~~
미래를 수정할 수 있는 때는 현재이다.
좋은 내용 하나 배워가는군요
---------------------------------------------
svn + trac + my project --> success ???
---------------------------------------------
---------------------------------------------
git init
git add .
git commit -am "project init"
---------------------------------------------
댓글 달기