percorre todos os discos ou obtém hd_struct pelo nome do dispositivo no módulo do kernel

1

Estou escrevendo um módulo do kernel (no linux 2.6.32), para obter o disk_stats de todos os discos (não da partição) em uso. Em outras palavras, estou obtendo os dados da mesma forma que /sys/block/sda/stat mostra, mas no módulo do kernel.

(OBSERVAÇÃO: Por "não particionar", quero dizer que apenas manipulamos sda e ignoramos sda1/sda2/etc , por exemplo).

Existe algo como for_each_netdev ou for_each_possible_cpu para o dispositivo de bloco? Porque pode haver vários discos e preciso de uma maneira de percorrê-los. Ou, o mais tardar, como posso obter a estrutura de dados relacionada com o nome do dispositivo de bloco (como sda )?

Eu sei que podemos obter um disk_stats de um disco do hd_struct do disco, mas como eu poderia obter esse hd_struct ?

Eu li linux2.6.32 / block / genhd.c, e eu sei que o conteúdo do arquivo /sys/block/sda/stat é gerado por diskstats_show . Mas como vem o segundo argumento?

Por favor me ajude. obrigado.

    
por xianyu1337 19.05.2014 / 10:47

0 respostas