2012-03-13 4 views
1

저는 리눅스 용 가상 입력 드라이버와/dev 노드를 통해 그들과 통신하는 서버를 작성했습니다. 이제는 그 중 하나가 가상 마우스이며 신호 서버가받는 것이 마우스를 부드럽게 느끼기 위해 가능한 한 빨리 드라이버에 도달하는 것이 중요합니다. 나는 1 서버 프로세스은 ionice을 설정하는 이유 리눅스는/dev/nodes에 영향을 줍니까?

는 (여전히 중요 리눅스 데몬을 통해 우선 순위를 얻을 수 없습니다) :

if (ioprio_set(IOPRIO_WHO_PROCESS,getpid(), 1 | IOPRIO_CLASS_RT << IOPRIO_CLASS_SHIFT) == -1) { 
     logger->error("ioprio_set() error",errno); 
    } 

하지만 그것도 가치가 있는지 확실하지 않다. 어떤 차이가 있더라도 그 차이는 눈에 띄지 않습니다. 실제 디스크에 액세스 할 수 없더라도 I/O 우선 순위와 관련하여/dev /에있는 문자 특수 파일이 고려됩니까?

답변

1

내가 아는 한 OS의 ionice에 영향을주는 레이어는 I/O 스케줄러입니다. 적어도 커널 2.6.17까지는 cfq이 실제로 ionice을 지원하는 유일한 스케줄러였습니다. 적어도 커널이 제공하는 기본 스케줄러와 관련해서는 아무것도 변하지 않았다고 생각합니다.

I/O 스케줄러는 작업을 큐에 넣거나 명령을 변경하고 지연 또는 병합하는 등 블록 장치와 함께 사용됩니다 (예 : here 참조). 또한 블록 장치 (/sys/devices/pci0000:00/0000:00:08.0/host0/target0:0:0/0:0:0:0/block/sda/queue/scheduler과 같은 파일)에 대해서만 /sys 가상 파일 시스템을 통해 스케줄러를 변경할 수 있다는 사실에 부합합니다. 마우스 드라이버는 문자 장치이므로 I/O 스케줄러 또는 ionice의 영향을받지 않습니다.

+0

굉장하고 고마워요. 이전에 '블록 장치'에 관한 부분을 놓쳤습니다. – user1267150

관련 문제