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