X-Spam-Check-By: sourceware.org Date: Tue, 9 Jan 2007 06:15:44 -0800 From: Christopher Layne To: cygwin AT cygwin DOT com Subject: Re: 1.7.0 CVS mmap failure Message-ID: <20070109141544.GE19638@ns1.anodized.com> References: <20070105182234 DOT GC12776 AT calimero DOT vinschen DOT de> <20070105192302 DOT GD12776 AT calimero DOT vinschen DOT de> <20070106154519 DOT GA19640 AT ns1 DOT anodized DOT com> <20070107105844 DOT GB10586 AT calimero DOT vinschen DOT de> <20070109090415 DOT GA19638 AT ns1 DOT anodized DOT com> <20070109115643 DOT GD23638 AT calimero DOT vinschen DOT de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20070109115643.GD23638@calimero.vinschen.de> User-Agent: Mutt/1.5.11 X-Assp-Spam-Prob: 0.00000 X-Assp-Whitelisted: Yes X-Assp-Envelope-From: clayne AT ns1 DOT anodized DOT com X-Assp-Intended-For: cygwin AT cygwin DOT com X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On Tue, Jan 09, 2007 at 12:56:43PM +0100, Corinna Vinschen wrote: > > Okay, I understand where you're coming from. Where I'm coming from is that it > > is difficult to generate a test case that actually demonstrates the issue > > outside of the scope of my application. Suffice to say, I do see the errors in > > strace output - and I can see MapViewNT returning an error in the double-map > > -so-we-can-have-4k-pseudopages version. > > I'm under the impression you're getting something upside-down. Windows > has 4K system pages, but an allocation granularity of 64K. For a long > time I stubbornly tried to stick with 4K pagesize for POSIX applications, > but the code got more and more complicated because there was always yet > another situation which just didn't work correctly due to the 64K > allocation granularity. extern "C" size_t getpagesize () { if (!system_info.dwPageSize) GetSystemInfo (&system_info); return (size_t) system_info.dwAllocationGranularity; } size_t getsystempagesize () { if (!system_info.dwAllocationGranularity) GetSystemInfo (&system_info); return (size_t) system_info.dwPageSize; } Turns out I was reading these backwards, yes. $ ./psz psz == 4096, ag == 65536 I'll try and reanalyze some of the other stuff tomorrow. -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/