[RFC] [PATCH 0/3] ioat: DMA engine support

From: Andrew Grover
Date: Wed Nov 23 2005 - 15:28:26 EST



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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/