svn commit: r334118 - in head/sys: compat/linprocfs compat/linux compat/linuxkpi/common/include/linux dev/mlx5/mlx5_ib dev/wtap net net/altq netinet netinet/netdump netinet6 netpfil/pf nfs ofed/dri...

Mark Johnston markj at FreeBSD.org
Fri May 25 16:36:13 UTC 2018


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


More information about the svn-src-all mailing list