Skip to content
  • Mark Johnston's avatar
    pf: Don't allocate per-table entry counters unless required. · 21121f9b
    Mark Johnston authored
    pf by default does not do per-table address accounting unless the
    "counters" keyword is specified in the corresponding pf.conf table
    definition.  Yet, we always allocate 12 per-CPU counters per table.  For
    large tables this carries a lot of overhead, so only allocate counters
    when they will actually be used.
    
    A further enhancement might be to use a dedicated UMA zone to allocate
    counter arrays for table entries, since close to half of the structure
    size comes from counter pointers.  A related issue is the cost of
    zeroing counters, since counter_u64_zero() calls smp_rendezvous() on
    some architectures.
    
    Reported by:	loos, Jim Pingle <jimp@netgate.com>
    Reviewed by:	kp
    MFC after:	2 weeks
    Sponsored by:	Rubicon Communications, LLC (Netgate)
    Differential Revision:	https://reviews.freebsd.org/D24803
    21121f9b