usb/81621: external hd hangs under load on ehci

Rojer myself at rojer.pp.ru
Wed Jun 15 23:20:08 GMT 2005


The following reply was made to PR usb/81621; it has been noted by GNATS.

From: Rojer <myself at rojer.pp.ru>
To: bug-followup at FreeBSD.org,  gerrit at pmp.uni-hannover.de
Cc:  
Subject: Re: usb/81621: external hd hangs under load on ehci
Date: Thu, 16 Jun 2005 03:12:20 +0400

 This is a cryptographically signed message in MIME format.
 
 --------------ms070408050607000308000506
 Content-Type: text/plain; charset=KOI8-R; format=flowed
 Content-Transfer-Encoding: 7bit
 
 same situation here.
 
 ehci, transfers stalls for about a minute, then resumes, then stalls again...
 finishes successfully, no errors.
 
 additional observations:
 
 1) the stall usually lasts about a minute.
 
 2) it happens when accessing the device through filesystem (msdosfs in this case),
     it never happens when accessing the device directly and sequentially, e.g.:
 # dd if=/dev/da0 of=/ftp/misc/ZZ bs=64k
 ^C49369+0 records in
 49368+0 records out
 3235381248 bytes transferred in 295.937268 secs (10932659 bytes/sec)
 
 (the speed is bound mainly by the device itself in this case.)
 
 # dd if=/mnt/IHP/testfile of=/dev/null bs=64k
 load: 0.02  cmd: dd 2692 [getblk] 0.01u 3.26s 0% 712k
 11171+0 records in
 11171+0 records out
 732102656 bytes transferred in 94.251015 secs (7767584 bytes/sec)
 load: 0.01  cmd: dd 2692 [getblk] 0.01u 3.38s 0% 712k
 load: 0.01  cmd: dd 2692 [getblk] 0.01u 3.38s 0% 712k
 load: 0.01  cmd: dd 2692 [getblk] 0.01u 3.38s 0% 712k
 11562+0 records in
 11562+0 records out
 757727232 bytes transferred in 162.903896 secs (4651376 bytes/sec)
 load: 0.08  cmd: dd 2692 [getblk] 0.01u 3.94s 0% 712k
 13478+0 records in
 13478+0 records out
 883294208 bytes transferred in 178.969938 secs (4935433 bytes/sec)
 load: 0.12  cmd: dd 2692 [getblk] 0.01u 4.55s 0% 712k
 load: 0.10  cmd: dd 2692 [getblk] 0.01u 4.55s 0% 712k
 load: 0.07  cmd: dd 2692 [getblk] 0.01u 4.55s 0% 712k
 load: 0.05  cmd: dd 2692 [getblk] 0.01u 4.55s 0% 712k
 15527+0 records in
 15527+0 records out
 1017577472 bytes transferred in 261.654513 secs (3889012 bytes/sec)
 16383+1 records in
 16383+1 records out
 1073739776 bytes transferred in 268.807717 secs (3994453 bytes/sec)
 
 msdosfs cuts speed significantly (down to 7767584 bytes/sec) but that's bearably,
 only if the transfer wouldn't stall completely shortly after.
 
 3) it never happens when writing to the device.
 
 # dd if=/dev/zero of=/mnt/IHP/testfile bs=64k count=16383
 16383+0 records in
 16383+0 records out
 1073676288 bytes transferred in 166.050668 secs (6465956 bytes/sec)
 # dd if=/dev/zero of=/mnt/IHP/testfile2 bs=64k count=16383
 16383+0 records in
 16383+0 records out
 1073676288 bytes transferred in 166.053733 secs (6465836 bytes/sec)
 
 the speed is low, but no stalls during transfer.
 
 4) i have tried turning on various debug options. all in all,
 i couldn't catch the moment transfer freezes - due to massive amounts of debug output
 produced during transfer, the system is crawling and the stall just never happens.
 however, with "camcontrol debug -ST all" turned on during the stall, the first few messages
 of debug output look like these:
 
 Jun 16 03:01:18 gw kernel: (xpt0:xpt0:0:-1:-1): debugging flags now 6
 Jun 16 03:01:18 gw kernel: (xpt0:xpt0:0:-1:-1): xpt_free_path
 Jun 16 03:01:18 gw kernel: (xpt0:xpt0:0:-1:-1): xpt_release_path
 ...
 Jun 16 03:02:14 gw kernel: (da0:umass-sim0:0:0:0): xpt_done
 Jun 16 03:02:14 gw kernel: (da0:umass-sim0:0:0:0): camisr
 Jun 16 03:02:14 gw kernel: (da0:umass-sim0:0:0:0): xpt_action
 Jun 16 03:02:15 gw kernel: (da0:umass-sim0:0:0:0): xpt_done
 Jun 16 03:02:15 gw kernel: (da0:umass-sim0:0:0:0): camisr
 Jun 16 03:02:15 gw kernel: (da0:umass-sim0:0:0:0): xpt_schedule
 Jun 16 03:02:15 gw kernel: (da0:umass-sim0:0:0:0):    added periph to queue
 Jun 16 03:02:15 gw kernel: (da0:umass-sim0:0:0:0):    calling xpt_run_devq
 Jun 16 03:02:15 gw kernel: (da0:umass-sim0:0:0:0): xpt_setup_ccb
 ...
 
 and with hw.usb.debug=0x00020000:
 
 Jun 16 01:58:36 gw kernel: usb_add_task: task=0xc195346c
 Jun 16 01:58:36 gw kernel: usb_task_thread: woke up task=0xc195346c
 Jun 16 01:58:36 gw kernel: usb_schedsoftintr: polling=0
 Jun 16 01:58:36 gw kernel: usb_transfer_complete: pipe=0xc1960280 xfer=0xc1953400 status=15 actlen=0
 Jun 16 01:58:36 gw kernel: usb_freemem: large free
 Jun 16 01:58:36 gw kernel: usb_block_freemem: size=8192
 Jun 16 01:58:36 gw kernel: usb_transfer_complete: repeat=0 new head=0
 Jun 16 01:58:36 gw kernel: usbd_transfer: xfer=0xc1926e00, flags=0, pipe=0xc1960780, running=0
 ...
 
 
 given these observations, i suppose that this might not be usb problem after all,
 rather msdosfs or buffer management code could cause this behavior.
 
 what else can i do to track this problem further?
 
 -- 
 Deomid Ryabkov aka Rojer
 myself at rojer.pp.ru
 rojer at sysadmins.ru
 ICQ: 8025844
 
 --------------ms070408050607000308000506
 Content-Type: application/x-pkcs7-signature; name="smime.p7s"
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment; filename="smime.p7s"
 Content-Description: S/MIME Cryptographic Signature
 
 MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJIzCC
 AuwwggJVoAMCAQICAw5jHTANBgkqhkiG9w0BAQQFADBiMQswCQYDVQQGEwJaQTElMCMGA1UE
 ChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNv
 bmFsIEZyZWVtYWlsIElzc3VpbmcgQ0EwHhcNMDUwNDAxMDkwNjQzWhcNMDYwNDAxMDkwNjQz
 WjBfMRAwDgYDVQQEEwdSeWFia292MQ8wDQYDVQQqEwZEZW9taWQxFzAVBgNVBAMTDkRlb21p
 ZCBSeWFia292MSEwHwYJKoZIhvcNAQkBFhJteXNlbGZAcm9qZXIucHAucnUwggEiMA0GCSqG
 SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEKoweumUc1/YHtlscU5xKozcKOd3lLyAZ1SM3rZvn
 iJ9VAuj9TafODcu+SoJ6sU+Crshl2Nkq/oCs6dynEqyn/jZxGm/mEYxJ+KekBQceLejdFktQ
 rOuXmjLpipESMO7w1amFn6w3pJgWXex2mcN6hcET2cUdSHjSYxLUXKCQTtzJbcPEHZ+vgEq9
 1TA4UcFeZ3d1Ax6q2A2Fs/wvFxtLUC46fq80R7lOxsJA6mxKNOJnbZTCqf8sWF5SyEnNBBj0
 yyIHfKl+iMwsqSESg5hc0l9/m6aLV24KtKtvWIEu3RQXflc380xZanF4gvAq8/NADlfEH4Rx
 SpNOJdgxZga1AgMBAAGjLzAtMB0GA1UdEQQWMBSBEm15c2VsZkByb2plci5wcC5ydTAMBgNV
 HRMBAf8EAjAAMA0GCSqGSIb3DQEBBAUAA4GBAEaynMcbL7KaxmVMfJWXD7X4ftDolZ2CpPPN
 yoVJAIXaIHpI0JuiCnQSZivL6BvtYUNyzNAR6ceh87yWoQEJxw1cV2IgUlQ+Z3/+7brumNdb
 YwCuf3C/LlamOP5zpHDOH1euXLJe8664lC5lIaf70yO6jN7LXHwBNs73qyB7tvY/MIIC7DCC
 AlWgAwIBAgIDDmMdMA0GCSqGSIb3DQEBBAUAMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxU
 aGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwg
 RnJlZW1haWwgSXNzdWluZyBDQTAeFw0wNTA0MDEwOTA2NDNaFw0wNjA0MDEwOTA2NDNaMF8x
 EDAOBgNVBAQTB1J5YWJrb3YxDzANBgNVBCoTBkRlb21pZDEXMBUGA1UEAxMORGVvbWlkIFJ5
 YWJrb3YxITAfBgkqhkiG9w0BCQEWEm15c2VsZkByb2plci5wcC5ydTCCASIwDQYJKoZIhvcN
 AQEBBQADggEPADCCAQoCggEBAMQqjB66ZRzX9ge2WxxTnEqjNwo53eUvIBnVIzetm+eIn1UC
 6P1Np84Ny75KgnqxT4KuyGXY2Sr+gKzp3KcSrKf+NnEab+YRjEn4p6QFBx4t6N0WS1Cs65ea
 MumKkRIw7vDVqYWfrDekmBZd7HaZw3qFwRPZxR1IeNJjEtRcoJBO3Mltw8Qdn6+ASr3VMDhR
 wV5nd3UDHqrYDYWz/C8XG0tQLjp+rzRHuU7GwkDqbEo04mdtlMKp/yxYXlLISc0EGPTLIgd8
 qX6IzCypIRKDmFzSX3+bpotXbgq0q29YgS7dFBd+VzfzTFlqcXiC8Crz80AOV8QfhHFKk04l
 2DFmBrUCAwEAAaMvMC0wHQYDVR0RBBYwFIESbXlzZWxmQHJvamVyLnBwLnJ1MAwGA1UdEwEB
 /wQCMAAwDQYJKoZIhvcNAQEEBQADgYEARrKcxxsvsprGZUx8lZcPtfh+0OiVnYKk883KhUkA
 hdogekjQm6IKdBJmK8voG+1hQ3LM0BHpx6HzvJahAQnHDVxXYiBSVD5nf/7tuu6Y11tjAK5/
 cL8uVqY4/nOkcM4fV65csl7zrriULmUhp/vTI7qM3stcfAE2zverIHu29j8wggM/MIICqKAD
 AgECAgENMA0GCSqGSIb3DQEBBQUAMIHRMQswCQYDVQQGEwJaQTEVMBMGA1UECBMMV2VzdGVy
 biBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAYBgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5n
 MSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMSQwIgYDVQQDExtU
 aGF3dGUgUGVyc29uYWwgRnJlZW1haWwgQ0ExKzApBgkqhkiG9w0BCQEWHHBlcnNvbmFsLWZy
 ZWVtYWlsQHRoYXd0ZS5jb20wHhcNMDMwNzE3MDAwMDAwWhcNMTMwNzE2MjM1OTU5WjBiMQsw
 CQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoG
 A1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIElzc3VpbmcgQ0EwgZ8wDQYJKoZIhvcN
 AQEBBQADgY0AMIGJAoGBAMSmPFVzVftOucqZWh5owHUEcJ3f6f+jHuy9zfVb8hp2vX8MOmHy
 v1HOAdTlUAow1wJjWiyJFXCO3cnwK4Vaqj9xVsuvPAsH5/EfkTYkKhPPK9Xzgnc9A74r/rsY
 Pge/QIACZNenprufZdHFKlSFD0gEf6e20TxhBEAeZBlyYLf7AgMBAAGjgZQwgZEwEgYDVR0T
 AQH/BAgwBgEB/wIBADBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3JsLnRoYXd0ZS5jb20v
 VGhhd3RlUGVyc29uYWxGcmVlbWFpbENBLmNybDALBgNVHQ8EBAMCAQYwKQYDVR0RBCIwIKQe
 MBwxGjAYBgNVBAMTEVByaXZhdGVMYWJlbDItMTM4MA0GCSqGSIb3DQEBBQUAA4GBAEiM0VCD
 6gsuzA2jZqxnD3+vrL7CF6FDlpSdf0whuPg2H6otnzYvwPQcUCCTcDz9reFhYsPZOhl+hLGZ
 GwDFGguCdJ4lUJRix9sncVcljd2pnDmOjCBPZV+V2vf3h9bGCE6u9uo05RAaWzVNd+NWIXiC
 3CEZNd4ksdMdRv9dX2VPMYIDOzCCAzcCAQEwaTBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMc
 VGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFs
 IEZyZWVtYWlsIElzc3VpbmcgQ0ECAw5jHTAJBgUrDgMCGgUAoIIBpzAYBgkqhkiG9w0BCQMx
 CwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wNTA2MTUyMzEyMjBaMCMGCSqGSIb3DQEJ
 BDEWBBQWw6nac5k7nfKsrGaUjO2ksD3uNTBSBgkqhkiG9w0BCQ8xRTBDMAoGCCqGSIb3DQMH
 MA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIBQDAHBgUrDgMCBzANBggqhkiG9w0DAgIB
 KDB4BgkrBgEEAYI3EAQxazBpMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29u
 c3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwg
 SXNzdWluZyBDQQIDDmMdMHoGCyqGSIb3DQEJEAILMWugaTBiMQswCQYDVQQGEwJaQTElMCMG
 A1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBl
 cnNvbmFsIEZyZWVtYWlsIElzc3VpbmcgQ0ECAw5jHTANBgkqhkiG9w0BAQEFAASCAQA8obxt
 M9KEo78Kz8CjL1KvG13t+RrBeueiBXEa1uTFtw3V7BLVlaBmdhyxFKdrvdTfulmJtca05uHb
 ufF3aLCXLEC7gS3ki5q9p8LFahXXdUclmUSN8DFwVcs51j04dH5/hks8jqLWD+zhK1l8TjFG
 d9InM4NSpnhEAoOGRS5EXIEcA359rma6/6PTqdjw9H5FH3tSXkCJMqh2xtiTGFpbGB/9xyHC
 bo21LknXTaSOENo6QSVmV7AgnDOjsi2kernYRTV0nZeJDpf0ffZ12FvnFMKC0A8yFL7nQLJA
 uRsU1oC4wpRRUX3oII8tTJ86pRbVowmZM2F/lJW9Wn0+bMCzAAAAAAAA
 --------------ms070408050607000308000506--


More information about the freebsd-usb mailing list