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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top