* Re: Degraded I/O performance, since 2.5.41
[not found] <Pine.LNX.4.44.0210092015170.9790-100000@home.transmeta.com>
@ 2002-10-10 23:48 ` Dave Hansen
2002-10-10 23:54 ` James Bottomley
2002-10-11 1:09 ` James Bottomley
0 siblings, 2 replies; 5+ messages in thread
From: Dave Hansen @ 2002-10-10 23:48 UTC (permalink / raw)
To: linux-scsi
Linus Torvalds wrote:
> In article <3DA4D34F.3070106@us.ibm.com> you write:
>
>>When I run a certain large webserver benchmark, I prefer to warm the
>>pagecache up with the file set first, to cheat a little :) I grep
>>through 20 different 500MB file sets in parallel to do this. It is
>>a _lot_ slower in the BK snapshot than in plain 2.5.41.
>
> Can you pinpont where this started happening? There aren't that many
> changes since 2.5.41 that I'd consider suspicious, and it would
help > to try to pinpoint it a bit.
Using stupid brute force, I narrowed it down to 12 patches. The only
one that touches generic SCSI code is the queue length one.
1.704.1.2, in my tree from dledford@redhat.com. Backing it out fixed
my problem. CC'ing him...
I would guess that it's just making stupid, er.... suboptimal,
decisions about the length for my hardware. With a controller as
"smart" as the ServeRAID, I would imagine the best approach is to just
throw as many requests at it at one time as you can, then let the
controller sort it out. Doug, I noticed that you changed a bunch of
code to the aic7xxx_old driver, is this just a lack of optimization in
the ServeRAID driver?
--
Dave Hansen
haveblue@us.ibm.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Degraded I/O performance, since 2.5.41
2002-10-10 23:48 ` Degraded I/O performance, since 2.5.41 Dave Hansen
@ 2002-10-10 23:54 ` James Bottomley
2002-10-11 1:09 ` James Bottomley
1 sibling, 0 replies; 5+ messages in thread
From: James Bottomley @ 2002-10-10 23:54 UTC (permalink / raw)
To: Dave Hansen; +Cc: linux-scsi
haveblue@us.ibm.com said:
> I would guess that it's just making stupid, er.... suboptimal,
> decisions about the length for my hardware. With a controller as
> "smart" as the ServeRAID, I would imagine the best approach is to just
> throw as many requests at it at one time as you can, then let the
> controller sort it out. Doug, I noticed that you changed a bunch of
> code to the aic7xxx_old driver, is this just a lack of optimization in
> the ServeRAID driver?
OK, I bet this is because the ips driver now no longer actually does tagged
command queueing. I'll go an check.
James
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Degraded I/O performance, since 2.5.41
2002-10-10 23:48 ` Degraded I/O performance, since 2.5.41 Dave Hansen
2002-10-10 23:54 ` James Bottomley
@ 2002-10-11 1:09 ` James Bottomley
2002-10-11 1:59 ` Doug Ledford
1 sibling, 1 reply; 5+ messages in thread
From: James Bottomley @ 2002-10-11 1:09 UTC (permalink / raw)
To: Dave Hansen; +Cc: linux-scsi
[-- Attachment #1: Type: text/plain, Size: 101 bytes --]
OK, this patch should fix it. Do your performance numbers for ips improve
again with this?
James
[-- Attachment #2: tmp.diff --]
[-- Type: text/plain , Size: 687 bytes --]
===== drivers/scsi/scsi_scan.c 1.24 vs edited =====
--- 1.24/drivers/scsi/scsi_scan.c Tue Oct 8 15:45:57 2002
+++ edited/drivers/scsi/scsi_scan.c Thu Oct 10 17:40:53 2002
@@ -1477,11 +1477,14 @@
if (sdt->detect)
sdev->attached += (*sdt->detect) (sdev);
- if (sdev->host->hostt->slave_attach != NULL)
+ if (sdev->host->hostt->slave_attach != NULL) {
if (sdev->host->hostt->slave_attach(sdev) != 0) {
printk(KERN_INFO "scsi_add_lun: failed low level driver attach, setting device offline");
sdev->online = FALSE;
}
+ } else if(sdev->host->cmd_per_lun) {
+ scsi_adjust_queue_depth(sdev, 0, sdev->host->cmd_per_lun);
+ }
if (sdevnew != NULL)
*sdevnew = sdev;
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Degraded I/O performance, since 2.5.41
2002-10-11 1:09 ` James Bottomley
@ 2002-10-11 1:59 ` Doug Ledford
2002-10-17 5:52 ` block TCQ [was: Re: Degraded I/O performance, since 2.5.41] Luben Tuikov
0 siblings, 1 reply; 5+ messages in thread
From: Doug Ledford @ 2002-10-11 1:59 UTC (permalink / raw)
To: James Bottomley; +Cc: Dave Hansen, linux-scsi
On Thu, Oct 10, 2002 at 06:09:14PM -0700, James Bottomley wrote:
> OK, this patch should fix it. Do your performance numbers for ips improve
> again with this?
Well, it should help. Most drivers set cmd_per_lun too low to really be
good here (and well they should because you only want it big enough to
keep a CD-R or tape streaming, no more, because it's only intended to be
used on non-tagged devices, disks should have their depth set via
scsi_adjust_queue_depth() by the low level driver). This is in fact the
right thing to do though, so I've added it to my code here as well since
it's required in order for cmd_per_lun to do the right thing in regards to
untagged devices. The real answer is to update the ServeRAID driver to
the new tagged queue adjustment mechanism I just wrote an intro to and
sent to linux-scsi.
As a side note, the generic block layer tagged queueing mechanism may not
be suitable for a lot of SCSI drivers (I know it's not suitable for mine
at all). How many of the drivers in the scsi tree today keep a shared tag
table between all devices on a host and how many of them have separate tag
tables for each device? Show of hands anyone? Justin, what about the
modern aic7xxx driver? Gerard?
> James
>
--
Doug Ledford <dledford@redhat.com> 919-754-3700 x44233
Red Hat, Inc.
1801 Varsity Dr.
Raleigh, NC 27606
^ permalink raw reply [flat|nested] 5+ messages in thread
* block TCQ [was: Re: Degraded I/O performance, since 2.5.41]
2002-10-11 1:59 ` Doug Ledford
@ 2002-10-17 5:52 ` Luben Tuikov
0 siblings, 0 replies; 5+ messages in thread
From: Luben Tuikov @ 2002-10-17 5:52 UTC (permalink / raw)
To: linux-scsi
Doug Ledford wrote:
>
> As a side note, the generic block layer tagged queueing mechanism may not
> be suitable for a lot of SCSI drivers (I know it's not suitable for mine
> at all). How many of the drivers in the scsi tree today keep a shared tag
> table between all devices on a host and how many of them have separate tag
> tables for each device? Show of hands anyone? Justin, what about the
> modern aic7xxx driver? Gerard?
>
Ok. SAM-3 specifies that the initiator assigns task tags (4.9.1).
Who is the initiator?
But, the Abort Task and Abort Task Set (and friends) task management
functions are requested by the application client.
Futhermore, 6.2 Abort Task uses an I_T_L_Q nexus, that is, a tagged task.
So, to cancel an untagged task, one would use the 6.3 Abort Task Set,
which would be consistent since there should be only one untagged task
per initiator.
What are the implications and can we model around this?
Checking up on the definitions, 3.1.4 application client and 3.1.93
the initiator is your driver and the application client is the
SCSI core/block layer/sg/whatever.
AFAIR, IDE happened to support some type of tagging and all of a sudden
TCQ was moved up to the block layer, since SCSI has had it all along.
While this is alright, SAM-3 suggests that TCQ _generation_ is performed
by the SCSI initiator port (i.e. the SCSI LLDD) and for valid reasons...
(again those have to do with the underlying transport/interconnect...)
Thus, the only thing which the block layer would need to know is
_if_ TCQ is supported, but genereration of tags should be left to the
SCSI LLDD.
--
Luben
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2002-10-17 5:52 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <Pine.LNX.4.44.0210092015170.9790-100000@home.transmeta.com>
2002-10-10 23:48 ` Degraded I/O performance, since 2.5.41 Dave Hansen
2002-10-10 23:54 ` James Bottomley
2002-10-11 1:09 ` James Bottomley
2002-10-11 1:59 ` Doug Ledford
2002-10-17 5:52 ` block TCQ [was: Re: Degraded I/O performance, since 2.5.41] Luben Tuikov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).