This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: (1.3.22) mount: strange 15 second delay


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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]