Date: Thu, 12 Apr 2018 16:01:20 -0400 From: Ryan Stone <rysto32@gmail.com> To: Stephen Hurd <shurd@freebsd.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: Re: svn commit: r332447 - stable/11/sys/dev/ixgbe Message-ID: <CAFMmRNwM6Y6fs2dR97zX6qnoGqDJnwf3Vha8wi-RReBcbKwRcQ@mail.gmail.com> In-Reply-To: <201804121906.w3CJ6FZo092138@repo.freebsd.org> References: <201804121906.w3CJ6FZo092138@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Spinning in the kernel for a full second is a really bad idea. At minimum this is going to hold off all callouts from one of the callout threads for up to a full second as ixgbe_local_timer() waits for the core mutex. That chews up two CPU cores doing busy-wait loops (the ixgbe_stop() thread busy-waits in msec_delay and the callout thread adaptively spins waiting for the mutex). If any other thread tries to acquire the core lock they also adaptively spin on the mutex chewing up yet more cores. This includes any threads trying to fetch interface status (e.g. ifconfig), various interrupt handlers, etc.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFMmRNwM6Y6fs2dR97zX6qnoGqDJnwf3Vha8wi-RReBcbKwRcQ>