Hi
Thanks for the advice.
I see mismatch between the num of phyrBreaks I reported in the
port_configuration_info structure
And the MaximumPhysicalPages I see from spti
The first is 0x10
An in the spti report 0x8
Do you have any Idea ? Maybe because I report myself as Fiber device?
Both structure/outputs attached below
Thanks
Yossi
C:\trace>spti.exe f:
***** STORAGE ADAPTER DESCRIPTOR DATA *****
Version: 00000004
TotalSize: 00000004
MaximumTransferLength: ffffffff (bytes)
MaximumPhysicalPages: 00000008
TrueMaximumTransfer: 00007000 (bytes)
AlignmentMask: 00000000
AdapterUsesPio: True
AdapterScansDown: False
CommandQueueing: True
AcceleratedTransfer: True
Bus Type: Fibre
Bus Major Version: 0002
Bus Minor Version: 0000
***** STORAGE DEVICE DESCRIPTOR DATA *****
Version: 00000028
TotalSize: 00000148
DeviceType: 00000000
DeviceTypeModifier: 00000000
RemovableMedia: False
CommandQueueing: True
Vendor Id: Mellanox
Product Id: IBSRP10-TGT
Product Revision: 1.46
Serial Number:
Bus Type: Fibre
Raw Properties: None
***** Detected Alignment Mask *****
***** was 00000000 *****
***** MODE SENSE – return all pages *****
***** with SenseInfo buffer *****
Scsi status: 00h, Bytes returned: 110h, Data buffer length: C0h
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
000 2C 00 00 00 00 00 06 00 01 00 00 00 C0 00 00 00
010 02 00 00 00 50 00 00 00 30 00 00 00 1A 00 3F 00
020 C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
050 23 00 00 00 08 12 00 00 FF FF 00 00 00 10 00 10
060 00 01 FF FF 00 00 00 00 0A 0A 00 10 00 00 00 00
070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
***** MODE SENSE – return all pages *****
***** without SenseInfo buffer *****
Scsi status: 00h, Bytes returned: 110h, Data buffer length: C0h
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
000 2C 00 00 00 00 00 06 00 01 00 00 00 C0 00 00 00
010 02 00 00 00 50 00 00 00 00 00 00 00 1A 00 3F 00
020 C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
050 23 00 00 00 08 12 00 00 FF FF 00 00 00 10 00 10
060 00 01 FF FF 00 00 00 00 0A 0A 00 10 00 00 00 00
070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
***** TEST UNIT READY *****
***** DataBufferLength = 0 *****
Scsi status: 00h, Bytes returned: 30h, Data buffer length: 0h
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
000 2C 00 00 00 00 00 06 00 01 00 00 00 00 00 00 00
010 02 00 00 00 00 00 00 00 30 00 00 00 00 00 00 00
020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
***** MODE SENSE – return all pages *****
***** bad DataBufferOffset – should fail *****
Error: 87 The parameter is incorrect.
***** MODE SENSE *****
***** return caching mode sense page *****
Scsi status: 00h, Bytes returned: 110h, Data buffer length: C0h
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
000 2C 00 00 00 00 00 06 00 01 00 00 00 C0 00 00 00
010 02 00 00 00 50 00 00 00 30 00 00 00 1A 08 08 00
020 C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
050 17 00 00 00 08 12 00 00 FF FF 00 00 00 10 00 10
060 00 01 FF FF 00 00 00 00 00 00 00 00 00 00 00 00
070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
***** WRITE DATA BUFFER operation *****
Error: 1117 The request could not be performed because of an I/O device
error.
***** READ DATA BUFFER operation *****
Error: 1117 The request could not be performed because of an I/O device
error.
========================================================================
And here is the CONFIG structure from FindAdapter function:
0: kd> dt p_config
Local var @ 0xf78ee994 Type _PORT_CONFIGURATION_INFORMATION*
0x8978c8f0
+0x000 Length : 0x90
+0x004 SystemIoBusNumber : 0
+0x008 AdapterInterfaceType : 0 ( Internal )
+0x00c BusInterruptLevel : 0
+0x010 BusInterruptVector : 0
+0x014 InterruptMode : 1 ( Latched )
+0x018 MaximumTransferLength : 0xffffffff
+0x01c NumberOfPhysicalBreaks : 0x10
+0x020 DmaChannel : 0xffffffff
+0x024 DmaPort : 0xffffffff
+0x028 DmaWidth : 0 ( Width8Bits )
+0x02c DmaSpeed : 0 ( Compatible )
+0x030 AlignmentMask : 0
+0x034 NumberOfAccessRanges : 1
+0x038 AccessRanges : 0x898620a8 [0] _ACCESS_RANGE
+0x03c Reserved : (null)
+0x040 NumberOfBuses : 0x1 ‘’
+0x041 InitiatorBusId : [8] “???”
+0x049 ScatterGather : 0x1 ‘’
+0x04a Master : 0x1 ‘’
+0x04b CachesData : 0 ‘’
+0x04c AdapterScansDown : 0 ‘’
+0x04d AtdiskPrimaryClaimed : 0x1 ‘’
+0x04e AtdiskSecondaryClaimed : 0x1 ‘’
+0x04f Dma32BitAddresses : 0x1 ‘’
+0x050 DemandMode : 0 ‘’
+0x051 MapBuffers : 0x2 ‘’
+0x052 NeedPhysicalAddresses : 0x1 ‘’
+0x053 TaggedQueuing : 0x1 ‘’
+0x054 AutoRequestSense : 0x1 ‘’
+0x055 MultipleRequestPerLu : 0x1 ‘’
+0x056 ReceiveEvent : 0 ‘’
+0x057 RealModeInitialized : 0 ‘’
+0x058 BufferAccessScsiPortControlled : 0x1 ‘’
+0x059 MaximumNumberOfTargets : 0x1 ‘’
+0x05a ReservedUchars : [2] “”
+0x05c SlotNumber : 0
+0x060 BusInterruptLevel2 : 0
+0x064 BusInterruptVector2 : 0
+0x068 InterruptMode2 : 0 ( LevelSensitive )
+0x06c DmaChannel2 : 0
+0x070 DmaPort2 : 0
+0x074 DmaWidth2 : 0 ( Width8Bits )
+0x078 DmaSpeed2 : 0 ( Compatible )
+0x07c DeviceExtensionSize : 0
+0x080 SpecificLuExtensionSize : 0
+0x084 SrbExtensionSize : 0xde0
+0x088 Dma64BitAddresses : 0 ‘’
+0x089 ResetTargetSupported : 0 ‘’
+0x08a MaximumNumberOfLogicalUnits : 0xff ‘’
+0x08b WmiDataProvider : 0x1 ‘’
+0x08c SynchronizationModel : 1 ( StorSynchronizeFullDuplex )
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@email.com
Sent: Wednesday, December 06, 2006 5:46 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] SCSI SRB size
Build and run the spti tool in the DDK and take a look at the
display, particularly TrueMaximumTransfer. If anything looks
suspicious, post the output here. Note there is a very low
ceiling on how large a transfer your miniport can report.
It’s about 32MB for 32-bit Windows and even smaller for
64-bit Windows–about 16MB. If a miniport reports anything
larger than this, it will cause problems. But with a max SGL
of 64, you should be well under the limit.
eof
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online
at http://www.osronline.com/page.cfm?name=ListServer