Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 8 Dec 2012 08:51:12 -1000 (HST)
From:      Jeff Roberson <jroberson@jroberson.net>
To:        arm@freebsd.org, mips@freebsd.org, powerpc@freebsd.org,  sparc64@freebsd.org, John Baldwin <jhb@FreeBSD.org>, attilio@FreeBSD.org,  mav@FreeBSD.org, scottl@freebsd.org, kib@freebsd.org, marcel@freebsd.org
Subject:   Call for testing and review, busdma changes
Message-ID:  <alpine.BSF.2.00.1212080841370.4081@desktop>

next in thread | raw e-mail | index | archive | help
Hello,

http://people.freebsd.org/~jeff/physbio.diff

I have a relative large patch that reforms the busdma API so that new 
types may be added without modifying every architecture's 
busdma_machdep.c.  It does this by unifying the bus_dmamap_load_buffer() 
routines so that they may be called from MI code.  The MD busdma is then 
given a chance to do any final processing in the complete() callback. 
This patch also contains cam changes to unify the bus_dmamap_load* 
handling in cam drivers.

The arm and mips implementations saw the largest changes since they have 
to track virtual addresses for sync().  Previously this was done in a type 
specific way.  Now it is done in a generic way by recording the list of 
virtuals in the map.

I have verified that this patch passes make universe which includes 
several kernel builds from each architecture.  I suspect that if I broke 
anything your machine simply won't boot or will throw I/O errors.  There 
is little subtlety, it is mostly refactoring.

The next step is to allow for dma loading of physical addresses.  This 
will permit unmapped I/O.  Which is a significant performance optimization 
targeted for 10.0.

Many thanks for your assistance.  Any review feedback is also appreciated.

Jeff



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1212080841370.4081>