Патч для сетевой материнской платы X9SCM / X9SCL

Дата публикации: 22.05.2015
Автор статьи:
Источник: (Оригинал: Перейти)

При использовании материнских плат Supermicro X9SCM и X9SCL с операционными системами CentOS 6 может возникнуть ошибка сетевой карты при высокой загруженности интерфейса, в результате которой отваливается Интернет. Обновление драйвера и BIOS’a материнской платы ситуацию не меняет. В результате поисков в сети Интернет, нами было найдено решение данной проблемы.

Ошибка выглядит следующим образом:

Oct 19 18:32:49 zeus kernel: ------------[ cut here ]------------
Oct 19 18:32:49 zeus kernel: WARNING: at net/sched/sch_generic.c:267 dev_watchdog+0x26d/0x280 () (Not tainted)
Oct 19 18:32:49 zeus kernel: Hardware name: X9SCL/X9SCM
Oct 19 18:32:49 zeus kernel: NETDEV WATCHDOG: eth1 (e1000e): transmit queue 0 timed out 
Oct 19 18:32:49 zeus kernel: Modules linked in: vzethdev vznetdev pio_nfs pio_direct pfmt_raw pfmt_ploop1 ploop simfs vzrst nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 vzcpt nfs lockd fscache nfs_acl auth_rpcgss sunrpc nf_conntrack vzdquota vzmon vzdev ip6t_REJECT ip6table_mangle ip6table_filter ip6_tables xt_length vhost_net xt_hl xt_tcpmss macvtap xt_TCPMSS macvlan iptable_mangle iptable_filter xt_multiport xt_limit tun xt_dscp ipt_REJECT ip_tables kvm_intel kvm vzevent ib_iser rdma_cm ib_cm iw_cm ib_sa ib_mad ib_core ib_addr ipv6 iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi fuse snd_pcsp snd_pcm snd_timer video i2c_i801 tpm_tis tpm tpm_bios serio_raw i2c_core snd shpchp output soundcore snd_page_alloc ext3 jbd mbcache ahci e1000e [last unloaded: scsi_wait_scan]
Oct 19 18:32:49 zeus kernel: Pid: 4, comm: ksoftirqd/0 veid: 0 Not tainted 2.6.32-15-pve #1
Oct 19 18:32:49 zeus kernel: Call Trace:
Oct 19 18:32:49 zeus kernel: <IRQ> [<ffffffff8106c608>]? warn_slowpath_common+0x88/0xc0
Oct 19 18:32:49 zeus kernel: [<ffffffff8106c6f6>]? warn_slowpath_fmt+0x46/0x50
Oct 19 18:32:49 zeus kernel: [<ffffffff8147c6fd>]? dev_watchdog+0x26d/0x280
Oct 19 18:32:49 zeus kernel: [<ffffffff8107fcac>]? run_timer_softirq+0x1bc/0x380
Oct 19 18:32:49 zeus kernel: [<ffffffff8147c490>]? dev_watchdog+0x0/0x280
Oct 19 18:32:49 zeus kernel: [<ffffffff81075413>]? __do_softirq+0x103/0x260
Oct 19 18:32:49 zeus kernel: [<ffffffff8100c30c>]? call_softirq+0x1c/0x30

 

Для решения данной проблемы смотрим на eeprom-dump Вашего интерфейса (-ов).

~]# ethtool -e eth0

 Offset          Values
 ------          ------
 0x0000          00 1b 21 51 39 8c 20 0d 46 f7 a1 10 ff ff ff ff 
 0x0010          29 e6 02 64 6b 02 00 00 86 80 0c 15 ff ff 58 9c

 

Если во второй строке мы видим предпоследний бит, значение которого равно 58, то для проблемных интерфейсов применяем следующий патч:

#!/bin/bash

if [ -z «$1» ]; then
echo «Usage: $0 \<interface\>„
echo „     i.e. $0 eth0“
exit 1 
fi 

if! ifconfig $1 > /dev/null; then
exit 1 
fi 

bdf=$ (ethtool -i $1 | grep „bus-info:“ | awk '{print $2}')
dev=$ (lspci -s $bdf -x | grep „00: 86 80“ | awk '{print „0x“$5$4$3$2}')

case $dev in 
0x10d38086)
echo „$1: is a \“82574L Gigabit Network Connection\“
;;
0x10f68086)
echo „$1: is a \“82574L Gigabit Network Connection\»
;;   
0x150c8086)
echo «$1: is a \“82583V Gigabit Network Connection\»
;;
*)
echo «No appropriate hardware found for this fixup»
exit 1 
;;
esac

echo «This fixup is applicable to your hardware»

var=$ (ethtool -e $1 | grep 0x0010 | awk '{print $16}')
new=$ (echo ${var:0:1}`echo ${var:1} | tr '014589bc' '2367abef'`)

if [ ${var:0:1}${var:1} == $new ]; then
echo «Your eeprom is up to date, no changes were made»
exit 2 
fi 

echo «executing command: ethtool -E $1 magic $dev offset 0x1e value 0x$new»
ethtool -E $1 magic $dev offset 0x1e value 0x$new

echo «Change made. You *MUST* reboot your machine before changes take effect!»

 

Скачать можно по ссылке:

http://sourceforge.net/projects/e1000/files/e1000e%20stable/eeprom_fix_82574_or_82583/

 

Вторым шагом в grub.conf (или menu.lst) прописываем значение:

pcie_aspm=off

Перезагружаем машину. И дальше наблюдаем за стабильной работой системы.

 

Источник: www.djlab.com

Copyright © 2006—2011 "Портал RusCentOS"
Хостинг нашего сайта в ООО "КосмоХост" (на HostCMS v. 4.0)

Ссылки на сайты партнеров