O problema é como se afirma. Linha 261 de net/sched/sch_generic.c
, que é uma rotina genérica do agendador de pacotes.
O próprio pânico está aqui
Dec 21 19:47:45 localhost kernel: [<ffffffff8144a54d>] ? dev_watchdog+0x26d/0x280
Assim, o dispositivo de rede atingiu o tempo limite. Como o código-fonte diz, algumas filas foram bloqueadas e o timer expirou. Era suposto que segurasse o dispositivo durante certo tempo particular mas o contador terminou. Aqui está a parte relevante do código.
if (!mod_timer(&dev->watchdog_timer,
258 round_jiffies(jiffies +
259 dev->watchdog_timeo)))
260 dev_hold(dev);
Você vê que há um temporizador de watchdog e o contador é medido em intervalos. Quando este temporizador acabou, ele lança um aviso.
Isso tem algo a ver com a sua placa de rede ou driver. Eu vou imediatamente rejeitar a teoria do bug do kernel, a menos que eles possam provar isso. E não há como avisar, a menos que alguém tenha informado o rastreamento de chamada exato ou a Intel saiba sobre esse rastreamento e isso acontece no mesmo hardware, mesmo driver, mesmo firmware. Em poucas palavras, sem verificar o dump do kernel ou vmcore, nenhuma pessoa experiente dirá que isso é um bug do kernel. A parte do kernel que lida com o timer, é cuidadosamente elaborada e o e1000 não é um driver obscuro para se lidar.
Eu não quero dissecar seus servidores, mas esta é a minha opinião. Vale a pena conferir suas saídas ethtool -S ethX
para ver se há alguma queda, excesso, timeouts, etc.