On Dec 7 19:53, Corinna Vinschen via Cygwin wrote: > On Dec 7 18:02, Lavrentiev, Anton (NIH/NLM/NCBI) [C] via Cygwin wrote: > > Thank you for your prompt reply! > > > > > TRIM is only enabled on a filesystem, if the underlying drive > > > actually supports TRIM. The majority of SSDs support it, but not > > > necessarily all SSDs. > > > > > > The above values, in particular SSINFO_FLAGS_NO_SEEK_PENALTY being > > > FALSE, indicate that your drive is actually not an SSD, but a rotating > > > harddisk, or it's an SSD which fakes to be a rotating harddisk. > > > > Well, I don't have any rotating HHDs in my computer. 4 of my SSDs report > > this: > > > > TRIM Command: Supported (Deterministic Read After TRIM, Words = 0) > > > > and the last one (an older drive, indeed) report this: > > > > TRIM Command: Supported (Indeterminate Read After TRIM) > > > > But my C: drive (where Cygwin is installed) is a newer drive (one of those > > 4). > > > > That's odd. > > Yes, it is. But getVolInfo can only print what it gets from the OS, > so I don't see what could be changed ¯\_(ツ)_/¯
Btw., I took the opportunity trying to implement the Linux FITRIM ioctl. FTR, it works, kind of. The problem is this: - In Linux, ioctl(FITRIM) only works on filesystem descriptors (e.g., /dev/sda1). When trying to call ioctl(FITRIM) on file descriptors (e.g. /tmp/foo), the ioctl returns -1 with errno set to EOPNOTSUPP. - In Windows, DeviceIoControl(FSCTL_FILE_LEVEL_TRIM) works on files handles. It fails with ERROR_INVALID_ARGUMENT when called on filesystem handles. So the usage patterns are mutually exclusive. Additionally I found that DeviceIoControl(FSCTL_FILE_LEVEL_TRIM) can fail with ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED even if SSINFO_FLAGS_TRIM_ENABLED is TRUE, in my case with NTFS on the file-backed virtual drive used from a Win11 VM. This is soooo frustrating :((( Corinna -- 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