[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87h9u73eh0.fsf@nemi.mork.no>
Date: Fri, 27 Feb 2015 10:12:27 +0100
From: Bjørn Mork <bjorn@...k.no>
To: Ben Hutchings <ben.hutchings@...ethink.co.uk>
Cc: Oliver Neukum <oliver@...kum.org>, netdev@...r.kernel.org,
ct-linux-kernel <linux-kernel@...ethink.co.uk>,
linux-usb@...r.kernel.org, Sami Farin <hvtaifwkbgefbaei@...il.com>,
Aleksander Morgado <aleksander@...ksander.es>
Subject: Re: [RFC][PATCH] usbnet: Fix tx_bytes statistic running backward in cdc_ncm
Ben Hutchings <ben.hutchings@...ethink.co.uk> writes:
> cdc_ncm disagrees with usbnet about how much framing overhead should
> be counted in the tx_bytes statistics, and tries 'fix' this by
> decrementing tx_bytes on the transmit path. But statistics must never
> be decremented except due to roll-over; this will thoroughly confuse
> user-space. Also, tx_bytes is only incremented by usbnet in the
> completion path.
>
> Fix this by requiring drivers that set FLAG_MULTI_FRAME to set a
> tx_bytes delta along with the tx_packets count.
>
> Signed-off-by: Ben Hutchings <ben.hutchings@...ethink.co.uk>
> ---
> I noticed this bug while trying to fix the tx_packets statistic in asix.
> It depends on the patch I just sent for that. I don't have any hardware
> to test this with, or any need to make it work. If you want this fix,
> please test and re-submit it yoursef.
I tested this on an MBIM device, and it worked perfectly as-is. Please
submit it without the RFC prefix. This fixes a real and reported
problem with the cdc_ncm driver, so I'd claim it's "net" material along
with a stable Cc and
Fixes: beeecd42c3b4 ("net: cdc_ncm/cdc_mbim: adding NCM protocol statistics")
But you and David decide that, of course...
Fixing this was actually on my TODO-list after a recent report showing
one of the problems with the previous hack: The decremented tx_bytes
counter was never corrected if the URB transmission failed, possibly
ending up with a negative (i.e. very large since it is unsigned)
tx_bytes counter.
Thanks a lot. I didn't know how to do this without introducing a new
callback or something. Your solutions is very nice, and so obvious when
I see it. Just brilliant :-)
Tested-by: Bjørn Mork <bjorn@...k.no>
And you might also want (if this is OK for Sami):
Reported-by: Sami Farin <hvtaifwkbgefbaei@...il.com>
Sami wrote:
> I have this USB ID 12d1:157d, Sonera Opengate LTE.
> It says all is okay but no packets are moving.
..
> ifconfig
> wwp3s0u1c2: flags=4291<UP,BROADCAST,RUNNING,NOARP,MULTICAST> mtu 1500
> inet 46.132.188.224 netmask 255.255.255.192 broadcast 46.132.188.255
> inet6 fe80:: prefixlen 64 scopeid 0x20<link>
> ether 32:35:3a:64:2e:25 txqueuelen 1000 (Ethernet)
> RX packets 0 bytes 0 (0.0 B)
> RX errors 17764 dropped 0 overruns 0 frame 0
> TX packets 6714 bytes 18446744073709268911 (1638.3 PiB)
> TX errors 1427 dropped 0 overruns 0 carrier 0 collisions 0
>
Bjørn
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists