delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2007/01/17/14:43:41

X-Spam-Check-By: sourceware.org
Date: Wed, 17 Jan 2007 13:42:58 -0600
From: Brian Ford <Brian DOT Ford AT FlightSafety DOT com>
Reply-To: cygwin AT cygwin DOT com
To: cygwin AT cygwin DOT com
Subject: Re: 1.7.0 CVS mmap failure
In-Reply-To: <20070117103959.GA23172@calimero.vinschen.de>
Message-ID: <Pine.CYG.4.58.0701171237581.2732@PC1163-8460-XP.flightsafety.com>
References: <20070105095752 DOT GB28768 AT calimero DOT vinschen DOT de> <Pine DOT CYG DOT 4 DOT 58 DOT 0701050959060 DOT 2704 AT PC1163-8460-XP DOT flightsafety DOT com> <Pine DOT CYG DOT 4 DOT 58 DOT 0701051054010 DOT 280 AT PC1163-8460-XP DOT flightsafety DOT com> <Pine DOT CYG DOT 4 DOT 58 DOT 0701051144030 DOT 2880 AT PC1163-8460-XP DOT flightsafety DOT com> <20070105182234 DOT GC12776 AT calimero DOT vinschen DOT de> <Pine DOT CYG DOT 4 DOT 58 DOT 0701051237090 DOT 2880 AT PC1163-8460-XP DOT flightsafety DOT com> <20070105192302 DOT GD12776 AT calimero DOT vinschen DOT de> <20070110095345 DOT GL23638 AT calimero DOT vinschen DOT de> <Pine DOT CYG DOT 4 DOT 58 DOT 0701100903410 DOT 3236 AT PC1163-8460-XP DOT flightsafety DOT com> <Pine DOT CYG DOT 4 DOT 58 DOT 0701161717400 DOT 2732 AT PC1163-8460-XP DOT flightsafety DOT com> <20070117103959 DOT GA23172 AT calimero DOT vinschen DOT de>
MIME-Version: 1.0
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT 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

---559023410-320655053-1169062978=:2732
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Wed, 17 Jan 2007, Corinna Vinschen wrote:

> On Jan 16 17:28, Brian Ford wrote:
>
> > PS: In an strace of this, I see three fstat64s called from within a
> > single mmap64.  Do you know where they all are, and if two should be
> > optimized away?
>
> There's only one such call in list::set.

which is called from map::add_list, yes.  I also see one in
map::get_list_by_fd.

> Your observation is strange.  The first mapping, which really maps the
> file, calls fstat.  The second (valid remainder) and third (sigbus area)
> mapping are anonymous mappings, which don't call fstat.

I don't think my three fstat64s correspond to your three mappings.

> In my tests, fstat64 is called only once for a file mapping.

Really?  I think I see them as follows:

mmap.cc:1203 mmap64():
  map_list = mmapped_areas.get_list_by_fd (fd);
mmap.cc:982 mmap_worker():
  if (!(map_list = mmapped_areas.get_list_by_fd (fd))
mmap.cc:983 mmap_worker():
  && !(map_list = mmapped_areas.add_list (fd)))

Also:

mmap.cc:1134 mmap64():
  DWORD low = GetFileSize (fh->get_handle (), &high);

> STC?

It looks like your statement is true for the first mmap in a process, but
subsequent mmaps have significant overhead.  In the attached STC, I count
5 fstat64s of the same fd via strace, plus the GetFileSize mentioned
above.

PS. Since this isn't a bug, I don't expect you to do any more than
consider putting it in your long term low priority que or reply with a PTC
Thanks for the evaluation tuits ;-).

-- 
Brian Ford
Lead Realtime Software Engineer
VITAL - Visual Simulation Systems
FlightSafety International
the best safety device in any aircraft is a well-trained crew...


---559023410-320655053-1169062978=:2732
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="mmaptest.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine DOT CYG DOT 4 DOT 58 DOT 0701171342582 DOT 2732 AT PC1163-8460-XP DOT flightsafety DOT com>
Content-Description: 
Content-Disposition: attachment; filename="mmaptest.c"

