Fornecerei uma resposta parcial com pistas sobre como e onde acredito que você pode encontrar uma resposta concreta específica para seu sistema.
A função está strongmente ligada à versão NDIS
do sistema operacional.
Uma referência antecipada é o parâmetro ProcessorAffinityMask da chave HKLM\SYSTEM\CurrentControlSet\Services\NDIS\Parameters
. Ele define quais processadores devem ser disponibilizados para manutenção das interrupções do driver do adaptador de rede no Windows 2000.
O subsistema Receive Side Scaling
evoluiu em versões posteriores para mapear filas de processamento de rede para os processadores disponíveis, descritos aqui para o Windows 2008.
Aqui está a documentação para RSS
no Windows 2012 R2 (NDIS 6.40 eu acredito) e uma pista é dada na frase inicial:
To process received data efficiently, a miniport driver's receive interrupt service function schedules a deferred procedure call (DPC). Without RSS, a typical DPC indicates all received data within the DPC call. Therefore, all of the receive processing that is associated with the interrupt runs on the CPU where the receive interrupt occurs.
No final de este link é um link para o material de referência para todas as versões 6.x NDIS
. Acredito que você possa usar essas referências para elaborar uma resposta para seu sistema específico e identificar termos precisos para as ambiguidades do Google.
Apenas com base nas informações fornecidas pela pergunta (que não são muito detalhadas), o que eu vejo nos documentos?
O primeiro processador no conjunto de processadores a ser disponibilizado para RSS
é definido usando o parâmetro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NDIS\Parameters\RssBaseCpu
no Windows 2008, conforme descrito aqui . Espero que isso seja válido também para o Windows 2012 R2.
Da mesma forma, o número máximo de processadores a serem disponibilizados para RSS
é definido usando o HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ndis\Parameters\MaxNumRssCpus
conforme descrito aqui .
Devido a isso, no Win2008 e também no Win2012, definir RssBaseCpu
para 1 e MaxNumRssCpus
para 1 deve bloquear RSS
processamento para a segunda CPU lógica e nenhum outro, assumindo que RSS
foi ativado com sucesso. RSS
status pode ser verificado a partir do Windows por meio de um prompt de comando administrativo assim:
netsh int tcp show global
conforme documentado aqui .
Dado este contexto, é bem possível que o seu problema seja simplesmente devido a um driver de dispositivo NIC mal escrito também. Eu tive um pouco de dificuldade com os mecanismos de descarregamento da NIC (a categoria geral da qual o RSS pertence), especificamente com as NICs Broadcom integradas nos servidores da Dell e nos drivers associados. Gostaria de encorajá-lo a também buscar essa possibilidade se o sistema não agir como seria de esperar, baseado na configuração quadruplicada.