Pergunta

Eu escrevi virtual a entrada de drivers para Linux e um servidor que se comunica com eles através de /dev nós.Agora, um deles é um mouse virtual e é muito importante que o sinal servidor recebe fica para o driver mais breve possível para o rato para sentir suave.

Por essa razão, eu definir ionice para o processo do servidor para 1 (ainda não tem a prioridade mais importantes do linux daemons):

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

Mas eu não estou certo de que ele ainda vale a pena.Diferença, mesmo se qualquer uma, não é perceptível.É o personagem arquivos especiais em /dev/ considerada quando se trata de prioridade de e/S, apesar de que o acesso ao disco real é dado?

Foi útil?

Solução

Até onde eu sei, a camada em que OS ionice afeta é o I/O scheduler.Pelo menos até o kernel 2.6.17, cfq era o único programador, na verdade, suporte ionice e eu acredito que nada mudou, pelo menos no que diz respeito ao padrão de programadores do kernel oferece.

E/S agendadores só são usados com dispositivos de bloco, onde é possível a fila de operações ou alterar a sua ordem, atraso ou fundi-los, etc.(ver aqui por exemplo).Isso também está em linha com o fato de que você pode alterar o programador através de /sys sistema de ficheiros virtual para dispositivos de bloco único (arquivos, tais como /sys/devices/pci0000:00/0000:00:08.0/host0/target0:0:0/0:0:0:0/block/sda/queue/scheduler).O driver de mouse é um dispositivo de caractere e, como tal, ele não é influenciado pelo I/o scheduler ionice.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top