Hi, Developers:
I'm testing a litter modified ixgbe driver, version 2.3.10, for FreeBSD.
When I run the test for a while, I found the Rx stall, the detail is:
1 the NIC type is 82599, chipset id is 0x10fb8086.
2 the Rx tail and head register never change, and the rx queues are
empty, see detail of the the output of "sysctl dev.ix"
3 ther interrupt still be generated. So I use a variable ixgbe_reg_eicr
to store the EICR's value in interrupt handler, and find
the EICR's value is 0x20000(packet buffer overrun), see detail of the
"kgdb output".
4 the rx rings's rx_base and rx_buffers is correct, see detail of the
"kgdb output"
So I check the 82599 datasheet for the 0x20000, it says that:
Filed: Rx Miss
Bits: 17
Init value: 0b
Desc: Missed packet interrupt is activated for each received packet
that overflows the Rx packet buffer (overrun). Note that the packet is
dropped and also increments the associated RXMPC[n] counter.
But I'm not completely understand the "overflows the Rx packet buffer",
my question is
Does it means NIC got a packet that its size is larger than 1514( the
length value in the descripter)? or something else ?
Appreciate anyone's reply.
================================
FB# sysctl dev.ix.1 | grep rx
dev.ix.1.rx_processing_limit: 1024
dev.ix.1.queue0.rxd_head: 1191
dev.ix.1.queue0.rxd_tail: 1191
dev.ix.1.queue1.rxd_head: 3560
dev.ix.1.queue1.rxd_tail: 3559
dev.ix.1.queue2.rxd_head: 348
dev.ix.1.queue2.rxd_tail: 347
dev.ix.1.queue3.rxd_head: 2948
dev.ix.1.queue3.rxd_tail: 2947
dev.ix.1.queue4.rxd_head: 15
dev.ix.1.queue4.rxd_tail: 14
dev.ix.1.queue5.rxd_head: 2959
dev.ix.1.queue5.rxd_tail: 2958
dev.ix.1.queue6.rxd_head: 3312
dev.ix.1.queue6.rxd_tail: 3311
dev.ix.1.queue7.rxd_head: 1539
dev.ix.1.queue7.rxd_tail: 1538
dev.ix.1.queue8.rxd_head: 1312
dev.ix.1.queue8.rxd_tail: 1311
dev.ix.1.queue9.rxd_head: 1390
dev.ix.1.queue9.rxd_tail: 1389
dev.ix.1.queue10.rxd_head: 2872
dev.ix.1.queue10.rxd_tail: 2871
dev.ix.1.queue11.rxd_head: 1048
dev.ix.1.queue11.rxd_tail: 1047
dev.ix.1.mac_stats.rx_frames_64: 71316
dev.ix.1.mac_stats.rx_frames_65_127: 21691
dev.ix.1.mac_stats.rx_frames_128_255: 13702
dev.ix.1.mac_stats.rx_frames_256_511: 37987
dev.ix.1.mac_stats.rx_frames_512_1023: 87305
dev.ix.1.mac_stats.rx_frames_1024_1522: 8582390
===========================
kgdb) p/x ixgbe_reg_eicr
$25 = 0x20000
(kgdb)
$39 = 0x0
(kgdb)
$40 = 0x20000
(kgdb)
$41 = 0x20000
(kgdb)
$42 = 0x20000
(kgdb) p ((struct ixgbe_adapter*)0xffffff002c789000)->rx_rings[1]
$58 = {
me = 1,
rx_base = 0xfffffffe59c8b000,
mtx_name = "ix1:rx(1)\000\000\000\000\000\000",
rx_buffers = 0xfffffffb84994000,
next_to_refresh = 3559,
next_to_check = 3560,
}
(kgdb) p ((struct
ixgbe_adapter*)0xffffff002c789000)->rx_rings[1]->rx_base[3560]
{
read = {
pkt_addr = 31651817472, (hex 0x75e986800)
},
wb = {
upper = {
status_error = 0,
length = 1514,
vlan = 0
}
}
}
(kgdb) p ((struct
ixgbe_adapter*)0xffffff002c789000)->rx_rings[1]->rx_buffers[3560]
$61 = {
m_pack = 0xffffff077063b400,
}
--
Fu Zhengli
R&D Dept.
Array Networks (Beijing) Inc.
Tel: +86-10-84446688 ext 336
Email: [email protected]
------------------------------------------------------------------------------
Shape the Mobile Experience: Free Subscription
Software experts and developers: Be at the forefront of tech innovation.
Intel(R) Software Adrenaline delivers strategic insight and game-changing
conversations that shape the rapidly evolving mobile landscape. Sign up now.
http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk
_______________________________________________
E1000-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit
http://communities.intel.com/community/wired