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

Reply via email to