Re: [hatari-devel] Cycle exact setting affects nf_scsidrv

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


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




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/