Re: Why is stat slow?

Christian Franke via Cygwin <[email protected]>
Newsgroups gmane.os.cygwin
Message-ID <[email protected]>
Eliot Moss via Cygwin wrote:
> I'm sure this has been asked before, more than once, but I am again 
> wondering
> what, specifically, makes stat (the program, but presumably also the 
> syscall)
> substantially slower on Cygwin compared to stat on WSL2.  I am talking 
> about
> an external HDD (not solid state) on my D: drive.  It shows under WSL 
> 2 as
> /mnt/d like this (output of mount):
>
> D:\ on /mnt/d type 9p 
> (rw,noatime,aname=drvfs;path=D:\;uid=0;gid=0;symlinkroot=/mnt/,cache=5,access=client,msize=65536,trans=fd,rfd=5,wfd=5)
>
> On Cygwin it shows up like this (yes, mount shows two lines):
>
> D: on /cygdrive/d type ntfs (binary,notexec,posix=0,user)
> D: on /cygdrive/d type ntfs (binary,noacl,posix=0,user,noumount,auto)
>
> My /etc/fstab lines are:
>
> none /cygdrive cygdrive binary,noacl,posix=0,user 0 0
> d: /cygdrive/d ntfs binary,posix=0,user,auto,notexec 0 0

In the past, Cygwin did not support individual options for some 
/cygdrive/X. If this is still the case, "noacl" without "notexec" is 
effective for /cygdrive/d. Then Cygwin reads the header of each file to 
check for a possible "x" permission.


>
> (Presumably this has something to do with two mounts showing ...)
>
> On D; I have a folder with hundreds of 2Gb files (they are backups, 
> split into
> 2Gb portions).  On Cygwin
>
> time stat <the files> gives
>
> real    2m12.425s
> user    0m0.249s
> sys     0m1.312s
>

This would explain this long duration.

Quick test:

$ echo '#!/bin/sh' > /cygdrive/d/script.tmp
$ ls -l /cygdrive/d/script.tmp
-rwxr-xr-x .... <== notexec unset
-rw-r--r-- .... <== notexec set


-- 
Regards,
Christian


-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.