I2luY2x1ZGUgPGxpbWl0cy5oPg0KI2luY2x1ZGUgPHVuaXN0ZC5oPg0KI2lu
Y2x1ZGUgPHN5cy90eXBlcy5oPg0KI2luY2x1ZGUgPHN5cy9zdGF0Lmg+DQoj
aW5jbHVkZSA8c3RyaW5ncy5oPg0KI2luY2x1ZGUgPHN0cmluZy5oPg0KI2lu
Y2x1ZGUgPGZjbnRsLmg+DQojaW5jbHVkZSA8c3RkaW8uaD4NCiNpbmNsdWRl
IDxzeXMvbW1hbi5oPg0KDQoNCmludA0KbWFpbihpbnQgYXJnYywgY29uc3Qg
Y2hhciAqYXJndltdKQ0Kew0KICAgIGNoYXIgICAgICAgICBmbmFtZVtQQVRI
X01BWF07DQogICAgaW50ICAgICAgICAgIGNudDsNCiAgICBpbnQgICAgICAg
ICAgZmQ7DQogICAgc3RydWN0IHN0YXQgIHNiOw0KICAgIHZvaWQgICAgICAg
ICphZGRyOw0KDQogICAgY250ICAgICAgICA9IHJlYWRsaW5rKCIvcHJvYy9z
ZWxmL2V4ZSIsIGZuYW1lLCBzaXplb2YoZm5hbWUpKTsNCiAgICBmbmFtZVtj
bnRdID0gJ1wwJzsNCg0KI2RlZmluZSBFWEVfU1VGRklYICIuZXhlIg0KI2Rl
ZmluZSBTVFJMRU5fRVhFX1NVRkZJWCAoc2l6ZW9mKEVYRV9TVUZGSVgpLTEp
DQogICAgaWYgKGNudCA8PSBTVFJMRU5fRVhFX1NVRkZJWA0KICAgICAgICB8
fCBzdHJjYXNlY21wKCZmbmFtZVtjbnQtU1RSTEVOX0VYRV9TVUZGSVhdLCBF
WEVfU1VGRklYKSkNCiAgICAgICAgc3RyY3B5KGZuYW1lK2NudCwgRVhFX1NV
RkZJWCk7DQoNCiAgICBmZCA9IG9wZW4oZm5hbWUsIE9fUkRPTkxZKTsNCiAg
ICBpZiAoZmQgPCAwKQ0KICAgIHsNCglwZXJyb3IoIm9wZW4gc2VsZiIpOw0K
CXJldHVybiAtMTsNCiAgICB9DQoNCiAgICBpZiAoZnN0YXQoZmQsICZzYikg
PCAwKQ0KICAgIHsNCglwZXJyb3IoInN0YXQiKTsNCglyZXR1cm4gLTE7DQog
ICAgfQ0KDQogICAgYWRkciA9IG1tYXAoTlVMTCwgc2Iuc3Rfc2l6ZSwgKFBS
T1RfUkVBRHxQUk9UX1dSSVRFKSwNCgkJKE1BUF9OT1JFU0VSVkV8TUFQX1BS
SVZBVEUpLCBmZCwgMCk7DQogICAgaWYgKGFkZHIgPT0gTUFQX0ZBSUxFRCkN
CiAgICB7DQoJcGVycm9yKCJtbWFwMSIpOw0KCXJldHVybiAtMTsNCiAgICB9
DQoNCiAgICBhZGRyID0gbW1hcChOVUxMLCBzYi5zdF9zaXplLCAoUFJPVF9S
RUFEfFBST1RfV1JJVEUpLA0KCQkoTUFQX05PUkVTRVJWRXxNQVBfUFJJVkFU
RSksIGZkLCAwKTsNCiAgICBpZiAoYWRkciA9PSBNQVBfRkFJTEVEKQ0KICAg
IHsNCglwZXJyb3IoIm1tYXAyIik7DQoJcmV0dXJuIC0xOw0KICAgIH0NCg0K
ICAgIGNsb3NlKGZkKTsNCg0KICAgIHB1dHMoInRlc3QgcGFzc2VkIik7DQog
ICAgcmV0dXJuIDA7DQp9DQo=


---559023410-320655053-1169062978=:2732
Content-Type: text/plain; charset=us-ascii

--
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/
---559023410-320655053-1169062978=:2732--

- Raw text -


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