This is the mail archive of the
cygwin@cygwin.com
mailing list for the Cygwin project.
Re: (1.3.22) mount: strange 15 second delay
- From: Rolf Campbell <rcampbell at tropicnetworks dot com>
- To: cygwin at cygwin dot com
- Date: Thu, 17 Apr 2003 23:02:28 -0400
- Subject: Re: (1.3.22) mount: strange 15 second delay
- References: <b7ndcb$1pq$1@main.gmane.org> <20030418001208.GC18611@redhat.com>
- Reply-to: IDontLikePersonalReplies at hotmail dot com
Christopher Faylor wrote:
On Thu, Apr 17, 2003 at 07:30:00PM -0400, Rolf Campbell wrote:
I straced it (and the problem went away) so, I straced 'bash -c mount'
and the problem came back. The relavent portion of the strace is:
118 4305 [main] mount 2388 normalize_posix_path: src /dev/pipew
87 4392 [main] mount 2388 normalize_posix_path: /dev/pipew =
normalize_posix_path (/dev/pipew)
113 4505 [main] mount 2388 mount_info::conv_to_win32_path:
conv_to_win32_path (/dev/pipew)
113 4618 [main] mount 2388 mount_info::conv_to_win32_path:
src_path /dev/pipew, dst \dev\pipew, flags 0x2, rc 0
90 4708 [main] mount 2388 fhandler_base::fstat: here
100 4808 [main] mount 2388 fstat64: 0 = fstat (1, 0x22E8E0)
11282054 11286862 [main] mount 2388 writev: writev (1, 0x22FDE0, 1)
257 11287119 [main] mount 2388 fhandler_base::write: binary write
125 11287244 [main] mount 2388 fhandler_base::write: 399 = write
(0xA0403D8, 399)
90 11287334 [main] mount 2388 writev: 399 = write (1, 0x22FDE0, 1),
errno 0
91 11287425 [main] mount 2388 do_exit: do_exit (0)
The 'writev' takes 11.2 seconds to complete. Could somebody give me a
hint what is going on here?
The timestamp isn't time to complete. It's time since last timestamp.
So something between fstat and writev took 11282054 microseconds.
Ok, I recompiled the mount.exe program with -ggdb. The delay was in on
line 382. The last call to getmntent (the one that returns NULL) is the
one that takes > 10 seconds.
Was hoping that this would spark a thought in someone. I'll start
trying to get a debug cygwin load building to test further.
374:static void
375:show_mounts (void)
376:{
377: FILE *m = setmntent ("/-not-used-", "r");
378: struct mntent *p;
379: const char *format = "%s on %s type %s (%s)\n";
380:
381: // printf (format, "Device", "Directory", "Type", "Flags");
382: while ((p = getmntent (m)) != NULL)
383: printf (format, p->mnt_fsname, p->mnt_dir, p->mnt_type,
p->mnt_opts);
384: endmntent (m);
385:}
--
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/