From owner-cvs-src@FreeBSD.ORG Tue Feb 8 11:56:11 2005 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 21C7B16A4CE; Tue, 8 Feb 2005 11:56:11 +0000 (GMT) Received: from mailout2.pacific.net.au (mailout2.pacific.net.au [61.8.0.85]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7550E43D1F; Tue, 8 Feb 2005 11:56:10 +0000 (GMT) (envelope-from bde@zeta.org.au) Received: from mailproxy1.pacific.net.au (mailproxy1.pacific.net.au [61.8.0.86])j18Bu9Hn024771; Tue, 8 Feb 2005 22:56:09 +1100 Received: from katana.zip.com.au (katana.zip.com.au [61.8.7.246]) j18Bu7VU000514; Tue, 8 Feb 2005 22:56:08 +1100 Date: Tue, 8 Feb 2005 22:56:06 +1100 (EST) From: Bruce Evans X-X-Sender: bde@delplex.bde.org To: Nate Lawson In-Reply-To: <4208737B.7080909@root.org> Message-ID: <20050208224445.O22586@delplex.bde.org> References: <20050208075117.E19CC16A557@hub.freebsd.org> <4208737B.7080909@root.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: cvs-src@freebsd.org cc: src-committers@freebsd.org cc: cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/fs/msdosfs msdosfs_conv.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Feb 2005 11:56:11 -0000 On Tue, 8 Feb 2005, Nate Lawson wrote: > Nate Lawson wrote: > > njl 2005-02-08 07:51:14 UTC > > > > FreeBSD src repository > > > > Modified files: > > sys/fs/msdosfs msdosfs_conv.c > > Log: > > Unroll the loop for calculating the 8.3 filename checksum. In testing > > on my P3, microbenchmarks show the unrolled version is 78x faster. In > > actual use (recursive ls), this gives an average of 9% improvement in > > system time and 2% improvement in wall time. > > > > Revision Changes Path > > 1.39 +14 -5 src/sys/fs/msdosfs/msdosfs_conv.c > > I also tested this version in usermode on some candidate strings to be > sure its output matches the original version. The mbnambuf functions > are my next victim. It's interesting that the performance improvement is large enough to measure. While you're there, do you have any idea on how to handle files with invalid file names? In 8.3 mode they are accessible with names like foobar~1, but in Win95 mode they cannot even be stat()ed although they can be seen using readdir() or read(). I have just 1 such file (a pointer to a home page) and don't want to load libiconv to just to copy it for backing up. There is a recent PR about file names becoming inaccessible even with libiconv due to locale problems. I think there should be a fallback to something like foobar~1 in general. It may be a bug that readdir() shows invalid file names or that it doesn't convert them. Bruce