Cygwin with noacl mount - any way to improve performance?

0

Since I didn't want Cygwin trying to interpret and work with NTFS/Windows ACL, I mounted /cygdrive with the noacl parameter, as suggested here.

The problem is, when Cygwin mounts an NTFS drive in noacl mode (more details here and here), when checking the permissions of a file, and to check if a file has the executable bit set (which does not exist in Windows, but Cygwin wants to know), it does the following:

  • Check if file is of a known executable type (exe, bat, ...) (if so: mark executable)
  • Check if first few bytes of file signify something that should be executable (#!, ...) (if so: mark as executable)
  • If none of the above: not executable

The reason I noticed this is that I often run an rsync job from Windows to a Linux server on a huge folder with lots of mp3 files. If I mark my cygdrive with noacl, this rsync takes ten times as long, presumably because it's opening all the files to see if they are executable.

Now - is there any way to stop this behaviour, while still having the benefit of the noacl mount (no weird permission errors when moving from/to CygwinWorld to WindowsWorld) ?

For referenc, I tried the same with Ubuntu on WSL, and that doesn't have this behaviour. I suppose because Microsoft handles the filesystem properties more gracefully than Cygwin's rather hackish check.

But I like Cygwin and my current toolset is built around that, so I'd like to see if I can fix this :)

Jeroen Baert

Posted 2019-05-10T13:36:58.017

Reputation: 485

No answers