Como desativar o blk-mq para o NVMe e usar o CFQ, prazo final, noop?

0

Para fins de teste, gostaria de usar CFQ , deadline e noop para uma unidade NVMe. Isso é possível?

Eu posso usar o blk-mq para SSDs SATA adicionando "scsi_mod.use_blk_mq=1" ao arranque do grub (consulte: Como habilitar e usar o agendador de BFQ? ).

Mas ainda não encontramos uma maneira de fazer o inverso das unidades NVMe para permitir que elas usem os planejadores non blk-mq.

    
por Jared Gillespie 25.02.2018 / 00:49

1 resposta

1

/ dev / sda < - dispositivo SCSI
/ dev / nvme0n1 < - dispositivo NVMe

O driver NVMe suporta blk-mq desde a versão do kernel 3.19. Ele não permite desligar o blk-mq usando um parâmetro insmod ou uma opção de inicialização do kernel no grub.

$ modinfo -p nvme
use_threaded_interrupts: (int)
use_cmb_sqes:use controller's memory buffer for I/O SQes (bool)
max_host_mem_size_mb:Maximum Host Memory Buffer (HMB) size per controller (in MiB) (uint)
sgl_threshold:Use SGLs when average request segment size is larger or equal to this size. Use 0 to disable SGLs. (uint)
io_queue_depth:set io queue depth, should >= 2

Você pode fazer o download do antigo driver nvme e recompilar o módulo do kernel do link se quiser desabilitar blk-mq. No entanto, isso não permite o uso de, e. CFQ. A alteração relevante em 3.19 explica que o driver NVMe anteriormente "[implementou] a lógica da fila dentro de si", não utilizou a camada de bloco de fila única. Há outros exemplos de tais dispositivos de bloco, por exemplo, Linux mdraid devices.

As fontes a seguir estavam corretas na época, elas incluem algumas notas e links úteis. No entanto, eles estão desatualizados, já que foram escritos antes da introdução dos planejadores de I / O blk-mq, incluindo o BFQ (o BFQ foi aceito como parte do Linux 4.12).

link

Diagrama de armazenamento do Linux link .
link

    
por 05.03.2018 / 04:49