Date: Sun, 5 Dec 1999 23:38:55 -0600 From: kvandel <kvandel@cs.duke.edu> To: Mike Smith <msmith@FreeBSD.ORG> Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: fxp, xl driver question .. (routing) Message-ID: <99120600010702.01504@wookie.vandelden.com> In-Reply-To: <199912060440.UAA00678@mass.cdrom.com> References: <199912060440.UAA00678@mass.cdrom.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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, \\ msmith@freebsd.org > \\ and he'll hate you for a lifetime. \\ msmith@cdrom.com -- uname -a > Linux wookie.vandelden.com 2.2.13 #1 < To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?99120600010702.01504>