schedule() 함수에서 특정 태스크를 skip하려고 합니다.

gamja4747의 이미지

안녕하세요.

리눅스 커널에서 스케줄러를 약간 수정하려고 합니다.

schedule() 함수에서 특정 태스크를 skip하고 그 다음 태스크를 스케줄링 되게끔 하려고합니다. 커널 버전은 2.6.32.26 입니다.

put_prev_task(rq, prev);
next = pick_next_task(rq);

pick_next_task 에서 다음에 스케줄링 될 next를 가져와 특정한 태스크는 스킵하고 다른 태스크를 가져오고싶은데 잘 안되네요ㅠㅠ

cfs나 rt 스케줄러 둘다 공통적으로 적용되게끔 구현하려고 합니다.

아이디어좀 부탁드립니다!

gamja4747의 이미지

작성한 글이 수정이 안되네요^^;

yield()를 이용해 스킵하려고 하니 schedule()을 수행하고 있는 커널 스레드가 yield 되는거 같고 동작도 이상하게 하네요.

좋은 방법이 없을까요?