2014-09-29 3 views
-2

"dev_queue_xmit"으로 sk_buff를 보내고 싶습니다. 2 패킷 만 보내면 네트워크 카드가 멈추는 경우가 있습니다.
이 상태를 디버깅하는 방법을 알고 싶습니다. "eth2 : tx hang 1이 (가) 대기열 11에서 감지되고 어댑터를 재설정하는 중"상태를 디버깅하는 방법?

은/var/로그/메시지

은 다음과 같습니다

[[email protected] test]# tail -f /var/log/messages 
Sep 29 10:38:22 10g-host2 acpid: waiting for events: event logging is off 
Sep 29 10:38:23 10g-host2 acpid: client connected from 2018[68:68] 
Sep 29 10:38:23 10g-host2 acpid: 1 client rule loaded 
Sep 29 10:38:24 10g-host2 automount[2210]: lookup_read_master: lookup(nisplus): couldn't locate nis+ table auto.master 
Sep 29 10:38:24 10g-host2 mcelog: failed to prefill DIMM database from DMI data 
Sep 29 10:38:24 10g-host2 xinetd[2246]: xinetd Version 2.3.14 started with libwrap loadavg labeled-networking options compiled in. 
Sep 29 10:38:24 10g-host2 xinetd[2246]: Started working: 0 available services 
Sep 29 10:38:25 10g-host2 abrtd: Init complete, entering main loop 
Sep 29 10:39:41 10g-host2 kernel: vmalloc mmap_buf=ffffc90016e29000 mmap_size=4096 
Sep 29 10:39:41 10g-host2 kernel: insmod module wsmmap successfully! 
Sep 29 10:39:49 10g-host2 kernel: mmap_buf + 1024 is ffffc90016e29400 
Sep 29 10:39:49 10g-host2 kernel: data ffffc90016e2942a, len is 42 
Sep 29 10:39:49 10g-host2 kernel: udp data ffffc90016e29422 
Sep 29 10:39:49 10g-host2 kernel: ip data ffffc90016e2940e 
Sep 29 10:39:49 10g-host2 kernel: eth data ffffc90016e29400 
Sep 29 10:39:49 10g-host2 kernel: h_source is ffffc90016e29406, dev_addr is ffff880c235c4750, len is 6result is 0 
Sep 29 10:39:50 10g-host2 kernel: mmap_buf + 1024 is ffffc90016e29400 
Sep 29 10:39:50 10g-host2 kernel: data ffffc90016e2942a, len is 42 
Sep 29 10:39:50 10g-host2 kernel: udp data ffffc90016e29422 
Sep 29 10:39:50 10g-host2 kernel: ip data ffffc90016e2940e 
Sep 29 10:39:50 10g-host2 kernel: eth data ffffc90016e29400 
Sep 29 10:39:50 10g-host2 kernel: h_source is ffffc90016e29406, dev_addr is ffff880c235c4750, len is 6result is 0 
Sep 29 10:39:52 10g-host2 kernel: ixgbe 0000:03:00.0: eth2: Detected Tx Unit Hang 
Sep 29 10:39:52 10g-host2 kernel: Tx Queue    <11> 
Sep 29 10:39:52 10g-host2 kernel: TDH, TDT    <0>, <5> 
Sep 29 10:39:52 10g-host2 kernel: next_to_use   <5> 
Sep 29 10:39:52 10g-host2 kernel: next_to_clean  <0> 
Sep 29 10:39:52 10g-host2 kernel: ixgbe 0000:03:00.0: eth2: tx_buffer_info[next_to_clean] 
Sep 29 10:39:52 10g-host2 kernel: time_stamp   <fffd3dd8> 
Sep 29 10:39:52 10g-host2 kernel: jiffies    <fffd497f> 
Sep 29 10:39:52 10g-host2 kernel: ixgbe 0000:03:00.0: eth2: tx hang 1 detected on queue 11, resetting adapter 
Sep 29 10:39:52 10g-host2 kernel: ixgbe 0000:03:00.0: eth2: Reset adapter 
Sep 29 10:39:52 10g-host2 kernel: ixgbe 0000:03:00.0: master disable timed out 
Sep 29 10:39:53 10g-host2 kernel: ixgbe 0000:03:00.0: eth2: detected SFP+: 5 
Sep 29 10:39:54 10g-host2 kernel: ixgbe 0000:03:00.0: eth2: NIC Link is Up 10 Gbps, Flow Control: RX/TX 

내 컴퓨터의 일부 정보는 다음과 같습니다

ethtool -i eth2 
driver: ixgbe 
version: 3.21.2 
firmware-version: 0x1bab0001 
bus-info: 0000:03:00.0 
supports-statistics: yes 
supports-test: yes 
supports-eeprom-access: yes 
supports-register-dump: yes 
supports-priv-flags: no 


LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch 
Distributor ID: CentOS 
Description: CentOS release 6.5 (Final) 
Release: 6.5 
Codename: Final 

커널 버전은 다음과 같습니다 2.6.32-431.el6.x86_64

도와 주셔서 감사합니다.

답변

0

나는 skb-> data에 대한 메모리를 할당하는 vmalloc()을 사용하므로 NIC가 다운됩니다. 나는 kmalloc()을 사용하여 그것을 수정했다.