delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2012/06/11/10:23:00

X-Recipient: archive-cygwin AT delorie DOT 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 DOT johnson AT cs DOT utoronto DOT 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 AT cygwin DOT com
Subject: Re: child_info_fork::abort:
References: <CAAKc=GDtuC-QOBeoVBzFNsNMRg71GMgsaP_9-2qpECGcRs5YPg AT mail DOT gmail DOT com>
In-Reply-To: <CAAKc=GDtuC-QOBeoVBzFNsNMRg71GMgsaP_9-2qpECGcRs5YPg@mail.gmail.com>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
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 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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019