From owner-freebsd-hackers Wed Feb 11 11:53:48 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id LAA05326 for hackers-outgoing; Wed, 11 Feb 1998 11:53:48 -0800 (PST) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from implode.root.com (implode.root.com [198.145.90.17]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id LAA05314 for ; Wed, 11 Feb 1998 11:53:37 -0800 (PST) (envelope-from root@implode.root.com) Received: from implode.root.com (localhost [127.0.0.1]) by implode.root.com (8.8.5/8.8.5) with ESMTP id LAA21296; Wed, 11 Feb 1998 11:43:52 -0800 (PST) Message-Id: <199802111943.LAA21296@implode.root.com> To: Brian McGovern cc: hackers@FreeBSD.ORG Subject: Re: Mapping phyical memory in to the PCI address range... In-reply-to: Your message of "Wed, 11 Feb 1998 14:36:43 EST." <199802111936.OAA02653@bmcgover-pc.cisco.com> From: David Greenman Reply-To: dg@root.com Date: Wed, 11 Feb 1998 11:43:52 -0800 Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG >Lets make sure I'm following you here.... :) There are too many components >labeled 'CPU' to throw it around lightly. What I _think_ you're saying >(I'm starting to sound like a psychiatrist) is that it makes the most sense >to map the card's memory in to the PCI address space, let the on-board CPU >access its (local) RAM, and then copy large chunks across the PCI bus, which >is how the card is manipulated in the current driver. > >The "win" I'm going for is to keep the host CPU load to a bare minimum. To >be honest, barring overloading the PCI bus, I could care less about the card's >CPU having to work hard, so long as it has enough time to move the data. So, >to summarize: > > >Host CPU Board CPU Is it a good thing? (tm) > >BUSY DMA'ing Data Driving the UARTs via Its ok. Thats how we do it > local RAM today > >Busy Doing other Busy driving UARTs and So long as we don't loose >things,occationally DMAing in to host throughput, this is >moving data in/out of memory optimal to me. >clists/buffers. > >Busy moving data Busy moving Data Not what I want. >around around It takes CPU time to initialize the DMA descriptors and device registers in order to start a DMA operation. This overhead will be higher than just copying out the characters to the PCI device directly like you do now if the number of characters is too small. It's not uncommon to actually use a hybrid approach with a threshold such that if there are less than n chars to output, then do it directly to the mapped PCI memory, otherwise do a DMA to the card. Does this make sense? -DG David Greenman Core-team/Principal Architect, The FreeBSD Project To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe hackers" in the body of the message