From owner-freebsd-arch@FreeBSD.ORG Wed Mar 16 03:33:38 2005 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0990D16A4CE for ; Wed, 16 Mar 2005 03:33:38 +0000 (GMT) Received: from gw.catspoiler.org (217-ip-163.nccn.net [209.79.217.163]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3C80143D66 for ; Wed, 16 Mar 2005 03:33:36 +0000 (GMT) (envelope-from truckman@FreeBSD.org) Received: from FreeBSD.org (mousie.catspoiler.org [192.168.101.2]) by gw.catspoiler.org (8.13.1/8.13.1) with ESMTP id j2G3X4sP061855; Tue, 15 Mar 2005 19:33:10 -0800 (PST) (envelope-from truckman@FreeBSD.org) Message-Id: <200503160333.j2G3X4sP061855@gw.catspoiler.org> Date: Tue, 15 Mar 2005 19:33:04 -0800 (PST) From: Don Lewis To: jroberson@chesapeake.net In-Reply-To: <20050315195525.F20708@mail.chesapeake.net> MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii cc: arch@FreeBSD.org Subject: Re: Freeing vnodes. X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Mar 2005 03:33:38 -0000 On 15 Mar, Jeff Roberson wrote: > On Tue, 15 Mar 2005, Matthew Dillon wrote: >> syncer: I've always wanted to rewrite the syncer to be per-mount >> or per-physical-device so it could sync out to multiple >> physical devices simultaniously. It would be nice to do this on a per-physical-device basis to avoid multiple threads contending for the same device, but this looks like it would be difficult due to the way that devices can be sliced, diced, and merged. It would also be nice if buf_daemon was a per-device or per-mount. I haven't tested it lately, but in the past I was able to deadlock buf_daemon by loopback NFS mounting a local file system and doing a lot of write activity (iozone works well for this). > The syncer is kind of bogus anyway, because it mostly just destroys the > buf daemon's delayed writes by forcing it all out at once. It does > redundant work, except for updating inodes, which should be all it really > does. The syncer also sets an upper bound on the time that file modifications go unwritten to disk. Buf_daemon sleeps while numdirtybuffers <= lodirtybuffers, so a file updated on a quiet system would not be written to disk for an arbitrarily long time without the syncer.