Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 May 2018 12:36:04 -0400
From:      Mark Johnston <markj@FreeBSD.org>
To:        Matt Macy <mmacy@FreeBSD.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: 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...
Message-ID:  <20180525163604.GA40082@raichu>
In-Reply-To: <201805232102.w4NL2FaJ073854@repo.freebsd.org>
References:  <201805232102.w4NL2FaJ073854@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180525163604.GA40082>