From owner-cvs-src@FreeBSD.ORG Thu Oct 7 23:48:48 2004 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A2E1116A4CE; Thu, 7 Oct 2004 23:48:48 +0000 (GMT) Received: from pooker.samsco.org (pooker.samsco.org [168.103.85.57]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1222643D45; Thu, 7 Oct 2004 23:48:48 +0000 (GMT) (envelope-from scottl@FreeBSD.org) Received: from [192.168.254.11] (junior-wifi.samsco.home [192.168.254.11]) (authenticated bits=0) by pooker.samsco.org (8.12.11/8.12.10) with ESMTP id i97Nmhcw026795; Thu, 7 Oct 2004 17:48:43 -0600 (MDT) (envelope-from scottl@FreeBSD.org) Message-ID: <4165D5A1.7060504@FreeBSD.org> Date: Thu, 07 Oct 2004 17:47:45 -0600 From: Scott Long User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.2) Gecko/20040831 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Brian Fundakowski Feldman References: <200410071621.i97GL3lu029620@repoman.freebsd.org> <20041007175206.GA82275@ns1.xcllnt.net> <4165C120.7040005@root.org> <4165C1EF.7020407@FreeBSD.org> <20041007224300.GF73261@green.homeunix.org> <4165CBE2.9020906@FreeBSD.org> <20041007232653.GG73261@green.homeunix.org> In-Reply-To: <20041007232653.GG73261@green.homeunix.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, hits=0.0 required=3.8 tests=none autolearn=no version=2.63 X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on pooker.samsco.org cc: src-committers@FreeBSD.org cc: cvs-src@FreeBSD.org cc: cvs-all@FreeBSD.org cc: Marcel Moolenaar cc: Nate Lawson cc: Warner Losh Subject: Re: cvs commit: src/sys/sys pbioio.h src/sys/i386/isa pbio.csrc/sys/conf files.i386 src/sys/i386/conf NOTES X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Oct 2004 23:48:48 -0000 Brian Fundakowski Feldman wrote: > On Thu, Oct 07, 2004 at 05:06:10PM -0600, Scott Long wrote: > >>Brian Fundakowski Feldman wrote: >> >>>On Thu, Oct 07, 2004 at 04:23:43PM -0600, Scott Long wrote: >>> >>> >>>>Nate Lawson wrote: >>>> >>>> >>>>>Marcel Moolenaar wrote: >>>>> >>>>> >>>>> >>>>>>On Thu, Oct 07, 2004 at 04:21:03PM +0000, Warner Losh wrote: >>>>>> >>>>>> >>>>>> >>>>>>>imp 2004-10-07 16:21:03 UTC >>>>>>> >>>>>>>FreeBSD src repository >>>>>>> >>>>>>>Modified files: >>>>>>>sys/conf files.i386 sys/i386/conf NOTES >>>>>>>Added files: >>>>>>>sys/sys pbioio.h sys/i386/isa pbio.c Log: >>>>>>>Port pbio to HEAD. >>>>>> >>>>>> >>>>>> >>>>>>I appreciate your speed, but don't you think that pbioio.h is pretty >>>>>>MD given that the driver only exists on i386. Wouldn't >>>>>> >>>>>>be a better place? >>>>> >>>>> >>>>>Also, I think our policy for both RELENG_4 and -current is new inb/outb >>>>>in new drivers. The bus_space stuff is pretty easy to use so this isn't >>>>>too bad a requirement. >>>>> >>>> >>>>I agree that new code should _not_ be using unportable primitives unless >>>>there is very good reason. FWIW, I plan to make vtophys(), >>>>rman_get_virtual(), and other evil and i386-specific primitives very >>>>hard to use in 6-CURRENT, and I will strongly oppose importing new >>>>code that tries to abuse them. I was just hoping that 5.3 would pass >>>>before people started testing the boundaries. >>> >>> >>>Maybe first we should make the busdma API usable? The BUS_DMASYNC_* >>>macros are named positively terribly, and the documentation really >>>isn't any better. >>> >> >>I've been discussing this exact problem with others. Once 5.3 is done >>and not consuming 100% of my time, I'll start looking at this and the >>other API issues that exist. > > > Have there been any really good suggestions for sensible aliases? I > would really like to make my drivers readable, and these are the best > I came up with at the time: > > #define BUS_DMASYNC_PREDMA2CPU BUS_DMASYNC_PREREAD > #define BUS_DMASYNC_POSTDMA2CPU BUS_DMASYNC_POSTREAD > #define BUS_DMASYNC_PRECPU2DMA BUS_DMASYNC_PREWRITE > #define BUS_DMASYNC_POSTCPU2DMA BUS_DMASYNC_POSTWRITE I'll have to look at my notes from past discussions. I think that the goal was to make the ops look more like what they do in NetBSD, which has the notion of being in the perspective of the DMA engine that is doing the transfer, not from the perspective of the host CPU. Anyways, this is one of many things that need to change, but I'd like to hold off further discussions until 5.3 is done and I have time to think about it. > > I'm bitter because even making an attempt to get the bus_dmamap_sync() > right made busdma-ification take many times longer. That and > gratuitous usage of callbacks despite making synchronous allocations > were the only reasons that using the modern APIs wasn't easy as cake. > Let's not fall into this old trap. Yes, there are definite inconsistencies between mapping dynamic buffers and static buffers, and we should take that into account and fix it. Again, I'd have a lot of notes on this but won't be able to do anything with them for a few more weeks. Scott