freebsd-dev/share/man
Gleb Smirnoff 063efed28c The drbr(9) API appeared to be so unclear, that most drivers in
tree used it incorrectly, which lead to inaccurate overrated
if_obytes accounting. The drbr(9) used to update ifnet stats on
drbr_enqueue(), which is not accurate since enqueuing doesn't
imply successful processing by driver. Dequeuing neither mean
that. Most drivers also called drbr_stats_update() which did
accounting again, leading to doubled if_obytes statistics. And
in case of severe transmitting, when a packet could be several
times enqueued and dequeued it could have been accounted several
times.

o Thus, make drbr(9) API thinner. Now drbr(9) merely chooses between
  ALTQ queueing or buf_ring(9) queueing.
  - It doesn't touch the buf_ring stats any more.
  - It doesn't touch ifnet stats anymore.
  - drbr_stats_update() no longer exists.

o buf_ring(9) handles its stats itself:
  - It handles br_drops itself.
  - br_prod_bytes stats are dropped. Rationale: no one ever
    reads them but update of a common counter on every packet
    negatively affects performance due to excessive cache
    invalidation.
  - buf_ring_enqueue_bytes() reduced to buf_ring_enqueue(), since
    we no longer account bytes.

o Drivers handle their stats theirselves: if_obytes, if_omcasts.

o mlx4(4), igb(4), em(4), vxge(4), oce(4) and  ixv(4) no longer
  use drbr_stats_update(), and update ifnet stats theirselves.

o bxe(4) was the most correct driver, it didn't call
  drbr_stats_update(), thus it was the only driver accurate under
  moderate load. Now it also maintains stats itself.

o ixgbe(4) had already taken stats from hardware, so just
  - drop software stats updating.
  - take multicast packet count from hardware as well.

o mxge(4) just no longer needs NO_SLOW_STATS define.

o cxgb(4), cxgbe(4) need no change, since they obtain stats
  from hardware.

Reviewed by:	jfv, gnn
2012-09-28 18:28:27 +00:00
..
man1 sh: Add kill builtin. 2010-12-21 22:47:34 +00:00
man3 siginfo(3): Document TRAP_DTRACE signal code. 2012-09-14 22:12:04 +00:00
man4 Minor man page cleanup -- fix grammar, markup fixes, and start each 2012-09-24 15:02:31 +00:00
man5 Regen for r240690 2012-09-19 11:40:17 +00:00
man6
man7 Remove some duplicated advice. 2012-09-22 21:34:46 +00:00
man8 Fixes to man8 groff mandoc style, usage mistakes, or typos. 2012-05-24 02:24:03 +00:00
man9 The drbr(9) API appeared to be so unclear, that most drivers in 2012-09-28 18:28:27 +00:00
Makefile Add a new build option, MAN_UTILS. This option lets you control building 2010-05-19 23:56:26 +00:00