Linux IOnice influisce sui nodi /dev/?
Domanda
Ho scritto driver di input virtuali per Linux e un server che comunica con loro tramite nodi /dev.Ora, uno di questi è un mouse virtuale ed è molto importante che ciò che riceve il server del segnale arrivi al driver il prima possibile affinché il mouse funzioni perfettamente.
Per questo motivo ho impostato ionice per il processo del server su 1 (ancora per non avere la priorità su importanti demoni Linux):
if (ioprio_set(IOPRIO_WHO_PROCESS,getpid(), 1 | IOPRIO_CLASS_RT << IOPRIO_CLASS_SHIFT) == -1) {
logger->error("ioprio_set() error",errno);
}
Ma non sono nemmeno sicuro che ne valga la pena.La differenza, anche se esiste, non è evidente.I file speciali dei caratteri in /dev/ vengono presi in considerazione quando si tratta della priorità I/O, nonostante non venga concesso l'accesso al disco effettivo?
Soluzione
Per quanto ne so, il livello nel sistema operativo that ionice
influenza è lo scheduler I/O.Almeno fino al kernel 2.6.17, cfq
era l'unico scheduler a supportare effettivamente ionice
e credo che non sia cambiato nulla, almeno per quanto riguarda gli scheduler predefiniti forniti dal kernel.
Gli scheduler I/O vengono utilizzati solo con dispositivi a blocchi, dove è possibile accodare le operazioni o modificarne l'ordine, ritardarle o unirle ecc.(Vedere Qui Per esempio).Ciò è anche in linea con il fatto che è possibile modificare lo scheduler tramite /sys
filesystem virtuale solo per dispositivi a blocchi (file come /sys/devices/pci0000:00/0000:00:08.0/host0/target0:0:0/0:0:0:0/block/sda/queue/scheduler
).Il driver del mouse è un dispositivo a caratteri e come tale non è affatto influenzato dallo scheduler I/O o ionice
.