Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Aug 2009 12:53:20 +0930
From:      "Daniel O'Connor" <doconnor@gsoft.com.au>
To:        freebsd-hackers@freebsd.org
Subject:   PCI IRQ latency
Message-ID:  <200908191253.27951.doconnor@gsoft.com.au>

next in thread | raw e-mail | index | archive | help
--nextPart3105456.LXgneOTOXJ
Content-Type: text/plain;
  charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Hi,
We have a custom PCI (slave only, very slow) card to do data transfer,=20
and on some systems we are seeing problems with the data source FIFO=20
filling up.

The data rate is 1.7Mb/sec and the FIFO is 96k in size, however it only=20
generates an IRQ when it has 16k of data in it, so it should have=20
~4.5msec of buffer available once an IRQ is issued.

The systems are Supermicro C2SBA+ with Core 2 Duos of varying speeds=20
(~1.5GHz) running FreeBSD 6.2 amd64. The kernel conf is basically=20
GENERIC, although I have also tried compiling out SMP but the problem=20
still persists.

The card is not sharing an IRQ with any other card I can see (it has irq=20
20 and nothing else uses that).

Due to the legacy nature of the card the interrupt handler for it is=20
pretty horrible - it reads 16k worth of data out 32 bits at a time=20
doing slave transactions. I can't do bursting because it is reading=20
from a FIFO, and due to the speed of the FIFO & cable runs each read=20
takes several PCI cycles.

I did some googling and found=20
http://www.mail-archive.com/freebsd-usb%40freebsd.org/msg04576.html=20
which would seem to indicate we would be OK.

Unfortunately it seems that _something_ blocks interrupts for >4=20
milliseconds, however I have no real idea how to go about finding what=20
it is.. Does anyone have any suggestions? (apart from get a new DAQ=20
card, I know this one already :)

Thanks.

=2D-=20
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
"The nice thing about standards is that there
are so many of them to choose from."
  -- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C

--nextPart3105456.LXgneOTOXJ
Content-Type: application/pgp-signature; name=signature.asc 
Content-Description: This is a digitally signed message part.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.12 (FreeBSD)

iD8DBQBKi3Av5ZPcIHs/zowRAjMtAKCYT3Nc9HbO9qQudeDhAh59psI0rgCeP1k+
x2gMEz8wadGi58ji/d1/ZQE=
=PVT5
-----END PGP SIGNATURE-----

--nextPart3105456.LXgneOTOXJ--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200908191253.27951.doconnor>