readahead 종료 시점을 알고 싶어요..
글쓴이: netropy / 작성시간: 월, 2005/05/23 - 10:25오후
저는 커널 2.4.x 버전에서
하드 디스크 컨트롤을 하고 있는 데요..
하드가 언제 돌아 가고 언제 쉬는 지를 보려고 합니다.
근데 read 명령이 들어 오면요,
read 를 하려는 page 도 읽지만
readahead 로 좀 더 읽더라고요,
read 를 하려는 page 가 모두 준비 되어 user_end 로 복사되고
나면, readahead ( sync readahead, async readahead ) 는
계속 로딩을 하고 있는지 아니면 page 를 read 하는 사이 사이
해결하고 더는 IO 작업을 하지 않는지 조차 모르겠더라구요.
제가 하고 싶은 건 read 하면 원하는 page 가 읽어 지고
readahead 까지 모두 끝난 시점을 찾아서 특정한 일을 하는거예요
정확히 말해서 IO 가 일어 나는 사이 사이 무조건 하드를 standby 시키는 거죠. ( 이름 하여 어그래시브 스탠바이 -_- )
그래서 readahead 랑 read 가 모두 끝난 시점이 궁금합니다.
아시는 분, 도움 부탁합니다.
Forums:
Re: readahead 종료 시점을 알고 싶어요..
커널 2.6.X 에서 readahead를 분석했었는데요...
read() system call이 발생하면, VFS에서는
원하는 page를 read하고, 경우에 따라서
readahead를 좀 하기도 하는데요....
read 해야 하는 page와 readahead 할 page 들 모두
IO request를 만들어서 I/O scheduler 로 보내는 것으로
알고 있습니다.
그러므로 I/O가 일어나는 사이사이 standby를 하실려면
I/O scheduler 쪽을 보시는게 낫지 않을까 합니다만...
저는 readahead 로직이 중요해서, readahead 하는 데이터도
I/O scheduler로 보내는구나.....정도만 이해하고 끝내서
더 이상은 잘.....ㅡ.ㅡ;;;;;;
댓글 달기