| Re: [hatari-devel] Cycle exact setting affects nf_scsidrv | 
[ Thread Index | 
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
] 
- To: hatari-devel@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [hatari-devel] Cycle exact setting affects nf_scsidrv
- From: Uwe Seimet <Uwe.Seimet@xxxxxxxxx>
- Date: Thu, 11 Oct 2018 10:29:34 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1539246574;	s=strato-dkim-0002; d=seimet.de;	h=In-Reply-To:References:Message-ID:Subject:To:From:Date:	X-RZG-CLASS-ID:X-RZG-AUTH:From:Subject:Sender;	bh=QOqjsm64EKBd4XR4sIZjyLEl7f+noCAMQ0eXPQ0vUtQ=;	b=T/6WeC3dwb3O2chd/N9Agf29q7ebMiLIXxfumTPicYzP8RM5u0QoSL9rgfLs6H3Omm	vyrjI/h9XLr9kfk4V5jkkkeiAkj9Mz/+aDNu1f9uC3Dx7ahWEt48ZBwTL9zq/nip7qvj	FAaadv0pQkGb0HzziYIK9VFh5TY3Q9L0a3p5SBlh4eTYKh8xFZZ+zOrEWq0mjTM+whU+	0ySkUZL5QGzYyK07w/lXiAO3zQ95LHpYzJJS0RJSq/Ekha4+Ei6PPGK/PRN1p8auRfFp	EWtxNq1LvfpvDXVfJNEHOiJ4CCAXbl0a04G4Eq1tdtfMDWtX2uIABFwwCdW2kqrXT2xD	4H+w==
Hi,
Some more information: There is the same problem when I enable prefetch
instead of cycle exact. With one of these options enabled, the first time
when I start HDDRUTIL after resetting, parts of the data provided by
nf_scsidrv.c (in particular the device names) are incomplete.
Looks as if both options have something in common that causes this.
Best regards
Uwe
> Hi,
> 
> Yet another thread I'm afraid, related to the Cycle exact setting. With
> this setting disabled and the SCSI Driver for Linux installed SDRVTEST (see 
> https://www.hddriver.net/en/downloads.html) the result is the attached
> logfile SDRVTEST.L1. Now I press F12, enable Cycle exact and restart
> Hatari. When running SDRVTEST again the output is broken, see attached
> SDRVTEST.L2. Now I press F12 again, disabled Cacle exact, restart and
> run SDRVTEST once more. This time the output is correct again.
> 
> This means that the Cycle exact setting either influences the code
> execution of the native scsidrv_inout method in nf_scsidrv.c, or the
> emulated code of NF_SCSI (also see https://www.hddriver.net/en/downloads.html)
> behaves differently. I observe the same behavior with the Hatari 2.1.0
> release version.
> 
> When launching HDDRUTIL the effect is similar: The device names are
> incomplete, as if some of the data did not make it from the native part
> into the emulated part of the code.
> 
> When I double-check with Aranym, where essentially the same native SCSI
> Driver code and exactly the same emulated NF_SCSI code is running,
> everything is fine. Only on Hatari with Cycle exact enabled the results
> are not correct.
> 
> Best regards
> 
> Uwe
> SCSI Driver test V1.35
> ? 2014-2018 Uwe Seimet
> 
> Found SCSI Driver version 1.01
> 
> Buses:
>   ID: 0, Name: 'Atari ACSI', Maximum transfer length: 65536 ($10000)
>   ID: 1, Name: 'Atari SCSI', Maximum transfer length: 268435456 ($10000000)
>   ID: 31, Name: 'Linux Generic SCSI', Maximum transfer length: 65536 ($10000)
> 
> Testing bus 'Linux Generic SCSI', device ID 0
>   CheckDev()
>     Checking with illegal bus ID
>     Checking with legal bus ID
>   Open/Close()
>     Available handles: 32
>   TEST UNIT READY
>   INQUIRY
>     Calling with legal data
>       Device type: Direct Access
>       Device name: 'ATA     Samsung SSD 840 '
>       Firmware revision: '6B0Q'
>       SCSI/SPC version: SPC-3
>       Additional length: $5B
>     Calling with non-existing LUN 7
>     ERROR: Call failed: 2
>   REQUEST SENSE
>     Calling REQUEST SENSE for existing LUN 0
>       Additional sense length: $02
>       ERROR: Additional sense length must be at least $0A
>     Calling REQUEST SENSE for non-existing LUN 7
>     ERROR: Call failed: 2
>     ERROR: Call was not properly rejected
>       Expected: SenseKey $05 ($00), ASC $25 ($00)
>     Calling REQUEST SENSE again for existing LUN 0
>   READ CAPACITY
>     Reading capacity with READ CAPACITY (10)
>       Maximum block number: 500118191
>       Block size: 512
>     Reading capacity with READ CAPACITY (16)
>       Maximum block number hi: 0, maximum block number lo: 500118191
>       Maximum block number: 500118191
>       Block size: 512
>       Logical sectors per physical sector: Unknown
>     Reading last block (500118191)
>     Trying to read last block + 1 (500118192)
>   READ
>     Reading block 0 with READ (6)
>     Reading block 0 with READ (10)
>     Reading block 0 with READ (12)
>       READ (12) is not supported
>     Reading block 0 with READ (16)
>     Trying to read block 281474976710656 with READ (16)
>     Reading block 0 to odd address with READ (6)
>     Reading block 0 from non-existing LUN 7
>   REPORT LUNS
>     Number of LUNs: 1
>       List of LUNs: 0
> OK
> 
> Testing bus 'Linux Generic SCSI', device ID 1
>   CheckDev()
>     Checking with illegal bus ID
>     Checking with legal bus ID
>   Open/Close()
>     Available handles: 32
>   TEST UNIT READY
>   INQUIRY
>     Calling with legal data
>       Device type: Direct Access
>       Device name: 'ATA     Samsung SSD 850 '
>       Firmware revision: '2B6Q'
>       SCSI/SPC version: SPC-3
>       Additional length: $5B
>     Calling with non-existing LUN 7
>     ERROR: Call failed: 2
>   REQUEST SENSE
>     Calling REQUEST SENSE for existing LUN 0
>       Additional sense length: $02
>       ERROR: Additional sense length must be at least $0A
>     Calling REQUEST SENSE for non-existing LUN 7
>     ERROR: Call failed: 2
>     ERROR: Call was not properly rejected
>       Expected: SenseKey $05 ($00), ASC $25 ($00)
>     Calling REQUEST SENSE again for existing LUN 0
>   READ CAPACITY
>     Reading capacity with READ CAPACITY (10)
>       Maximum block number: 500118191
>       Block size: 512
>     Reading capacity with READ CAPACITY (16)
>       Maximum block number hi: 0, maximum block number lo: 500118191
>       Maximum block number: 500118191
>       Block size: 512
>       Logical sectors per physical sector: Unknown
>     Reading last block (500118191)
>     Trying to read last block + 1 (500118192)
>   READ
>     Reading block 0 with READ (6)
>     Reading block 0 with READ (10)
>     Reading block 0 with READ (12)
>       READ (12) is not supported
>     Reading block 0 with READ (16)
>     Trying to read block 281474976710656 with READ (16)
>     Reading block 0 to odd address with READ (6)
>     Reading block 0 from non-existing LUN 7
>   REPORT LUNS
>     Number of LUNs: 1
>       List of LUNs: 0
> OK
> 
> Testing bus 'Linux Generic SCSI', device ID 2
>   CheckDev()
>     Checking with illegal bus ID
>     Checking with legal bus ID
>   Open/Close()
>     Available handles: 32
>   TEST UNIT READY
>     Medium not present
>   INQUIRY
>     Calling with legal data
>       Device type: Direct Access
>       Device name: 'Generic STORAGE DEVICE  '
>       Firmware revision: '9744'
>       SCSI/SPC version: -
>       Additional length: $29
>     Calling with non-existing LUN 7
>     ERROR: Call failed: 2
>   REQUEST SENSE
>     Calling REQUEST SENSE for existing LUN 0
>       Additional sense length: $0A
>     Calling REQUEST SENSE for non-existing LUN 7
>     ERROR: Call failed: 2
>     ERROR: Call was not properly rejected
>       Expected: SenseKey $05 ($00), ASC $25 ($00)
>     Calling REQUEST SENSE again for existing LUN 0
>   READ CAPACITY
>     Reading capacity with READ CAPACITY (10)
>     Medium not present
>   REPORT LUNS
>     No medium inserted
> ERROR
> 
> Testing bus 'Linux Generic SCSI', device ID 3
>   CheckDev()
>     Checking with illegal bus ID
>     Checking with legal bus ID
>   Open/Close()
>     Available handles: 32
>   TEST UNIT READY
>     Medium not present
>   INQUIRY
>     Calling with legal data
>       Device type: Direct Access
>       Device name: 'Generic STORAGE DEVICE  '
>       Firmware revision: '9744'
>       SCSI/SPC version: -
>       Additional length: $29
>     Calling with non-existing LUN 7
>     ERROR: Call failed: 2
>   REQUEST SENSE
>     Calling REQUEST SENSE for existing LUN 0
>       Additional sense length: $0A
>     Calling REQUEST SENSE for non-existing LUN 7
>     ERROR: Call failed: 2
>     ERROR: Call was not properly rejected
>       Expected: SenseKey $05 ($00), ASC $25 ($00)
>     Calling REQUEST SENSE again for existing LUN 0
>   READ CAPACITY
>     Reading capacity with READ CAPACITY (10)
>     Medium not present
>   REPORT LUNS
>     No medium inserted
> ERROR
> 
> Testing bus 'Linux Generic SCSI', device ID 4
>   CheckDev()
>     Checking with illegal bus ID
>     Checking with legal bus ID
>   Open/Close()
>     Available handles: 32
>   TEST UNIT READY
>     Medium not present
>   INQUIRY
>     Calling with legal data
>       Device type: Direct Access
>       Device name: 'Generic STORAGE DEVICE  '
>       Firmware revision: '9744'
>       SCSI/SPC version: -
>       Additional length: $29
>     Calling with non-existing LUN 7
>     ERROR: Call failed: 2
>   REQUEST SENSE
>     Calling REQUEST SENSE for existing LUN 0
>       Additional sense length: $0A
>     Calling REQUEST SENSE for non-existing LUN 7
>     ERROR: Call failed: 2
>     ERROR: Call was not properly rejected
>       Expected: SenseKey $05 ($00), ASC $25 ($00)
>     Calling REQUEST SENSE again for existing LUN 0
>   READ CAPACITY
>     Reading capacity with READ CAPACITY (10)
>     Medium not present
>   REPORT LUNS
>     No medium inserted
> ERROR
> 
> Testing bus 'Linux Generic SCSI', device ID 5
>   CheckDev()
>     Checking with illegal bus ID
>     Checking with legal bus ID
>   Open/Close()
>     Available handles: 32
>   TEST UNIT READY
>     Medium not present
>   INQUIRY
>     Calling with legal data
>       Device type: Direct Access
>       Device name: 'Generic STORAGE DEVICE  '
>       Firmware revision: '9744'
>       SCSI/SPC version: -
>       Additional length: $29
>     Calling with non-existing LUN 7
>     ERROR: Call failed: 2
>   REQUEST SENSE
>     Calling REQUEST SENSE for existing LUN 0
>       Additional sense length: $0A
>     Calling REQUEST SENSE for non-existing LUN 7
>     ERROR: Call failed: 2
>     ERROR: Call was not properly rejected
>       Expected: SenseKey $05 ($00), ASC $25 ($00)
>     Calling REQUEST SENSE again for existing LUN 0
>   READ CAPACITY
>     Reading capacity with READ CAPACITY (10)
>     Medium not present
>   REPORT LUNS
>     No medium inserted
> ERROR
> 
> Testing bus 'Linux Generic SCSI', device ID 6
>   CheckDev()
>     Checking with illegal bus ID
>     Checking with legal bus ID
>   Open/Close()
>     Available handles: 32
>   TEST UNIT READY
>     Medium not present
>   INQUIRY
>     Calling with legal data
>       Device type: Direct Access
>       Device name: 'Generic STORAGE DEVICE  '
>       Firmware revision: '9744'
>       SCSI/SPC version: -
>       Additional length: $29
>     Calling with non-existing LUN 7
>     ERROR: Call failed: 2
>   REQUEST SENSE
>     Calling REQUEST SENSE for existing LUN 0
>       Additional sense length: $0A
>     Calling REQUEST SENSE for non-existing LUN 7
>     ERROR: Call failed: 2
>     ERROR: Call was not properly rejected
>       Expected: SenseKey $05 ($00), ASC $25 ($00)
>     Calling REQUEST SENSE again for existing LUN 0
>   READ CAPACITY
>     Reading capacity with READ CAPACITY (10)
>     Medium not present
>   REPORT LUNS
>     No medium inserted
> ERROR
> SCSI Driver test V1.35
> ? 2014-2018 Uwe Seimet
> 
> Found SCSI Driver version 1.01
> 
> Buses:
>   ID: 0, Name: 'Atari ACSI', Maximum transfer length: 65536 ($10000)
>   ID: 1, Name: 'Atari SCSI', Maximum transfer length: 268435456 ($10000000)
>   ID: 31, Name: 'Linux Generic SCSI', Maximum transfer length: 65536 ($10000)
> 
> Testing bus 'Linux Generic SCSI', device ID 0
>   CheckDev()
>     Checking with illegal bus ID
>     Checking with legal bus ID
>   Open/Close()
>     Available handles: 32
>   TEST UNIT READY
>   INQUIRY
>     Calling with legal data
>       Device type: Direct Access
>       Device name: ''
>       Firmware revision: ''
>       SCSI/SPC version: SPC-3
>       Additional length: $5B
>     Calling with non-existing LUN 7
>     ERROR: Call failed: 2
>   REQUEST SENSE
>     Calling REQUEST SENSE for existing LUN 0
>       Additional sense length: $02
>       ERROR: Additional sense length must be at least $0A
>     Calling REQUEST SENSE for non-existing LUN 7
>     ERROR: Call failed: 2
>     ERROR: Call was not properly rejected
>       Expected: SenseKey $05 ($00), ASC $25 ($00)
>     Calling REQUEST SENSE again for existing LUN 0
>   READ CAPACITY
>     Reading capacity with READ CAPACITY (10)
>       Maximum block number: 500118191
>       Block size: 512
>     Reading capacity with READ CAPACITY (16)
>       Maximum block number hi: 0, maximum block number lo: 500118191
>       Maximum block number: 500118191
>       Block size: 512
>       Logical sectors per physical sector: Unknown
>     Reading last block (500118191)
>     Trying to read last block + 1 (500118192)
>   READ
>     Reading block 0 with READ (6)
>     Reading block 0 with READ (10)
>     Reading block 0 with READ (12)
>       READ (12) is not supported
>     Reading block 0 with READ (16)
>     Trying to read block 281474976710656 with READ (16)
>     Reading block 0 to odd address with READ (6)
>     Reading block 0 from non-existing LUN 7
>   REPORT LUNS
>     Number of LUNs: 1048576
>       List of LUNs: 0
> OK
> 
> Testing bus 'Linux Generic SCSI', device ID 1
>   CheckDev()
>     Checking with illegal bus ID
>     Checking with legal bus ID
>   Open/Close()
>     Available handles: 32
>   TEST UNIT READY
>   INQUIRY
>     Calling with legal data
>       Device type: Direct Access
>       Device name: ''
>       Firmware revision: ''
>       SCSI/SPC version: SPC-3
>       Additional length: $5B
>     Calling with non-existing LUN 7
>     ERROR: Call failed: 2
>   REQUEST SENSE
>     Calling REQUEST SENSE for existing LUN 0
>       Additional sense length: $02
>       ERROR: Additional sense length must be at least $0A
>     Calling REQUEST SENSE for non-existing LUN 7
>     ERROR: Call failed: 2
>     ERROR: Call was not properly rejected
>       Expected: SenseKey $05 ($00), ASC $25 ($00)
>     Calling REQUEST SENSE again for existing LUN 0
>   READ CAPACITY
>     Reading capacity with READ CAPACITY (10)
>       Maximum block number: 500118191
>       Block size: 512
>     Reading capacity with READ CAPACITY (16)
>       Maximum block number hi: 0, maximum block number lo: 500118191
>       Maximum block number: 500118191
>       Block size: 512
>       Logical sectors per physical sector: Unknown
>     Reading last block (500118191)
>     Trying to read last block + 1 (500118192)
>   READ
>     Reading block 0 with READ (6)
>     Reading block 0 with READ (10)
>     Reading block 0 with READ (12)
>       READ (12) is not supported
>     Reading block 0 with READ (16)
>     Trying to read block 281474976710656 with READ (16)
>     Reading block 0 to odd address with READ (6)
>     Reading block 0 from non-existing LUN 7
>   REPORT LUNS
>     Number of LUNs: 1048576
>       List of LUNs: 0
> OK
> 
> Testing bus 'Linux Generic SCSI', device ID 2
>   CheckDev()
>     Checking with illegal bus ID
>     Checking with legal bus ID
>   Open/Close()
>     Available handles: 32
>   TEST UNIT READY
>     Medium not present
>   INQUIRY
>     Calling with legal data
>       Device type: Direct Access
>       Device name: ''
>       Firmware revision: ''
>       SCSI/SPC version: -
>       Additional length: $29
>     Calling with non-existing LUN 7
>     ERROR: Call failed: 2
>   REQUEST SENSE
>     Calling REQUEST SENSE for existing LUN 0
>       Additional sense length: $0A
>     Calling REQUEST SENSE for non-existing LUN 7
>     ERROR: Call failed: 2
>     ERROR: Call was not properly rejected
>       Expected: SenseKey $05 ($00), ASC $25 ($00)
>     Calling REQUEST SENSE again for existing LUN 0
>   READ CAPACITY
>     Reading capacity with READ CAPACITY (10)
>     Medium not present
>   REPORT LUNS
>     No medium inserted
> ERROR
> 
> Testing bus 'Linux Generic SCSI', device ID 3
>   CheckDev()
>     Checking with illegal bus ID
>     Checking with legal bus ID
>   Open/Close()
>     Available handles: 32
>   TEST UNIT READY
>     Medium not present
>   INQUIRY
>     Calling with legal data
>       Device type: Direct Access
>       Device name: ''
>       Firmware revision: ''
>       SCSI/SPC version: -
>       Additional length: $29
>     Calling with non-existing LUN 7
>     ERROR: Call failed: 2
>   REQUEST SENSE
>     Calling REQUEST SENSE for existing LUN 0
>       Additional sense length: $0A
>     Calling REQUEST SENSE for non-existing LUN 7
>     ERROR: Call failed: 2
>     ERROR: Call was not properly rejected
>       Expected: SenseKey $05 ($00), ASC $25 ($00)
>     Calling REQUEST SENSE again for existing LUN 0
>   READ CAPACITY
>     Reading capacity with READ CAPACITY (10)
>     Medium not present
>   REPORT LUNS
>     No medium inserted
> ERROR
> 
> Testing bus 'Linux Generic SCSI', device ID 4
>   CheckDev()
>     Checking with illegal bus ID
>     Checking with legal bus ID
>   Open/Close()
>     Available handles: 32
>   TEST UNIT READY
>     Medium not present
>   INQUIRY
>     Calling with legal data
>       Device type: Direct Access
>       Device name: ''
>       Firmware revision: ''
>       SCSI/SPC version: -
>       Additional length: $29
>     Calling with non-existing LUN 7
>     ERROR: Call failed: 2
>   REQUEST SENSE
>     Calling REQUEST SENSE for existing LUN 0
>       Additional sense length: $0A
>     Calling REQUEST SENSE for non-existing LUN 7
>     ERROR: Call failed: 2
>     ERROR: Call was not properly rejected
>       Expected: SenseKey $05 ($00), ASC $25 ($00)
>     Calling REQUEST SENSE again for existing LUN 0
>   READ CAPACITY
>     Reading capacity with READ CAPACITY (10)
>     Medium not present
>   REPORT LUNS
>     No medium inserted
> ERROR
> 
> Testing bus 'Linux Generic SCSI', device ID 5
>   CheckDev()
>     Checking with illegal bus ID
>     Checking with legal bus ID
>   Open/Close()
>     Available handles: 32
>   TEST UNIT READY
>     Medium not present
>   INQUIRY
>     Calling with legal data
>       Device type: Direct Access
>       Device name: ''
>       Firmware revision: ''
>       SCSI/SPC version: -
>       Additional length: $29
>     Calling with non-existing LUN 7
>     ERROR: Call failed: 2
>   REQUEST SENSE
>     Calling REQUEST SENSE for existing LUN 0
>       Additional sense length: $0A
>     Calling REQUEST SENSE for non-existing LUN 7
>     ERROR: Call failed: 2
>     ERROR: Call was not properly rejected
>       Expected: SenseKey $05 ($00), ASC $25 ($00)
>     Calling REQUEST SENSE again for existing LUN 0
>   READ CAPACITY
>     Reading capacity with READ CAPACITY (10)
>     Medium not present
>   REPORT LUNS
>     No medium inserted
> ERROR
> 
> Testing bus 'Linux Generic SCSI', device ID 6
>   CheckDev()
>     Checking with illegal bus ID
>     Checking with legal bus ID
>   Open/Close()
>     Available handles: 32
>   TEST UNIT READY
>     Medium not present
>   INQUIRY
>     Calling with legal data
>       Device type: Direct Access
>       Device name: ''
>       Firmware revision: ''
>       SCSI/SPC version: -
>       Additional length: $29
>     Calling with non-existing LUN 7
>     ERROR: Call failed: 2
>   REQUEST SENSE
>     Calling REQUEST SENSE for existing LUN 0
>       Additional sense length: $0A
>     Calling REQUEST SENSE for non-existing LUN 7
>     ERROR: Call failed: 2
>     ERROR: Call was not properly rejected
>       Expected: SenseKey $05 ($00), ASC $25 ($00)
>     Calling REQUEST SENSE again for existing LUN 0
>   READ CAPACITY
>     Reading capacity with READ CAPACITY (10)
>     Medium not present
>   REPORT LUNS
>     No medium inserted
> ERROR