PCI IRQ latency

Daniel O'Connor doconnor at gsoft.com.au
Wed Aug 19 03:39:08 UTC 2009


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

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

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

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

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

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

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

Thanks.

-- 
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: This is a digitally signed message part.
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20090819/5c6d6de2/attachment.pgp


More information about the freebsd-hackers mailing list