X-Spam-Check-By: sourceware.org
Date: Fri, 19 Jan 2007 07:41:25 -0800
From: Christopher Layne <clayne@anodized.com>
To: cygwin@cygwin.com
Subject: Re: 1.7.0 CVS mmap failure
Message-ID: <20070119154125.GD1586@ns1.anodized.com>
References: <20070105182234.GC12776@calimero.vinschen.de> <Pine.CYG.4.58.0701051237090.2880@PC1163-8460-XP.flightsafety.com> <20070105192302.GD12776@calimero.vinschen.de> <20070110095345.GL23638@calimero.vinschen.de> <Pine.CYG.4.58.0701100903410.3236@PC1163-8460-XP.flightsafety.com> <Pine.CYG.4.58.0701161717400.2732@PC1163-8460-XP.flightsafety.com> <20070117103959.GA23172@calimero.vinschen.de> <Pine.CYG.4.58.0701171237581.2732@PC1163-8460-XP.flightsafety.com> <20070118091400.GC27843@calimero.vinschen.de> <20070118171852.GA18119@calimero.vinschen.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20070118171852.GA18119@calimero.vinschen.de>
User-Agent: Mutt/1.5.11
X-Assp-Spam-Prob: 0.00000
X-Assp-Whitelisted: Yes
X-Assp-Envelope-From: clayne@ns1.anodized.com
X-Assp-Intended-For: cygwin@cygwin.com
X-IsSubscribed: yes
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
Precedence: bulk
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie.com@cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com

On Thu, Jan 18, 2007 at 06:18:52PM +0100, Corinna Vinschen wrote:
> > Right, it's an optimization problem rather than a bug.  Patches
> > welcome, but I've put it on my TODO list, too.
> 
> I have applied a patch to CVS which calls fstat early, at the spot where
> GetFileSize got called so far.  The stat structure is then propagated to
> subsequent function calls and used there.  This should reduce the fstat
> calls to exactly one per file based mmap call.  All my testcases still
> work fine, but we already saw that my testcases don't cover all weird
> cases in the world.  So, please give this change a serious test.

Thanks for fixing this. I also noticed these when reading through the code.
Another area for extremely small optimization is to just cache the pagesize.
I notice a *lot* of calls to getpagesize(), when I can't really see the
pagesize changing within a single call to mmap(). Since the map implementations
appear to use a data object for tracking/management, it should be pretty
easy to add a psz size_t/DWORD/whatever to it.

-cl

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

