Searched hist:323411 (Results 1 - 2 of 2) sorted by relevance
/freebsd-11-stable/sys/dev/ffec/ | ||
H A D | if_ffec.c | diff 323411 Mon Sep 11 01:33:34 MDT 2017 ian MFC r319811, r319813: Allow building if_ffec as a module. if_ffec bugfixes related to harvesting of hardware-maintained statistics... After harvesting the hardware statistics counters and summing them into the interface stats, properly clear the hardware counters back to zero. On imx5 and earlier hardware it is necessary to disable collection of stats while writing zeroes to all the registers. On imx6 and newer it turns out it's not even possible to write zeroes, instead you have to toggle a special "zero everything" control bit in a register. Count incoming packets with a bad start frame delim as input errors, and incoming packets dropped due to no fifo space as input drops. Remove all code related to harvesting the hardware stats less often than once per second. It turns out the 32-bit stats registers are backed by 16-bit counters under the hood, and they can easily roll over if you only harvest them once every 3 seconds like the old code was doing. Now we just read all the regs once a second. The combination of not properly zeroing the stats registers and 16-bit counters sometimes wrapping between harvest calls resulted in basically unusable statistics before these changes. |
/freebsd-11-stable/sys/modules/ | ||
H A D | Makefile | diff 323411 Mon Sep 11 01:33:34 MDT 2017 ian MFC r319811, r319813: Allow building if_ffec as a module. if_ffec bugfixes related to harvesting of hardware-maintained statistics... After harvesting the hardware statistics counters and summing them into the interface stats, properly clear the hardware counters back to zero. On imx5 and earlier hardware it is necessary to disable collection of stats while writing zeroes to all the registers. On imx6 and newer it turns out it's not even possible to write zeroes, instead you have to toggle a special "zero everything" control bit in a register. Count incoming packets with a bad start frame delim as input errors, and incoming packets dropped due to no fifo space as input drops. Remove all code related to harvesting the hardware stats less often than once per second. It turns out the 32-bit stats registers are backed by 16-bit counters under the hood, and they can easily roll over if you only harvest them once every 3 seconds like the old code was doing. Now we just read all the regs once a second. The combination of not properly zeroing the stats registers and 16-bit counters sometimes wrapping between harvest calls resulted in basically unusable statistics before these changes. |
Completed in 173 milliseconds