Procurando por uma lista de módulos que são usados durante a seqüência de inicialização

1

Gostaria de usar chamadas de inicialização adiadas . Esta função permite carregar módulos no userland, que devem ser carregados durante a seqüência de inicialização.

Apenas para testar, gostaria de modularizar o maior número possível de entradas da inicialização. Para aplicar este método, o module_init() nesses módulos deve ser renomeado para deferred_module_init() , fácil até agora.

Agora, minha pergunta é: onde posso encontrar todos esses arquivos com module_init() ? Porque eu já escrevi um script bash, que substitui esta string com o defered_module_init em todo o código fonte do kernel - infelizmente ele cobre algumas outras funções também, o que tornou impossível compilar o kernel depois.

Existe um diretório ou uma lista com os módulos que devem ser usados durante a inicialização?

Descobri que passar initcall_debug para a linha de comando do kernel gera uma lista com os módulos, que então podem ser visualizados com este comando, que me informa o nome do módulo

dmesg -s 128000 | grep "initcall" | sed "s/\(.*\)after\(.*\)/ /g" | sort -n

Mas parece que estes nomes estão espalhados por toda a fonte do kernel: /. Existe uma maneira fácil de capturar todas essas entradas, para que eu possa aplicar meu script bash para substituir essa seqüência específica?

Fazer isso a pé parece um trabalho que pode durar uma eternidade.

Aqui está um exemplo de saída:

286 usecs [    0.910000] initcall arc4_init+0x0/0x1c returned 0   
287 usecs [    0.910000] initcall aes_init+0x0/0x1c returned 0   
288 usecs [    0.900000] initcall crypto_wq_init+0x0/0x4c returned 0
    
por user3085931 07.03.2014 / 09:35

0 respostas