Dropped vs. missed packets in the ixgbe driver

Manish Vachharajani manishv at lineratesystems.com
Thu Aug 20 17:23:16 UTC 2009


I noticed the bogus XON, XOFF numbers.  I'm glad to see it will be
fixed so I can cross it off my todo list.  :)  I don't think the issue
is related though, but you never know.

Barney pointed out that missed_rx in the ixgbe_update_stats_counters
function accumulates the missed packet registers into the missed_rx
field.  At the end of the function, these are summed into
ifp->if_ierrors which should be reported under Ierrs by netstat -idh.
However that count is zero as reported via netstat.  The stats printfs
activated via sysctl dev.ix.#.stats=1 prints stats.mpc[0].  This
number is large (around 400k on the machine I've been using to find
the problem).  If you look at the code, missed_rx and mpc[i] are
updated with the same variables.  Given that missed_rx is unsigned, I
don't understand how the number fails to make it into ifp->if_ierrors,
but I have yet to dive into debugging this seriously.

Initially, I thought the fix was simple since I didn't see the
missed_rx getting added to ierrors.  But now, I am not sure where the
problem is.  Hopefully, it will be more obvious to you than it is to
me.  I'm sure it is something simple that I am missing.

Manish

On Thu, Aug 20, 2009 at 11:08 AM, Jack Vogel<jfvogel at gmail.com> wrote:
> I've been looking at the code due to another problem of bogus flow control
> numbers, and there are some changes needed, things that should be 82599 vs
> 82598 and were not seperated properly. Will be forthcoming. Not sure if it
> has any relevance to this, but its possible.
>
> Jack
>
>
> On Thu, Aug 20, 2009 at 9:53 AM, Manish Vachharajani
> <manishv at lineratesystems.com> wrote:
>>
>> Oh whoops, sorry didn't see that.  So the plot thickens.  Why don't
>> these errors show up in the netstat output I forwarded originally?
>> Ierrs was 0 but the dmesg output clearly shows missed packets.  Any
>> thoughts on what is going on?  Looking at the code, missed_rx should
>> certainly get counted in the ierrors field as you said.
>>
>> Is the Ierrs in the netstat output some other counter?  If so, how do
>> I get the if_ierrors variable from the command line?
>>
>> Manish
>>
>> On Thu, Aug 20, 2009 at 6:49 AM, Barney Cordoba<barney_cordoba at yahoo.com>
>> wrote:
>> >
>> >
>> > --- On Wed, 8/19/09, Manish Vachharajani <manishv at lineratesystems.com>
>> > wrote:
>> >
>> >> From: Manish Vachharajani <manishv at lineratesystems.com>
>> >> Subject: Re: Dropped vs. missed packets in the ixgbe driver
>> >> To: "Barney Cordoba" <barney_cordoba at yahoo.com>
>> >> Cc: freebsd-net at freebsd.org
>> >> Date: Wednesday, August 19, 2009, 2:46 PM
>> >> Agreed, the errors are reported but
>> >> missed packets are not.  The
>> >> question is, is the correct fix to just add stats.mpc[0] to
>> >> if_ierrors
>> >> in that line or to add it to if_iqdrops.  The fix is
>> >> easy once we
>> >> agree on what the correct behavior is.
>> >>
>> >> Manish
>> >>
>> >> > Barney wrote:
>> >> >
>> >> > if you look in ixgbe_update_stats_counters at the
>> >> bottom:
>> >> >
>> >> >        ifp->if_ierrors = missed_rx +
>> >> adapter->stats.crcerrs +
>> >> >                adapter->stats.rlec;
>> >> >
>> >> > the errors are added in.
>> >> >
>> >> > BC
>> >
>> > Huh? missed_rx are the missed packets. So they are counted.
>> >
>> > BC
>> >
>> >
>> >
>> >
>> >
>>
>>
>>
>> --
>> Manish Vachharajani

>> _______________________________________________
>> freebsd-net at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-net
>> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
>
>

-- 
Manish Vachharajani


More information about the freebsd-net mailing list