[Openib-windows] SRP tuning

Yossi Leybovich sleybo at dev.mellanox.co.il
Tue Dec 5 01:02:45 PST 2006


 

> -----Original Message-----
> From: openib-windows-bounces at openib.org 
> [mailto:openib-windows-bounces at openib.org] On Behalf Of Fabian Tillier
> Sent: Monday, October 02, 2006 9:34 PM
> To: Yossi Leybovich
> Cc: openib-windows at openib.org
> Subject: Re: [Openib-windows] SRP tuning
> 
> Hi Yossi,
> 
> On 10/1/06, Yossi Leybovich <sleybo at mellanox.co.il> wrote:
> >
> > Fab
> > One of the people in the list ask about tuning option to the SRP 
> > driver
> >
> >
> > "...Now in regards to performance - In the linux 
> environment, on the 
> > host/initiator there were numerous parameters that could be 
> toyed with 
> > to boost performance.  Specifically, there is a parameter called 
> > max_xfer_sectors_per_io in a file called modprobe-openib.conf.  By 
> > changing the value of this parameter, performance via srp 
> to srpt and 
> > finally to disks could go up and down dramatically..."
> >
> > Do you have nay idea of similar parameter in windows SRP driver ?
> > I found  p_config->MaximumTransferLength       =
> > SCSI_MAXIMUM_TRANSFER_SIZE;
> > which is 1K*1K.
> >
> > Does this value can be change ? Do you think it will affect the 
> > performance ?
> 
> We should probably leave this value uninitialized.  It is 
> initialized by the port driver to SP_UNINITIALIZED_VALUE to 
> indicate unlimited maximum transfer size.
> 
> The real limit to the size of transfers is the 
> NumberOfPhysicalBreaks and SrbExtensionSize.  The SRB 
> extension is used to hold the SRP requests, including the S/G 
> list for direct and indirect I/O requests.
>  The size of the SRB extension limits the number of S/G 
> entries, and thus the NumberOfPhysicalBreaks.
> 
> Right now, the SRB extension is large enough to hold a SRP IU 
> of 340 bytes, which is enough to send up to 17 S/G entries in 
> the partial memory descriptor list.  Note that this S/G list 
> is referenced by the indirect table memory descriptor, so 
> even if the initiator to target IU size doesn't support the 
> 17 S/G entries to be put in the SRP command, the 17 S/G entry 
> limit still holds.
> 
> 17 S/G entries is the maximum needed to transfer 64KB in a single I/O.
> 
> A target that defines a larger initiator to target IU will 
> have larger SRB extensions, and thus support a larger transfer size.
> 
> It would be intersting to see how the S/G limit affects bandwidth.
> Increasing SRP_MAX_IU_SIZE will achieve this.  You won't run 
> into the SCSI_MAX_TRANSFER_SIZE limit until you have 257 S/G 
> entries, which means a SRP_MAX_IU_SIZE of 4180 bytes (from 
> it's current 340 bytes).

I set:

SCSI_MAXIMUM_TRANSFER_SIZE = SP_UNINITIALIZED_VALUE.
SrbExtensionSize = 3552

I played with the NumberOfPhysicalBreaks:
The StorPort driver set the of NumberOfPhysicalBreaksvalue to 17 ( I don't
know why , Can I configure?)
But even if I return 16/17 as my supported NumberOfPhysicalBreaks it keep
post IOs with 8 s/g list size (32K)
[when I set it to 4 ,storPort send IOs with 4 s/g , So the value did effect
when I reduce it]

Any idea why ?




> 
> - Fab
> 
> _______________________________________________
> openib-windows mailing list
> openib-windows at openib.org
> http://openib.org/mailman/listinfo/openib-windows
> 





More information about the ofw mailing list