Re: htpt366 PCI latency value is really high

From: Mike Mattie
Date: Sat Apr 28 2007 - 02:11:12 EST


--Sig_v_WEieGHBbHJStsP_ftKiz3
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

On Thu, 26 Apr 2007 18:30:33 +0400
Sergei Shtylyov <sshtylyov@xxxxxxxxxxxxx> wrote:

> Hello.
>=20
> Mike Mattie wrote:
>=20
> > while hunting down some latency problems I found something quite
> > odd. The latency reported by lspci -v for the HTP203N card is
> > enormous.
>=20
> > 00:09.0 RAID bus controller: Triones Technologies, Inc. HPT302/302N
> > (rev 02) Subsystem: Triones Technologies, Inc. Unknown device 0001
> > Flags: bus master, 66MHz, medium devsel, latency 120, IRQ 17
> > I/O ports at ec00 [size=3D8]
> > I/O ports at e800 [size=3D4]
> > I/O ports at e400 [size=3D8]
> > I/O ports at e000 [size=3D4]
> > I/O ports at dc00 [size=3D256]
> > Expansion ROM at dffe0000 [disabled by cmd] [size=3D128K]
> > Capabilities: [60] Power Management version 2
>=20
> > I am assuming that the "latency" field here is the PCI latency timer
> > which means this card is a bus hog.=20
>=20
> > From some reading on this issue linux methodically sets a sane
> > value for all the PCI cards it sets up, which looks normal on the
> > rest of the system, which is set to the value: 32
>=20
> Hm, I'm only seeing clamping to the smallest of 64 and
> pcibios_max_latency (255) in arch/i386/pci/i386.c if the latency
> value is too low... Which arch are you using?
>=20
> > setting the value 32 with:
>=20
> > setpci -v -s "00:09.0" latency_timer=3D32
>=20
> > 00:09.0 RAID bus controller: Triones Technologies, Inc. HPT302/302N
> > (rev 02) Subsystem: Triones Technologies, Inc. Unknown device 0001
> > Flags: bus master, 66MHz, medium devsel, latency 48, IRQ 17
> > I/O ports at ec00 [size=3D8]
> > I/O ports at e800 [size=3D4]
> > I/O ports at e400 [size=3D8]
> > I/O ports at e000 [size=3D4]
> > I/O ports at dc00 [size=3D256]
> > Expansion ROM at dffe0000 [disabled by cmd] [size=3D128K]
> > Capabilities: [60] Power Management version 2
>=20
> > Results in 48, which is not what I asked, but hopefully this is
> > linux doing the right thing.

output is decimal, input is hex - self-rtfm.
=20
> Not sure -- seems likely that it's the chip's own enforced minimum
> instead...
>=20
> > I know this chipset is pretty brain-damaged, but is this
> > high latency value a work-around for broken hardware, or
>=20
> More like it. Although HighPoint's own drivers force 64.
>=20
> > just a oversight ?
>=20
> Not likely since the value is too "special"...

I have ran with a setting of 40 for a couple of days without any trouble.
There are many reasons a card would default to a higher level, but in
the end it is basically tuning the card for a server application.

A warning that some cards default to high PCI latency values; settings that=
=20
can interfere with latency sensitive devices such as sounds cards - this=20
could be a help to others. =20

00:09.0 RAID bus controller: Triones Technologies, Inc. HPT302/302N
(rev 02) Subsystem: Triones Technologies, Inc. Unknown device 0001
Flags: bus master, 66MHz, medium devsel, latency 40, IRQ 19
I/O ports at ec00 [size=3D8]
I/O ports at e800 [size=3D4]
I/O ports at e400 [size=3D8]
I/O ports at e000 [size=3D4]
I/O ports at dc00 [size=3D256]
Expansion ROM at dffe0000 [disabled by cmd] [size=3D128K]
Capabilities: [60] Power Management version 2


> > Cheers,
> > Mike Mattie - codermattie@xxxxxxxxx
>=20
> WBR, Sergei

--Sig_v_WEieGHBbHJStsP_ftKiz3
Content-Type: application/pgp-signature; name=signature.asc
Content-Disposition: attachment; filename=signature.asc

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFGMuU0dfRchrkBInkRAnTvAKCaBWAWAdih72K8mBb8biPgOlvjhgCdF3C3
TYOv5eNrXVIqIew2VkLMT4w=
=PoR3
-----END PGP SIGNATURE-----

--Sig_v_WEieGHBbHJStsP_ftKiz3--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/