From owner-freebsd-arch@FreeBSD.ORG Wed Mar 16 08:58:49 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 32C3716A4CE for ; Wed, 16 Mar 2005 08:58:49 +0000 (GMT) Received: from gw.catspoiler.org (217-ip-163.nccn.net [209.79.217.163]) by mx1.FreeBSD.org (Postfix) with ESMTP id C628E43D3F for ; Wed, 16 Mar 2005 08:58:48 +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 j2G8wdG6062341; Wed, 16 Mar 2005 00:58:43 -0800 (PST) (envelope-from truckman@FreeBSD.org) Message-Id: <200503160858.j2G8wdG6062341@gw.catspoiler.org> Date: Wed, 16 Mar 2005 00:58:39 -0800 (PST) From: Don Lewis To: phk@phk.freebsd.dk In-Reply-To: <17570.1110963022@critter.freebsd.dk> MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii cc: PeterJeremy@optushome.com.au 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 08:58:49 -0000 On 16 Mar, Poul-Henning Kamp wrote: > In message <20050316084106.GC28328@cirb503493.alcatel.com.au>, Peter Jeremy wri > tes: >>On Tue, 2005-Mar-15 11:11:32 -0800, 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. >> >>My current bitch with syncer is that it can run for up to around 8msec >>(on an AMD XP-1800). This screws up interrupt latency. This is likely to be the MNT_VNODE_FOREACH loop in VOP_SYNC(). A lot of CPU cycles can be wasted even when there is no real work to do because the list of cached vnodes for the file system has to be traversed each time. This loop should be skipped in the MNT_LAZY case, and the inode timestamp updates should be handled by putting them on the syncer worklist. > And throw thousands of I/O requests on the queue at once, which screws > up I/O performance. That is also a problem with the loop in VOP_SYNC(). This behaviour is very noticeable when a machine modifies a lot of files.