Date: Mon, 1 Sep 2008 13:04:54 +0100 (BST) From: Robert Watson <rwatson@FreeBSD.org> To: Anton Yuzhaninov <citrin@citrin.ru> Cc: freebsd-net@freebsd.org Subject: Re: bug in unix sockets garbage collector Message-ID: <alpine.BSF.1.10.0809011303330.37102@fledge.watson.org> In-Reply-To: <48AEDC40.6030901@citrin.ru> References: <48AEDC40.6030901@citrin.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 22 Aug 2008, Anton Yuzhaninov wrote: > On servers where used unix sockets, sometimes thread taskq start to eat 100% > CPU: http://docs.FreeBSD.org/cgi/mid.cgi?474EFC5C.9060508 > > Addition info about this problem - when this occurs > > sysctl net.local.inflight show negative number. > > % sysctl net.local.inflight net.local.inflight: -3 > > And this condition become always true: > > if (local_unp_rights) > taskqueue_enqueue(taskqueue_thread, &unp_gc_task); > > It seems, that unp_rights decremented more often than incremented, or some > race exist. Hi Anton: On reviewing this code, I've identified at least one race condition that could lead to the behavior that you've spotted. It will probably take me a couple of days to produce a patch for you to try. However, could I ask you to file a PR for this problem, with the above and any related diagnostics, and when you receive the e-mail PR receipt, could you forward it to me so that I can take ownership of it? Thanks, Robert N M Watson Computer Laboratory University of Cambridge
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.1.10.0809011303330.37102>