Existe a questão a abordar e um pouco de esclarecimento para este caso específico (congestionamento).
Um módulo do kernel é uma parte do kernel que é opcional e não precisa estar presente na inicial do kernel começar nem depois, se não for necessário. É uma espécie de plug-in . Isso permite ter a maioria das funcionalidades disponíveis sob demanda, sem usar memória, se nunca usado. A maioria dos módulos pode ser compilada como módulos ou embutida. Se embutido, isso significa que você não encontrará um arquivo .ko
do módulo porque ele já está no kernel inicial.
Você pode verificar o que foi feito:
-
ou conhecendo a opção de configuração (aqui
CONFIG_TCP_CONG_CUBIC
), tendo acesso à configuração usada, geralmente como um arquivo em/boot/config-$(uname -r)
, e verificando qual opção foi usada:grep CONFIG_TCP_CONG_CUBIC /boot/config-$(uname -r)
-
ou conhecendo o nome do módulo e verificando se o módulo está na lista de módulos internos:
fgrep tcp_cubic.ko /lib/modules/$(uname -r)/modules.builtin
Exemplos de resultados prováveis para o seu caso, já que você não encontrou o módulo, mas com o cubic provavelmente o padrão provavelmente significa que foi embutido:
$ grep _CUBIC /boot/config-$(uname -r)
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_CUBIC=y
$ fgrep tcp_cubic.ko /lib/modules/$(uname -r)/modules.builtin
kernel/net/ipv4/tcp_cubic.ko
Então, isso responde à pergunta: considere que você tem o módulo sempre carregado, porque ele está embutido. Faz sentido ter o padrão embutido (geralmente é necessário).
A lista de arquivos de módulo internos que você pode encontrar em /lib/modules/$(uname -r)
e ser exibida com lsmod
, mas que não será exibida, pode ser exibida com cat /lib/modules/$(uname -r)/modules.builtin
. Eles não são especiais, mas foram escolhidos assim (por sua distribuição Linux) com freqüência, mas nem sempre, porque um padrão tinha que ser escolhido entre uma lista de opções, para ser embutido, incluindo todas as dependências do módulo relacionadas.
Agora, sobre o pequeno esclarecimento: é claro que um módulo precisa ser carregado (ou embutido) para ter sua funcionalidade disponível. Mas o Q / A ao qual você se conectou não disse que apenas teve que carregar o módulo de congestionamento tcp para ativá-lo. Citação:
To try one of these you need to install it using modprobe -a tcp_westwood or whatever you want. You can then test it using this
echo "westwood" > /proc/sys/net/ipv4/tcp_congestion_control
Como esse pseudo-arquivo é de leitura / gravação, você pode simplesmente consultá-lo para saber qual congestionamento está em uso provavelmente com esse resultado:
$ cat /proc/sys/net/ipv4/tcp_congestion_control
cubic
Agora, para alterar o algoritmo:
# lsmod | grep tcp_westwood
# echo westwood > /proc/sys/net/ipv4/tcp_congestion_control
# lsmod | grep tcp_westwood
tcp_westwood 16384 1
O módulo foi carregado automaticamente e agora está em uso (alguns sistemas podem não ser carregados automaticamente).
De qualquer forma, a informação adequada para este caso específico está em /proc/sys/net/ipv4/tcp_congestion_control
, não em lsmod
.