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>