* SCSI tape block size
[not found] <200609241605.32327.johna@onevista.com>
@ 2006-09-27 21:32 ` Guennadi Liakhovetski
2006-09-28 14:34 ` Michael Reed
2006-09-28 19:47 ` Kai Makisara
0 siblings, 2 replies; 9+ messages in thread
From: Guennadi Liakhovetski @ 2006-09-27 21:32 UTC (permalink / raw)
To: linux-scsi
Hi all
I've got a problem report and a patch from John Adams, he says tmscsim
driver under 2.6.17 and on doesn't allow him to read tapes with blocksize
of 1MB. He fixes this with the below patch.
On Sun, 24 Sep 2006, John Adams wrote:
> --- drivers/scsi/tmscsim.c.bak 2006-09-24 12:55:08.000000000 -0400
> +++ drivers/scsi/tmscsim.c 2006-09-24 12:55:56.000000000 -0400
> @@ -2300,7 +2300,8 @@
> .this_id = 7,
> .sg_tablesize = SG_ALL,
> .cmd_per_lun = 1,
> - .use_clustering = DISABLE_CLUSTERING,
> + .use_clustering = ENABLE_CLUSTERING,
> + .max_sectors = 2048,
> };
>
> /***********************************************************************
It looks like
1) use_clustering doesn't directly affect maximum block size, so, he
doesn't really need it, although, it might make sense for tmscsim to
improve performance.
2) max_sectors is indeed what he needs, but it looks strange that now it
has to be set by the low-level driver... For block devices you can set it
at run time with /sys/block/sda/queue/max_sectors_kb, right? But what
about tapes?
Sorry, didn't find too much documentation about it.
Thanks
Guennadi
---
Guennadi Liakhovetski
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: SCSI tape block size
2006-09-27 21:32 ` SCSI tape block size Guennadi Liakhovetski
@ 2006-09-28 14:34 ` Michael Reed
2006-09-28 19:47 ` Kai Makisara
1 sibling, 0 replies; 9+ messages in thread
From: Michael Reed @ 2006-09-28 14:34 UTC (permalink / raw)
To: Guennadi Liakhovetski; +Cc: linux-scsi
Guennadi Liakhovetski wrote:
> Hi all
>
> I've got a problem report and a patch from John Adams, he says tmscsim
> driver under 2.6.17 and on doesn't allow him to read tapes with blocksize
> of 1MB. He fixes this with the below patch.
>
> On Sun, 24 Sep 2006, John Adams wrote:
>
>> --- drivers/scsi/tmscsim.c.bak 2006-09-24 12:55:08.000000000 -0400
>> +++ drivers/scsi/tmscsim.c 2006-09-24 12:55:56.000000000 -0400
>> @@ -2300,7 +2300,8 @@
>> .this_id = 7,
>> .sg_tablesize = SG_ALL,
>> .cmd_per_lun = 1,
>> - .use_clustering = DISABLE_CLUSTERING,
>> + .use_clustering = ENABLE_CLUSTERING,
>> + .max_sectors = 2048,
>> };
>>
>> /***********************************************************************
>
> It looks like
>
> 1) use_clustering doesn't directly affect maximum block size, so, he
> doesn't really need it, although, it might make sense for tmscsim to
> improve performance.
>
> 2) max_sectors is indeed what he needs, but it looks strange that now it
> has to be set by the low-level driver... For block devices you can set it
> at run time with /sys/block/sda/queue/max_sectors_kb, right? But what
> about tapes?
Thank you for posting this. I was wondering why with 2.6.16 the maximum
tape block I could access via by BusLogic adapter dropped to 64k. Now
I know what to change.
Does anyone know what the appropriate max sectors limit is for BusLogic?
Thanks,
Mike
>
> Sorry, didn't find too much documentation about it.
>
> Thanks
> Guennadi
> ---
> Guennadi Liakhovetski
> -
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: SCSI tape block size
2006-09-27 21:32 ` SCSI tape block size Guennadi Liakhovetski
2006-09-28 14:34 ` Michael Reed
@ 2006-09-28 19:47 ` Kai Makisara
2006-09-28 20:41 ` use_clustering again (was Re: SCSI tape block size) Guennadi Liakhovetski
2006-09-30 20:52 ` SCSI tape block size Guennadi Liakhovetski
1 sibling, 2 replies; 9+ messages in thread
From: Kai Makisara @ 2006-09-28 19:47 UTC (permalink / raw)
To: Guennadi Liakhovetski; +Cc: linux-scsi
On Wed, 27 Sep 2006, Guennadi Liakhovetski wrote:
> Hi all
>
> I've got a problem report and a patch from John Adams, he says tmscsim
> driver under 2.6.17 and on doesn't allow him to read tapes with blocksize
> of 1MB. He fixes this with the below patch.
>
> On Sun, 24 Sep 2006, John Adams wrote:
>
> > --- drivers/scsi/tmscsim.c.bak 2006-09-24 12:55:08.000000000 -0400
> > +++ drivers/scsi/tmscsim.c 2006-09-24 12:55:56.000000000 -0400
> > @@ -2300,7 +2300,8 @@
> > .this_id = 7,
> > .sg_tablesize = SG_ALL,
> > .cmd_per_lun = 1,
> > - .use_clustering = DISABLE_CLUSTERING,
> > + .use_clustering = ENABLE_CLUSTERING,
> > + .max_sectors = 2048,
> > };
> >
> > /***********************************************************************
>
> It looks like
>
> 1) use_clustering doesn't directly affect maximum block size, so, he
> doesn't really need it, although, it might make sense for tmscsim to
> improve performance.
>
> 2) max_sectors is indeed what he needs, but it looks strange that now it
> has to be set by the low-level driver... For block devices you can set it
> at run time with /sys/block/sda/queue/max_sectors_kb, right? But what
> about tapes?
>
Both 1 and 2 are needed for 1 MB block size. max_sectors_kb for tapes is
not visible in /sys.
> Sorry, didn't find too much documentation about it.
>
The limits come from the block subsystem that all scsi devices use
nowadays. It is a rather long story but can be found from linux-scsi
archives, e.g.,
http://marc.theaimsgroup.com/?l=linux-scsi&m=114147170831847&w=2
--
Kai
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: use_clustering again (was Re: SCSI tape block size)
2006-09-28 20:41 ` use_clustering again (was Re: SCSI tape block size) Guennadi Liakhovetski
@ 2006-09-28 19:50 ` Mike Christie
2006-09-28 21:36 ` use_clustering again Martin K. Petersen
0 siblings, 1 reply; 9+ messages in thread
From: Mike Christie @ 2006-09-28 19:50 UTC (permalink / raw)
To: Guennadi Liakhovetski; +Cc: Kai Makisara, linux-scsi
Guennadi Liakhovetski wrote:
> On Thu, 28 Sep 2006, Kai Makisara wrote:
>
>> The limits come from the block subsystem that all scsi devices use
>> nowadays. It is a rather long story but can be found from linux-scsi
>> archives, e.g.,
>> http://marc.theaimsgroup.com/?l=linux-scsi&m=114147170831847&w=2
>
> Yes, already found the 2 later threads - one on lkml and one on scsi. I
> did look at them briefly back then, but, probably, too briefly.
>
> One of the settings - enable_clustering
If you are just trying to get to 1MB, then instead of enabling
clustering we could also increase the defaul SCSI_MAX_PHYS_SEGMENTS. It
is 128 now, but there is a compile option to set it it up to 256.
Well, actually I think that gets a little short because SG_ALL is only
255. Why is SG_ALL 255, but you can set SCSI_MAX_PHYS_SEGMENTS to 256?
^ permalink raw reply [flat|nested] 9+ messages in thread
* use_clustering again (was Re: SCSI tape block size)
2006-09-28 19:47 ` Kai Makisara
@ 2006-09-28 20:41 ` Guennadi Liakhovetski
2006-09-28 19:50 ` Mike Christie
2006-09-30 20:52 ` SCSI tape block size Guennadi Liakhovetski
1 sibling, 1 reply; 9+ messages in thread
From: Guennadi Liakhovetski @ 2006-09-28 20:41 UTC (permalink / raw)
To: Kai Makisara; +Cc: linux-scsi
On Thu, 28 Sep 2006, Kai Makisara wrote:
> The limits come from the block subsystem that all scsi devices use
> nowadays. It is a rather long story but can be found from linux-scsi
> archives, e.g.,
> http://marc.theaimsgroup.com/?l=linux-scsi&m=114147170831847&w=2
Yes, already found the 2 later threads - one on lkml and one on scsi. I
did look at them briefly back then, but, probably, too briefly.
One of the settings - enable_clustering - seems to be pretty critical and
can only be verified to be safe by intensive testing of various chips /
cards. So, how about making it a run-time parameter? A module parameter is
the easiest, but then each lld would have to do the same thing more or
less. A sysfs attribute - but where? It is a queue attribute, but st/sg
don't expose their queues in /sys...
Maybe under /sys/class/scsi_host?
Similar for max_sectors?
Thanks
Guennadi
---
Guennadi Liakhovetski
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: use_clustering again
2006-09-28 19:50 ` Mike Christie
@ 2006-09-28 21:36 ` Martin K. Petersen
0 siblings, 0 replies; 9+ messages in thread
From: Martin K. Petersen @ 2006-09-28 21:36 UTC (permalink / raw)
To: Mike Christie; +Cc: Guennadi Liakhovetski, Kai Makisara, linux-scsi
>>>>> "Mike" == Mike Christie <michaelc@cs.wisc.edu> writes:
Mike> If you are just trying to get to 1MB, then instead of enabling
Mike> clustering we could also increase the defaul
Mike> SCSI_MAX_PHYS_SEGMENTS. It is 128 now, but there is a compile
Mike> option to set it it up to 256.
I have essentially been having the same problem doing big direct I/Os
using sg. I ended up bumping sg_tablesize to 1024 but only because I
knew the controllers used for this application support that many
scatter-gather segments.
As you mention, SG_ALL is 255 and that used to be the max value (quite
useless, just short of 1MB). In recent kernels it's been clamped to
128 thanks to getting intimate with the block/request layer.
These short lists are quite useless for contemporary tape hardware
that need a block size of 1MB at the minimum and preferably 2MB or
more...
--
Martin K. Petersen Oracle Linux Engineering
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: SCSI tape block size
2006-09-28 19:47 ` Kai Makisara
2006-09-28 20:41 ` use_clustering again (was Re: SCSI tape block size) Guennadi Liakhovetski
@ 2006-09-30 20:52 ` Guennadi Liakhovetski
2006-10-01 10:42 ` Kai Makisara
1 sibling, 1 reply; 9+ messages in thread
From: Guennadi Liakhovetski @ 2006-09-30 20:52 UTC (permalink / raw)
To: Kai Makisara; +Cc: linux-scsi
On Thu, 28 Sep 2006, Kai Makisara wrote:
> Both 1 and 2 are needed for 1 MB block size. max_sectors_kb for tapes is
> not visible in /sys.
Kai, as st maintainer, you surely know - on my tape HP C1533A I cannot
seem to set up any block size other than 1 byte... Is it __really__ 1 byte
or is it just some fixed block size that the drive doesn't report and
cannot change? And it means I cannot test setting of different block
sizes? I have a (unconnected ATM) slightly newer C1555D, wonder if that
could use different block sizes?...
1 byte I see in "mt status" and setting anything else with "mt setblk"
causes "st0: Incorrect block size."
Thanks
Guennadi
---
Guennadi Liakhovetski
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: SCSI tape block size
2006-09-30 20:52 ` SCSI tape block size Guennadi Liakhovetski
@ 2006-10-01 10:42 ` Kai Makisara
2006-10-01 17:05 ` Guennadi Liakhovetski
0 siblings, 1 reply; 9+ messages in thread
From: Kai Makisara @ 2006-10-01 10:42 UTC (permalink / raw)
To: Guennadi Liakhovetski; +Cc: linux-scsi
On Sat, 30 Sep 2006, Guennadi Liakhovetski wrote:
> On Thu, 28 Sep 2006, Kai Makisara wrote:
>
> > Both 1 and 2 are needed for 1 MB block size. max_sectors_kb for tapes is
> > not visible in /sys.
>
> Kai, as st maintainer, you surely know - on my tape HP C1533A I cannot
> seem to set up any block size other than 1 byte... Is it __really__ 1 byte
> or is it just some fixed block size that the drive doesn't report and
> cannot change? And it means I cannot test setting of different block
> sizes? I have a (unconnected ATM) slightly newer C1555D, wonder if that
> could use different block sizes?...
>
This is interesting. I also have HP C1533A (firmware 9608) and I have not
had any problems with setting the block size. Dmesg shows that the drive
supports blocks up to 1<<24 - 1 bytes:
st0: Block limits 1 - 16777215 bytes.
I just tested with kernel 2.6.18 that setting block size works in my
system.
> 1 byte I see in "mt status" and setting anything else with "mt setblk"
> causes "st0: Incorrect block size."
>
This message comes from reading in fixed block mode when the drive tries
to read a block and the size of the block does not match the block size
set to the drive. If you have written the tape with block size 1, you
can't read it with any other block size in fixed block mode.
If you are testing the limits of the LLD, it may be easier to use variable
block mode. What matters is the size of the SCSI i/o and in this case you
know it exactly. In fixed block mode the i/o size may be several blocks
unless you are careful.
--
Kai
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: SCSI tape block size
2006-10-01 10:42 ` Kai Makisara
@ 2006-10-01 17:05 ` Guennadi Liakhovetski
0 siblings, 0 replies; 9+ messages in thread
From: Guennadi Liakhovetski @ 2006-10-01 17:05 UTC (permalink / raw)
To: Kai Makisara; +Cc: linux-scsi
On Sun, 1 Oct 2006, Kai Makisara wrote:
> On Sat, 30 Sep 2006, Guennadi Liakhovetski wrote:
>
> > Kai, as st maintainer, you surely know - on my tape HP C1533A I cannot
> > seem to set up any block size other than 1 byte... Is it __really__ 1 byte
> > or is it just some fixed block size that the drive doesn't report and
> > cannot change? And it means I cannot test setting of different block
> > sizes? I have a (unconnected ATM) slightly newer C1555D, wonder if that
> > could use different block sizes?...
> >
> This is interesting. I also have HP C1533A (firmware 9608) and I have not
> had any problems with setting the block size. Dmesg shows that the drive
> supports blocks up to 1<<24 - 1 bytes:
> st0: Block limits 1 - 16777215 bytes.
>
> I just tested with kernel 2.6.18 that setting block size works in my
> system.
I must have done something wrong yesterday. Sorry. It does work indeed,
tested with
mt -f /dev/st0 setblk `expr $bs \* 1024`
time tar cf /dev/st0 -b `expr $bs \* 2` *jp*
mt -f /dev/st0 status
I can set block size as high as 512k (.max_sectors defaulting to 1024)
independent of .use_clustering. Only setting .max_sectors higher lets one
use larger blocks.
Thanks
Guennadi
---
Guennadi Liakhovetski
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2006-10-01 17:05 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <200609241605.32327.johna@onevista.com>
2006-09-27 21:32 ` SCSI tape block size Guennadi Liakhovetski
2006-09-28 14:34 ` Michael Reed
2006-09-28 19:47 ` Kai Makisara
2006-09-28 20:41 ` use_clustering again (was Re: SCSI tape block size) Guennadi Liakhovetski
2006-09-28 19:50 ` Mike Christie
2006-09-28 21:36 ` use_clustering again Martin K. Petersen
2006-09-30 20:52 ` SCSI tape block size Guennadi Liakhovetski
2006-10-01 10:42 ` Kai Makisara
2006-10-01 17:05 ` Guennadi Liakhovetski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox