On Wed, May 23, 2018 at 09:02:15PM +0000, Matt Macy wrote: > Author: mmacy > Date: Wed May 23 21:02:14 2018 > New Revision: 334118 > URL: https://svnweb.freebsd.org/changeset/base/334118 > > Log: > UDP: further performance improvements on tx > > Cumulative throughput while running 64 > netperf -H $DUT -t UDP_STREAM -- -m 1 > on a 2x8x2 SKL went from 1.1Mpps to 2.5Mpps > > Single stream throughput increases from 910kpps to 1.18Mpps > > Baseline: > https://people.freebsd.org/~mmacy/2018.05.11/udpsender2.svg > > - Protect read access to global ifnet list with epoch > https://people.freebsd.org/~mmacy/2018.05.11/udpsender3.svg > > - Protect short lived ifaddr references with epoch > https://people.freebsd.org/~mmacy/2018.05.11/udpsender4.svg > > - Convert if_afdata read lock path to epoch > https://people.freebsd.org/~mmacy/2018.05.11/udpsender5.svg
After this change I can panic an INVARIANTS kernel like so. There is a freed ifaddr lingering on the lo0 ifnet's address list. # ifconfig lo0 127.0.0.2 # ifconfig lo0 -alias 127.0.0.2 # netstat -rn Routing tables Fatal trap 9: general protection fault while in kernel mode cpuid = 1; apic id = 01 instruction pointer = 0x20:0xffffffff80605219 stack pointer = 0x28:0xfffffe00004692e0 frame pointer = 0x28:0xfffffe00004693d0 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, long 1, def32 0, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 735 (netstat) trap number = 9 panic: general protection fault cpuid = 1 time = 1527266002 Uptime: 1m42s Dumping 216 out of 4079 MB:..8%..15%..23%..37%..45%..52%..67%..74%..82%..97% Dump complete Consoles: userboot _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"