On 12/03/14 21:02, Jef Driesen wrote:
On 2014-03-12 01:20, Hamish Moffatt wrote:
On 12/03/14 10:57, Linus Torvalds wrote:
Sounds like some other timing difference between Linux and Windows. Maybe Jef can make sense to the logs (and do you have logs with timing from windows for Jef to compare?)
Here's a log from Windows. There appears to be a whole lot less timing precision so it's a bit hard to compare, other than noting the absence of NAKs from the VT3.
That's due to the limited precision (in the order of several tens of milliseconds) of the Windows GetTickCount() function. Try with the attached patch instead, which uses the QueryPerformanceCounter() function instead. That's the same function I'm using for the half-duplex timing. There is a pre-build binary here:
http://www.libdivecomputer.org/builds/experimental/windows/universal-timings...
There seems to be a heap of read-write turnaround; there's 14ms+ in some of the early commands although it's as low as 1.5ms later. But there's 100ms sleeps after each read too - that's not in the regular build though?
[0.000026] DATETIME 2014-03-12T11:54:45Z (1394625285) [0.001183] VERSION 0.5.0-devel (a712c8781d0e2065f6e9b7768286546c9495defe) [0.001591] Opening the device (Oceanic VT3, COM3). [0.003046] INFO: Open: name=COM3 [0.042081] INFO: Configure: baudrate=38400, databits=8, parity=0, stopbits=1, flowcontrol=0 [0.047021] INFO: Timeout: value=3000 [0.047352] INFO: Sleep: value=100 [0.147300] INFO: Flush: queue=3, input=0, output=0 [0.147716] INFO: Sleep: value=100 [0.247408] INFO: Write: size=2, data=8400 [0.258620] INFO: Read: size=1, data=5A [0.258969] INFO: Read: size=17, data=4F43452056543320523244203531324BBF [0.259722] Registering the event handler. [0.259994] Registering the cancellation handler. [0.260253] Downloading the memory dump. [0.260571] Event: vendor=4F43452056543320523244203531324B [0.263368] Event: progress 0.00% (0/65536) [0.263657] INFO: Sleep: value=100 [0.357385] INFO: Write: size=4, data=B1000000 [0.370210] INFO: Read: size=1, data=5A [0.370630] INFO: Read: size=17, data=0416041120081001425800730000000075 [0.370905] Event: progress 0.02% (16/65536) [0.371204] INFO: Sleep: value=100 [0.467360] INFO: Write: size=4, data=B1000100 [0.481764] INFO: Read: size=1, data=5A [0.482221] INFO: Read: size=17, data=6701DA064204E506E206DC06FF0FAAFBF6 [0.482495] Event: progress 0.05% (32/65536) [0.482800] INFO: Sleep: value=100 [0.578330] INFO: Write: size=4, data=B1000200 [0.593307] INFO: Read: size=1, data=5A [0.593706] INFO: Read: size=17, data=0000DC06FF0FDC06FF0F00000000AA8A14 [0.593974] Event: progress 0.07% (48/65536) [0.594252] INFO: Sleep: value=100 [0.687366] INFO: Write: size=4, data=B1000300 [0.688852] INFO: Read: size=1, data=5A [0.704842] INFO: Read: size=17, data=890E370D00011B0B670542053250AAE1C2 [0.705245] Event: progress 0.10% (64/65536) [0.705642] INFO: Sleep: value=100 [0.797355] INFO: Write: size=4, data=B1000400 [0.800413] INFO: Read: size=1, data=5A [0.816394] INFO: Read: size=17, data=300220028003500530BEB0BB0000000085 [0.816772] Event: progress 0.12% (80/65536) [0.817042] INFO: Sleep: value=100 [0.917352] INFO: Write: size=4, data=B1000500 [0.927884] INFO: Read: size=1, data=5A [0.943845] INFO: Read: size=17, data=A014000300002C01980805A0022100024E [0.944209] Event: progress 0.15% (96/65536) [0.944489] INFO: Sleep: value=100 [1.037353] INFO: Write: size=4, data=B1000600 [1.039431] INFO: Read: size=1, data=5A [1.055386] INFO: Read: size=17, data=3899000099003102E9050400000000008F [1.055728] Event: progress 0.17% (112/65536) [1.056009] INFO: Sleep: value=100 [1.147369] INFO: Write: size=4, data=B1000700 [1.151004] INFO: Read: size=1, data=5A [1.166952] INFO: Read: size=17, data=0906290000000000003C00000100000277 [1.167412] Event: progress 0.20% (128/65536) [1.167836] INFO: Sleep: value=100 [1.267344] INFO: Write: size=4, data=B1000800 [1.278484] INFO: Read: size=1, data=5A [1.294425] INFO: Read: size=17, data=A9A6C9AAAAAAAAAAAA0000000000000014 [1.294795] Event: progress 0.22% (144/65536) [1.295084] INFO: Sleep: value=100 [1.387361] INFO: Write: size=4, data=B1000900 [1.390006] INFO: Read: size=1, data=5A [1.406022] INFO: Read: size=17, data=6400000300001400980805A00251000215 [1.406352] Event: progress 0.24% (160/65536) [1.406627] INFO: Sleep: value=100 [1.497361] INFO: Write: size=4, data=B1000A00 [1.501549] INFO: Read: size=1, data=5A [1.517551] INFO: Read: size=17, data=0000000000000000000000000000000000 [1.517983] Event: progress 0.27% (176/65536) [1.518277] INFO: Sleep: value=100 [1.617345] INFO: Write: size=4, data=B1000B00 [1.629113] INFO: Read: size=1, data=5A [1.645030] INFO: Read: size=17, data=42056EA46350460014AA1001438348204F [1.645387] Event: progress 0.29% (192/65536) [1.645664] INFO: Sleep: value=100 [1.737342] INFO: Write: size=4, data=B1000C00 [1.740598] INFO: Read: size=1, data=5A [1.756554] INFO: Read: size=17, data=43142CA56F40510015AA541324064720DF [1.756894] Event: progress 0.32% (208/65536) [1.757172] INFO: Sleep: value=100 [1.857351] INFO: Write: size=4, data=B1000D00 [1.868105] INFO: Read: size=1, data=5A [1.884047] INFO: Read: size=17, data=4414FEA35D40450015AA240440114D2080 [1.886750] Event: progress 0.34% (224/65536) [1.887110] INFO: Sleep: value=100 [1.987360] INFO: Write: size=4, data=B1000E00 [1.995558] INFO: Read: size=1, data=5A [2.011552] INFO: Read: size=17, data=4524B9A46840450015AA530119824B20CC [2.011982] Event: progress 0.37% (240/65536) [2.012347] INFO: Sleep: value=100 [2.108153] INFO: Write: size=4, data=B1000F00 [2.123131] INFO: Read: size=1, data=5A [2.123521] INFO: Read: size=17, data=4624FEA35D40470015AA080113844920B7 [2.123794] Event: progress 0.39% (256/65536) [2.124093] INFO: Sleep: value=100
Hamish