From owner-freebsd-stable Tue Jan 8 13:22:33 2002 Delivered-To: freebsd-stable@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by hub.freebsd.org (Postfix) with ESMTP id D0D4B37B402; Tue, 8 Jan 2002 13:22:30 -0800 (PST) Received: (from dillon@localhost) by apollo.backplane.com (8.11.6/8.9.1) id g08LMTp61466; Tue, 8 Jan 2002 13:22:29 -0800 (PST) (envelope-from dillon) Date: Tue, 8 Jan 2002 13:22:29 -0800 (PST) From: Matthew Dillon Message-Id: <200201082122.g08LMTp61466@apollo.backplane.com> To: steve@Watt.COM (Steve Watt) Cc: stable@FreeBSD.ORG, re@FreeBSD.ORG Subject: Re: VXLOCK interlock avoided messages References: <200201082110.g08LAqJ97852@wattres.Watt.COM> Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG We changed this warning into a log() message, but perhaps we should simply remove it entirely. Basically there is no problem. This message is 'normal' now due to us *finally* reclaiming vnodes when we've gone over the kern.maxvnodes limit. Normally vnodes are reclaimed only when their VM objects have no cached pages left. This worked just fine until people starting putting 2G+ of ram into their machines. Once that started happening it was possible to hit the kernel malloc pool limit for vnodes and/or inodes due to not being able to free vnodes due to their VM objects still having cached pages. So now we reclaim vnodes proactively when the total number exceeds kern.maxvnodes. However, this has a side effect, for it means we are now reclaiming vnodes which may still have dirty pages... dirty pages which now must be flushed inside vgonel() while we hold VXLOCK. Flushing these pages can often cause vget() to be called, which locks the vnodes and poof, you get the warning. It's a bogus warning. If the RE's agree I would like to simply remove the associated log() calls. -Matt :Greetings! : :I recently upgraded to a fresher stable (4.5-PRE, 2002-Jan-3 20:43PST), :and just saw (in my security report) the following very interesting :looking errors: :Jan 8 03:36:10 wattres /kernel: VXLOCK interlock avoided :Jan 8 03:36:10 wattres /kernel: VXLOCK interlock avoided in vn_lock : :The box is usually pretty busy at that time of day running news expiry :and the various odd cron jobs (daily, etc.). My news spool and libraries :reside on different spindles, news articles on /news, news libraries :on /old/local (filesystem list below). : :The previous update was 27 Oct in the evening PST, and I've never seen :this message before. : :I see that it's a self-deadlock avoider in the code, but I don't :know how to reproduce it (yet). I'll keep an eye on it and see if :it occurs again. : :Mostly, this is a heads-up, and I'm wondering if anyone has seen this :before and/or wants to gather more information. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message