Re: [PATCH 09/10] Enable clustering and large transfers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Kai Makisara wrote:
> On Tue, 28 Mar 2006, Matthew Wilcox wrote:
> 
> 
>>This patch enables clustering and sets max_sectors to 0xffff to enable
>>reading and writing of large blocks with tapes (and large transfers with
>>sg). This change is needed after the sg and st drivers started using
>>chained bios through scsi_request_async() in 2.6.16.
>>
>>Signed-off-by: Kai Makisara <kai.makisara@xxxxxxxxxxx>
>>Signed-off-by: Matthew Wilcox <matthew@xxxxxx>
>>
>>---
>>
>> drivers/scsi/sym53c8xx_2/sym_glue.c |    3 ++-
>> 1 files changed, 2 insertions(+), 1 deletions(-)
>>
>>1c573ec4648b4b4ddadcbd1945a9a608977df513
>>diff --git a/drivers/scsi/sym53c8xx_2/sym_glue.c b/drivers/scsi/sym53c8xx_2/sym_glue.c
>>index e48409e..2c4e5f1 100644
>>--- a/drivers/scsi/sym53c8xx_2/sym_glue.c
>>+++ b/drivers/scsi/sym53c8xx_2/sym_glue.c
>>@@ -1870,7 +1870,8 @@ static struct scsi_host_template sym2_te
>> 	.eh_bus_reset_handler	= sym53c8xx_eh_bus_reset_handler,
>> 	.eh_host_reset_handler	= sym53c8xx_eh_host_reset_handler,
>> 	.this_id		= 7,
>>-	.use_clustering		= DISABLE_CLUSTERING,
>>+	.use_clustering		= ENABLE_CLUSTERING,
>>+	.max_sectors		= 0xFFFF,
>> #ifdef SYM_LINUX_PROC_INFO_SUPPORT
>> 	.proc_info		= sym53c8xx_proc_info,
>> 	.proc_name		= NAME53C8XX,
>>
> 
> Did you approve this patch or just forgot to remove it from the queue 
> after the discussion initiated by Jens Axboe?
> 
> I have done some more investigation based on the message from Gerard 
> Roudier that Jens found. I fetched the FreeBSD driver. It had a 
> work-around for the 896 rev. 1 chips but I did not find that in the Linux 
> version. The work-around does build two device s/g elements for any 
> original s/g segment that crosses a 16 MB boundary.

Kai + Matthew,
In my testing with lk 2.6.16 the 16 MB boundary is a
hard limit, after several other things are tweaked.

The sym53c8xx driver won't even come close due to:
  #define SYM_CONF_MAX_SG             (96)
 ...
  instance->sg_tablesize  = SYM_CONF_MAX_SG;

I assume that the st driver (like sg) limits on .sg_tablesize .
Matthew, if you change this please set it at 256 (not SG_ALL
which is 255).

I have attempted to capture the current (overly complex)
constraints on maximum transfer size at:
http://www.torque.net/sg/sg_io.html
in the section on "Maximum transfer size per command".

> In Linux we can do that by setting the .dma_boundary field in the 
> scsi_host_template. Would it be an acceptable solution to set the 16 MB 
> limit for all sym53c8xx adapters? It would take care of the known errata 
> and Gerards suspicions about possible problems with other chips.
> 
> The patch at the end does compile and it is running in this system but has 
> not had any more testing.

Doug Gilbert

-
: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux