Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Sep 2024 22:37:43 +0000
From:      bugzilla-noreply@freebsd.org
To:        net@FreeBSD.org
Subject:   [Bug 281560] gve (4) uma deadlock during high tcp throughput
Message-ID:  <bug-281560-7501-aDVASDu0Fj@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-281560-7501@https.bugs.freebsd.org/bugzilla/>
References:  <bug-281560-7501@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D281560

--- Comment #12 from Andrew Gallatin <gallatin@FreeBSD.org> ---
Comment on attachment 253834
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D253834
procstat_kka

Are we absolutely certain that this is a deadlock and not a livelock?  If y=
ou
look at network counters, etc, seconds apart do you see any movement at all=
?=20
Is that iperf killable?

I'm asking this because while most of the uma locks are in the allocation p=
ath,
but some are in the free path (0 100421 kernel              gve0 rxq 8=20=
=20=20=20=20=20=20=20=20
mi_switch+0x171 __mtx_lock_sleep+0x1ba __mtx_lock_flags+0xe1
zone_put_bucket+0x75 cache_free+0x2da uma_zfree_arg+0x21c mb_free_ext+0x126
m_free+0xda m_freem+0x48 tcp_do_segment+0x1e6b tcp_input_with_port+0x1135
tcp_input+0xb ip_input+0x2ae netisr_dispatch_src+0xad ether_demux+0x17a
ether_nh_input+0x3f8 netisr_dispatch_src+0xad ether_input+0xe5),  and it
appears that the iperf thread that holds that zone lock is actually doing
something.

I've seen degenerate, live-locking, behavior in the past when allocations a=
nd
frees overwhelm the per-cpu caches and there is contention for the zone loc=
k.=20
Throughput drops by 80% or more, and the system becomes incredibly sluggish=
 and
its easy to think it is a deadlock.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-281560-7501-aDVASDu0Fj>