As presented in our talk at this year's OLS, the Bensley platform, which
will be out in early 2006, will have an asyncronous DMA engine. It can be
used to offload copies from the CPU, such as the kernel copies of received
packets into the user buffer.
The code consists of the following sections:
1) The HW driver for the DMA engine device
2) The DMA subsystem, which abstracts the HW details from users of the
async DMA
3) Modifications to net/ to make use of the DMA engine for receive copy
offload:
3a) Code to register the net stack as a "DMA client"
3b) Code to pin and unpin pages associated with a user buffer
3c) Code to initiate async DMA transactions in the net receive path
Today we are releasing 2, 3a, and 3b, as well as "testclient", a throwaway
driver we wrote to demonstrate the DMA subsystem API. We will be releasing
3c shortly. We will be releasing 1 (the HW driver) when the platform ships
early next year. Until then, the code doesn't really *do* anything, but we
wanted to release what we could right away, and start getting some
feedback.
Against 2.6.14:
patch 1: DMA engine
patch 2: iovec pin/unpin code; register net as a DMA client
patch 3: testclient
overall diffstat information:
drivers/Kconfig | 2
drivers/Makefile | 1
drivers/dma/Kconfig | 40 ++
drivers/dma/Makefile | 5
drivers/dma/cb_list.h | 12
drivers/dma/dmaengine.c | 394 ++++++++++++++++++++++++
drivers/dma/testclient.c | 132 ++++++++
include/linux/dmaengine.h | 268 ++++++++++++++++
net/core/Makefile | 3
net/core/dev.c | 78 ++++
net/core/user_dma.c | 422 ++++++++++++++++++++++++++
11 files changed, 1356 insertions(+), 1 deletion(-)
Regards -- Andy and Chris
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]