If the utilization of one of the CPU in the quad-core system happens to be 100%, and it is being fixed to the interrupt to the NIC interrupt. Will the kernel schedule another CPU that is not very busy to handle the NIC interrupt in its place?
Normalmente, não. A interrupção tem prioridade de qualquer maneira, então não há necessidade de mover a interrupção da NIC.
The packet loss got resolved after adding more CPU for the system, is this because the more CPUs the system have, the smaller probability the utilization of the CPU occupied by the NIC interrupt goes up to 100%?
Não. Por que isso importaria? A interrupção, como o próprio nome indica, interrompe a CPU e faz com que ela atenda a interrupção.
Does adding more CPUs to the system result in less context switch and therefore less system overhead?
Poderia, mas é improvável que isso faça alguma diferença. Mais CPUs só irão reduzir switches de contexto não forçados (aqueles que o sistema decide tomar, mesmo que não seja necessário) e ninguém projeta um sistema tão mal que os switches de contexto não-efetivos tenham um impacto significativo no desempenho.
Especulando apenas pelo que você disse, eu suspeitava que sob algumas condições em que o sistema estava sob alta carga, os pacotes foram perdidos porque a placa de rede não era serviços com rapidez suficiente. Provavelmente, isso não ocorre porque a interrupção não está sendo atendida com rapidez suficiente, mas o outro trabalho associado ao tráfego de rede não está sendo completamente rápido o suficiente para acompanhar a taxa de pacote. Isso inclui, por exemplo, todas as operações exigidas pelo protocolo TCP. Se isso fizer o backup, os pacotes serão descartados em algum lugar.