X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-0.1 required=5.0 tests=AWL,BAYES_00,TW_RW,TW_WX,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Message-ID: <4F741D18.4010802@onevision.de> Date: Thu, 29 Mar 2012 10:28:08 +0200 From: Roland Schwingel User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Problems with Cygwin on SSD Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=ISO-8859-15; format=flowed X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Hi... Recently I bought an SSD (OCZ Vertex 3 120GB). I hoped to improve performance together with cygwin. But some strange and unexpected things happen. My Setup: Dell Optiplex 980. Core i5-760. 4 GB Ram. Windows 7 SP1 64bit. A 500GB WDC WD5000AAKS harddrive and the new SSD. Windows 7 installed on SSD. Cygwin 1.7.11 - up to date in all packages. Installed on drive D: (HD) and on drive H: (SSD). The SSD is a SATA III drive while my machine is only having SATA II, so I am loosing some speed here but the SSD is in normal windows operations still hell faster than the HD. I am also getting the maximum performance which SATA II can deliver according to some benchmark tools. The SSD is formatted to use 4k sectors. I also did a test with 512byte sectors where I loose performance on write but the problems do not change. I also copied the cygwin installation manually from D: to H: which made no difference. The 2 problem(s) as of now: a) no permissions When I am having cygwin installed on the SSD I have no permissions on cygwin's files. On none of them. Example /bin/bash Cygwin on HD: $stat /bin/bash File: `/bin/bash' Size: 536078 Blocks: 524 IO Block: 65536 regular file Device: 48f3fa60h/1223948896d Inode: 1125899907057137 Links: 1 Access: (0755/-rwxr-xr-x) Uid: (11000/ roland) Gid: (11001/ develop) Access: 2012-03-20 13:59:02.953125000 +0100 Modify: 2012-01-03 15:32:06.000000000 +0100 Change: 2012-03-28 16:59:36.216999900 +0200 Birth: 2012-03-05 13:07:35.237439800 +0100 Cygwin on SSD: $stat /bin/bash File: `/bin/bash' Size: 536078 Blocks: 524 IO Block: 65536 regular file Device: aa325caah/2855427242d Inode: 281474976710756 Links: 1 Access: (0000/----------) Uid: (11000/ roland) Gid: (11001/ develop) Access: 2012-03-29 09:19:13.486065800 +0200 Modify: 2012-01-03 15:32:06.000000000 +0100 Change: 2012-03-29 09:19:13.486065800 +0200 Birth: 2012-03-29 09:19:13.486065800 +0200 As you can see the access flags are 0 on ssd. So I straced it. Here are the (I think) relevant parts of it. HD: 2512 52868 [main] stat 3636 lstat64: entering 26 52894 [main] stat 3636 normalize_posix_path: src /bin/bash 25 52919 [main] stat 3636 normalize_posix_path: /bin/bash = normalize_posix_path (/bin/bash) 25 52944 [main] stat 3636 mount_info::conv_to_win32_path: conv_to_win32_path (/bin/bash) 25 52969 [main] stat 3636 set_flags: flags: binary (0x2) 24 52993 [main] stat 3636 mount_info::conv_to_win32_path: src_path /bin/bash, dst D:\cygwin\bin\bash, flags 0x3000A, rc 0 52 53045 [main] stat 3636 symlink_info::check: 0xC0000034 = NtCreateFile (\??\D:\cygwin\bin\bash) 30 53075 [main] stat 3636 symlink_info::check: 0xC0000034 = NtQueryInformationFile (\??\D:\cygwin\bin\bash) 45 53120 [main] stat 3636 symlink_info::check: 0x0 = NtCreateFile (\??\D:\cygwin\bin\bash.exe) 37 53157 [main] stat 3636 symlink_info::check: not a symlink 26 53183 [main] stat 3636 symlink_info::check: 0 = symlink.check(D:\cygwin\bin\bash.exe, 0x28B860) (0x43000A) 25 53208 [main] stat 3636 path_conv::check: this->path(D:\cygwin\bin\bash.exe), has_acls(1) 29 53237 [main] stat 3636 build_fh_pc: fh 0x6127435C, dev 0xC3 26 53263 [main] stat 3636 stat_worker: (\??\D:\cygwin\bin\bash.exe, 0x28CBB0, 0x6127435C), file_attributes 8224 77 53340 [main] stat 3636 cygpsid::debug_print: get_sids_info: owner SID = S-1-5-21-290147797-1639656955-1287535205-1000 27 53367 [main] stat 3636 cygpsid::debug_print: get_sids_info: group SID = S-1-5-21-290147797-1639656955-1287535205-1001 26 53393 [main] stat 3636 get_info_from_sd: ACL 1ED, uid 11000, gid 11001 47 53440 [main] stat 3636 fhandler_base::fstat_helper: 0 = fstat (\??\D:\cygwin\bin\bash.exe, 0x28CBB0) st_size=536078, st_mode=0x81ED, st_ino=1125899907057137st_atim=4F687F16.38CF8888 st_ctim=4F732758.CEF27DC st_mtim=4F031166.0 st_birthtim=4F54AC87.E270B38 31 53471 [main] stat 3636 stat_worker: 0 = (\??\D:\cygwin\bin\bash.exe,0x28CBB0) SSD: 2051 30843 [main] stat 2284 lstat64: entering 24 30867 [main] stat 2284 normalize_posix_path: src /bin/bash 18 30885 [main] stat 2284 normalize_posix_path: /bin/bash = normalize_posix_path (/bin/bash) 18 30903 [main] stat 2284 mount_info::conv_to_win32_path: conv_to_win32_path (/bin/bash) 18 30921 [main] stat 2284 set_flags: flags: binary (0x2) 17 30938 [main] stat 2284 mount_info::conv_to_win32_path: src_path /bin/bash, dst H:\cygwin\bin\bash, flags 0x3000A, rc 0 41 30979 [main] stat 2284 symlink_info::check: 0xC0000034 = NtCreateFile (\??\H:\cygwin\bin\bash) 21 31000 [main] stat 2284 symlink_info::check: 0xC0000034 = NtQueryInformationFile (\??\H:\cygwin\bin\bash) 34 31034 [main] stat 2284 symlink_info::check: 0x0 = NtCreateFile (\??\H:\cygwin\bin\bash.exe) 29 31063 [main] stat 2284 symlink_info::check: not a symlink 19 31082 [main] stat 2284 symlink_info::check: 0 = symlink.check(H:\cygwin\bin\bash.exe, 0x28B860) (0x43000A) 18 31100 [main] stat 2284 path_conv::check: this->path(H:\cygwin\bin\bash.exe), has_acls(1) 20 31120 [main] stat 2284 build_fh_pc: fh 0x612742EC, dev 0xC3 18 31138 [main] stat 2284 stat_worker: (\??\H:\cygwin\bin\bash.exe, 0x28CBB0, 0x612742EC), file_attributes 32 55 31193 [main] stat 2284 cygpsid::debug_print: get_sids_info: owner SID = S-1-5-21-290147797-1639656955-1287535205-1000 19 31212 [main] stat 2284 cygpsid::debug_print: get_sids_info: group SID = S-1-5-21-290147797-1639656955-1287535205-1001 18 31230 [main] stat 2284 get_info_from_sd: ACL 0, uid 11000, gid 11001 33 31263 [main] stat 2284 fhandler_base::fstat_helper: 0 = fstat (\??\H:\cygwin\bin\bash.exe, 0x28CBB0) st_size=536078, st_mode=0x8000, st_ino=281474976710756st_atim=4F740CF1.1CF8C688 st_ctim=4F740CF1.1CF8C688 st_mtim=4F031166.0 st_birthtim=4F740CF1.1CF8C688 22 31285 [main] stat 2284 stat_worker: 0 = (\??\H:\cygwin\bin\bash.exe,0x28CBB0) In my eyes the main differences cut down to 2 lines. HD :26 53263 [main] stat 3636 stat_worker: (\??\D:\cygwin\bin\bash.exe, 0x28CBB0, 0x6127435C), file_attributes 8224 SSD:18 31138 [main] stat 2284 stat_worker: (\??\H:\cygwin\bin\bash.exe, 0x28CBB0, 0x612742EC), file_attributes 32 The file_attributes differ HD :47 53440 [main] stat 3636 fhandler_base::fstat_helper: 0 = fstat (\??\D:\cygwin\bin\bash.exe, 0x28CBB0) st_size=536078, st_mode=0x81ED, st_ino=1125899907057137st_atim=4F687F16.38CF8888 st_ctim=4F732758.CEF27DC st_mtim=4F031166.0 st_birthtim=4F54AC87.E270B38 SSD:33 31263 [main] stat 2284 fhandler_base::fstat_helper: 0 = fstat (\??\H:\cygwin\bin\bash.exe, 0x28CBB0) st_size=536078, st_mode=0x8000, st_ino=281474976710756st_atim=4F740CF1.1CF8C688 st_ctim=4F740CF1.1CF8C688 st_mtim=4F031166.0 st_birthtim=4F740CF1.1CF8C688 st_mode differs Beside of that cygwin appears to operate normally (as far as I can tell as of now). b) speed I did a small testdrive with compiling the gdb sources as of tonight. I extracted them to /tmp on each of the installations. HD: $time ./configure real 0m16.630s user 0m5.407s sys 0m7.815s $time make -j 4 real 4m55.995s user 4m27.627s sys 4m0.979s SSD: $time ./configure real 0m17.628s user 0m5.333s sys 0m9.970s $time make -j 4 real 5m27.127s user 4m29.529s sys 4m45.653s ???? Not exactly the speed I hoped to get. The compile on SSD is even slower than on HD. I did the same compile test using an old whacky mingw/msys and I could see at least a speed increase of about 15%. Any clues where these problems could come from? Thanks, Roland -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple