On Sun, 05 Dec 1999, you wrote:
>
> > The question: Why doesn't this work... it seem so straight forward...
>
> I'm not sure about the code in question, but the basic assumptions you're
> making about PCI's behaviour are flawed. To achieve the goal you're
> trying to, you need to reduce the value of the PCI bus latency timer for
> the peripheral(s) that you're hoping to interrupt.
I don't want to interrupt the devices.. which would require the
transaction to reoccur... I do agree(from the book PCI System Architecture),
the Master Latency Timer should be decreased, but I still need the DMA
transactions to complete sooner from the time GNT# is removed by the
arbiter.
> Breaking up the DMA transactions leaves you vulnerable to the PCI
> peripheral noticing that the two segments are contiguous and coalescing
> them again into a single master write.
I don't think the NIC will do this... However it it possible... From 3com docs,
the 3c509bs don't... But I could probably reorder the dma requests to force
seperate transactions... maybe, maybe not.
> Also, you don't want the (high)
> overhead of forcing a re-arbitration all the time, rather you want to
> guarantee the worst-case cycle time involved in polling the peripheral.
> Again, to achieve this, you want to look at how the PCI bus latency timer
> works and use it instead.
I understand how it is working, but the I still beleive smaller DMA
transactions, while somewhat inefficient, will shorten the latency to something
reasonable.
> You will always get the best performance out of PCI by avoiding
> _anything_ that involves arbitrating for the bus. PCI bus transactions
> are reasonably expensive to start. 8( >
I agree. If I knew I could avoid handshaking the device, I would skip it...
It takes 20+% of the forwarding time..
I have another question: Is there a way to get the compiler to do a non
blocking mem read ? load to a hardwired zeroed register?
thanks a bunch,
kurt
>
>
>
> --
> \\ Give a man a fish, and you feed him for a day. \\ Mike Smith
> \\ Tell him he should learn how to fish himself, \\ [EMAIL PROTECTED]
> \\ and he'll hate you for a lifetime. \\ [EMAIL PROTECTED]
--
uname -a > Linux wookie.vandelden.com 2.2.13 #1 <
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message