[Lustre-discuss] HW RAID - fragmented I/O

Kevin Van Maren kevin.van.maren at oracle.com
Mon Jun 13 12:38:23 PDT 2011


Did you printk the SGE in the driver, to make sure it was being set 
properly?

sg_tablesize may be being limited elsewhere, although the kernel patches 
in v1.8.5 should prevent that.


do this:

# cat /sys/class/scsi_host/host*/sg_tablesize
This should be 256.  If not, then this is still the issue.


# cat /sys/block/sd*/queue/max_hw_sectors_kb
This should be >= 1024

# cat /sys/block/sd*/queue/max_sectors_kb
This should be 1024 (Lustre mount sets it to max_hw_sectors_kb)


_base_allocate_memory_pools prints a bunch of helpful info using 
MPT2SAS_INFO_FMT -- goes to KERN_INFO,
and dinitprintk (MPT_DEBUG_INIT flag).  Turn up kernel verbosity and set 
the module parameter logging_level=0x20



If you still don't have an answer, then look at these values in 
drivers/scsi/scsi_lib.c:

        blk_queue_max_hw_segments(q, shost->sg_tablesize);
        blk_queue_max_phys_segments(q, SCSI_MAX_PHYS_SEGMENTS);
        blk_queue_max_sectors(q, shost->max_sectors);


Kevin


Wojciech Turek wrote:
> Hi Kevin,
>
> Unfortunately still no luck with 1MB I/O. I have forced my OSS to do 
> 512KB I/O following your suggestion and setting 512 max_sectors_kb. I 
> also recreated my HW RAID with 64KB chunks to align it for 512KB 
> chunks. I can see from the brw_stats and  controller statistics that 
> it does indeed twice as many IOPS as compared to throughput MB/s but 
> perfoamnce isn't any better as before.
> From the sgpdd-survey I know that this controller can do around 3GB/s 
> write and 4GB/s read. Also when running sgpdd-survey controller stats 
> show that I/O is not fragmented (nr of IOPS = Throughput in MB/s). I 
> also try to bypass multipath layer by mounting the sd devices directly 
> but that did not make any difference.
>
> If you have any more suggestions I will be happy to try them out.
>
> Best regards,
>
> Wojciech
>
>
> On 13 June 2011 15:13, Kevin Van Maren <kevin.van.maren at oracle.com 
> <mailto:kevin.van.maren at oracle.com>> wrote:
>
>     Did you get it doing 1MB IOs?
>
>     Kevin
>
>
>
>     Kevin Van Maren wrote:
>
>         Wojciech Turek wrote:
>
>             Hi Kevin,
>
>             In my kernel .config I find following lines
>
>             CONFIG_SCSI_MPT2SAS=m
>             CONFIG_SCSI_MPT2SAS_MAX_SGE=128
>             CONFIG_SCSI_MPT2SAS_LOGGING=y
>
>             I changed SGE value to 256
>
>             Do I need to recompile the Kernel before building new
>             module based on that .config?
>
>
>         No, but you do need to do something like "make oldconfig" to
>         propagate the change in .config to the header files, and then
>         rebuild the driver.
>
>         Kevin
>
>
>
>




More information about the lustre-discuss mailing list