X-Recipient: archive-cygwin@delorie.com
X-SWARE-Spam-Status: No, hits=-1.8 required=5.0	tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,SPF_NEUTRAL,T_RP_MATCHES_RCVD
X-Spam-Check-By: sourceware.org
Message-ID: <4FD5FF2C.3030101@cs.utoronto.ca>
Date: Mon, 11 Jun 2012 10:22:36 -0400
From: Ryan Johnson <ryan.johnson@cs.utoronto.ca>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20120428 Thunderbird/12.0.1
MIME-Version: 1.0
To: cygwin@cygwin.com
Subject: Re: child_info_fork::abort:
References: <CAAKc=GDtuC-QOBeoVBzFNsNMRg71GMgsaP_9-2qpECGcRs5YPg@mail.gmail.com>
In-Reply-To: <CAAKc=GDtuC-QOBeoVBzFNsNMRg71GMgsaP_9-2qpECGcRs5YPg@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-IsSubscribed: yes
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
List-Id: <cygwin.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 11/06/2012 9:49 AM, Rodrigo Botafogo wrote:
> Ryan,
>
> Thanks also for your reply.  In your reply you say that if the system
> has a very large number of DLL rebase might not work. Just for
> curiosity, what is a large number of DLL?  When do I run a risk of
> having problems with rebaseall?
Short version: you ignore what I said, for all practical purposes -- I 
misread the address from your OP.

To answer your question, though:

There's a fixed amount of address space between 0x7000000 (the top 
boundary where rebaseall normally starts working down from) and 
0x4000000 (the address at which the executable image is always mapped). 
In between there usually go several Windows-related things (heaps, 
thread stacks, etc.), so really 0x50000000 is probably the real lower 
bound. That leaves roughly 512MB of address space to fill with rebased 
dlls; how fast the space gets used up depends on the number and size of 
dlls in your system. Most dlls are quite small (32-64kB), and my rebase 
database contains fewer than 350 of them. The lowest address in use is 
0x62d20000, so I've still got 300MB or so wiggle room (= plenty). I'd 
expect this to be the case for the vast majority of cygwin users.

Going from your claim that you'd rebased everything, if rebaseall had 
actually put a dll at 0x42000000, that would be a *lot* of *big* dlls 
(some thousands, or sized in MB instead of kB, perhaps). However, 
looking closer at your original report, 0x420000 != 0x42000000, and is 
well below the executable image. That dll was almost certainly placed 
there by Windows due to a base address collision, with the latter 
probably due to a dll (or several) that rebaseall missed.

Regards,
Ryan


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

