From owner-cvs-src-old@FreeBSD.ORG Sun Apr 10 03:50:16 2011 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6FA55106578D for ; Sun, 10 Apr 2011 03:50:16 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E31838FC0C for ; Sun, 10 Apr 2011 03:50:07 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.4/8.14.4) with ESMTP id p3A3o7EC089506 for ; Sun, 10 Apr 2011 03:50:07 GMT (envelope-from jeff@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id p3A3o71e089505 for cvs-src-old@freebsd.org; Sun, 10 Apr 2011 03:50:07 GMT (envelope-from jeff@repoman.freebsd.org) Message-Id: <201104100350.p3A3o71e089505@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to jeff@repoman.freebsd.org using -f From: Jeff Roberson Date: Sun, 10 Apr 2011 03:49:53 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/ufs/ffs ffs_softdep.c softdep.h X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Apr 2011 03:50:16 -0000 jeff 2011-04-10 03:49:53 UTC FreeBSD src repository Modified files: sys/ufs/ffs ffs_softdep.c softdep.h Log: SVN rev 220511 on 2011-04-10 03:49:53Z by jeff Fix a long standing SUJ performance problem: - Keep a hash of indirect blocks that have recently been freed and are still referenced in the journal. - Lookup blocks in this hash before forcing a new block write to wait on the journal entry to hit the disk. This is only necessary to avoid confusion between old identities as indirects and new identities as file blocks. - Don't free jseg structures until the journal has written a record that invalidates it. This keeps the indirect block information around for as long as is required to be safe. - Force an empty journal block write when required to flush out stale journal data that is simply waiting for the oldest valid sequence number to advance beyond it. Revision Changes Path 1.273 +212 -56 src/sys/ufs/ffs/ffs_softdep.c 1.26 +3 -1 src/sys/ufs/ffs/softdep.h