performance issues: linux aic7xxx, 29160, Radion IFT-7200
Eric Dantan Rzewnicki
rzewnickie at rfa.org
Wed Mar 13 11:08:19 PST 2002
Ok,
I added these printk lines in aic7xxx_core.c:
printk("DEBUG: before ahc->user_discenable = discenable ... %u\n",
ahc->user_discenable);
ahc->user_discenable = discenable;
printk("DEBUG: after ahc->user_discenable = discenable ... %u\n",
ahc->user_discenable);
which produced this:
DEBUG: before ahc->user_discenable = discenable ... 0
DEBUG: after ahc->user_discenable = discenable ... 65535
newbunyan:~# cat /proc/scsi/aic7xxx/0
Adaptec AIC7xxx driver version: 6.2.5
aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs
Channel A Target 0 Negotiation Settings
User: 160.000MB/s transfers (80.000MHz DT, offset 255, 16bit)
Goal: 160.000MB/s transfers (80.000MHz DT, offset 63, 16bit)
Curr: 160.000MB/s transfers (80.000MHz DT, offset 63, 16bit)
Channel A Target 0 Lun 0 Settings
Commands Queued 1173
Commands Active 0
Command Openings 253
Max Tagged Openings 253
Device Queue Frozen Count 0
Channel A Target 1 Negotiation Settings
User: 160.000MB/s transfers (80.000MHz DT, offset 255, 16bit)
Goal: 160.000MB/s transfers (80.000MHz DT, offset 62, 16bit)
Curr: 160.000MB/s transfers (80.000MHz DT, offset 62, 16bit)
Channel A Target 1 Lun 0 Settings
Commands Queued 55
Commands Active 0
Command Openings 253
Max Tagged Openings 253
Device Queue Frozen Count 0
Channel A Target 2 Negotiation Settings
User: 160.000MB/s transfers (80.000MHz DT, offset 255, 16bit)
Channel A Target 3 Negotiation Settings
User: 160.000MB/s transfers (80.000MHz DT, offset 255, 16bit)
Channel A Target 4 Negotiation Settings
User: 160.000MB/s transfers (80.000MHz DT, offset 255, 16bit)
Channel A Target 5 Negotiation Settings
User: 160.000MB/s transfers (80.000MHz DT, offset 255, 16bit)
Channel A Target 6 Negotiation Settings
User: 160.000MB/s transfers (80.000MHz DT, offset 255, 16bit)
Channel A Target 7 Negotiation Settings
User: 160.000MB/s transfers (80.000MHz DT, offset 255, 16bit)
Channel A Target 8 Negotiation Settings
User: 160.000MB/s transfers (80.000MHz DT, offset 255, 16bit)
Goal: 40.000MB/s transfers (20.000MHz, offset 15, 16bit)
Curr: 40.000MB/s transfers (20.000MHz, offset 15, 16bit)
Channel A Target 8 Lun 0 Settings
Commands Queued 1
Commands Active 0
Command Openings 1
Max Tagged Openings 0
Device Queue Frozen Count 0
Channel A Target 9 Negotiation Settings
User: 160.000MB/s transfers (80.000MHz DT, offset 255, 16bit)
Channel A Target 10 Negotiation Settings
User: 160.000MB/s transfers (80.000MHz DT, offset 255, 16bit)
Channel A Target 11 Negotiation Settings
User: 160.000MB/s transfers (80.000MHz DT, offset 255, 16bit)
Channel A Target 12 Negotiation Settings
User: 160.000MB/s transfers (80.000MHz DT, offset 255, 16bit)
Channel A Target 13 Negotiation Settings
User: 160.000MB/s transfers (80.000MHz DT, offset 255, 16bit)
Channel A Target 14 Negotiation Settings
User: 160.000MB/s transfers (80.000MHz DT, offset 255, 16bit)
Channel A Target 15 Negotiation Settings
User: 160.000MB/s transfers (80.000MHz DT, offset 255, 16bit)
I've asked my manager about the possibilities of either renting a SCSI
bus analyzer or shipping our hardware to you. He's out today, so I
probably won't get a response until tomorrow.
-Eric
"Justin T. Gibbs" wrote:
>
> >"Justin T. Gibbs" wrote:
> >>
> >> >Hello again,
> >>
> >> I wonder if for some reason we have disconnection disabled? I get much
> >> better performance than that talking to a plain old 10K RPM disk. Can
> >> you go into aic7xxx.c, search for ahc->user_discenable and print out the
> >> contents of that variable?
> >
> >linux-2.4.18/drivers/scsi/aic7xxx/aic7xxx.c
> >(not-patched, so this is version 6.2.4)
> >line 4547
> >ahc->user_discenable = discenable;
>
> I meant insert a printf to display the actual value of the variable
> after it is set. 8-)
>
> >same in 2.4.16 ( I guess that's the same version so that would make
> >sense, of course...)
> >
> >after patching the 2.4.18 sources for aic7xxx 6.2.5 the file names in
> >drivers/scsi/aic7xxx/ are different. Which one should I be looking at
> >there?
>
> aic7xxx_core.c
>
> >> >Is there something else I can do to try to get better performance with
> >> >the new driver?
> >>
> >> If I understood why the performance was bad, I'd tell you. 8-)
> >> Any chance you can rent a SCSI bus analyzer for a day and capture
> >> some traces?
> >
> >umm, I'll check with the boss, but I doubt it. Where would a person rent
> >such a thing?
>
> Check the yellow pages under electronic test equipment rentals. This
> is the same place you'd go to rent a logic analyzer or scope for a few
> days. You could also see if Verisys, Ancot, or Innotec, would allow
> you to "demo" their SCSI analyzer products.
>
> >Ok, so probably very few people would ever care only about sequential
> >performance? We will have up to 4 streams of current broadcasts writing
> >to disk and potentially 'many' users streaming via http or copying via
> >http or smb from the archive. And for a time, someone will be copying
> >the past archives off CDs onto the raid via a samba share.
> >
> >Can hdparm be used to measure non-sequential performance? is there a way
> >to quantify this?
>
> hdparam is a very poor benchmark in general. Doug Ledford lists some
> other benchmarking tools on his web site that might be of interest,
> but I have never tried them personally.
>
> I'm still very perplexed by the difference in performance. Can you
> also provide a cat of /proc/scsi/aic7xxx/0 <- or whatever bus number
> happens to have this device on it.
>
> --
> Justin
>
> To Unsubscribe: send mail to majordomo at FreeBSD.org
> with "unsubscribe aic7xxx" in the body of the message
To Unsubscribe: send mail to majordomo at FreeBSD.org
with "unsubscribe aic7xxx" in the body of the message
More information about the aic7xxx
mailing list