1.7.0 CVS mmap failure

Corinna Vinschen corinna-cygwin@cygwin.com
Thu Jan 18 09:14:00 GMT 2007


On Jan 17 13:42, Brian Ford wrote:
> 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.

Uh, yes.

> 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 ;-).

Right, it's an optimization problem rather than a bug.  Patches
welcome, but I've put it on my TODO list, too.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

--
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/



More information about the Cygwin mailing list