misc: mic: SCIF DMA and CPU copy interface
authorSudeep Dutt <sudeep.dutt@intel.com>
Wed, 30 Sep 2015 01:16:04 +0000 (18:16 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 4 Oct 2015 11:54:54 +0000 (12:54 +0100)
commit7cc31cd27752e5e92f968e39095c4ea9d78c758e
tree3663ec9ef05fc10ec4920f4b431a9fc184d9fd21
parentf1a2d865e78d00a4b6d364a8e341b6ebe4f10228
misc: mic: SCIF DMA and CPU copy interface

SCIF allows users to read from or write to registered remote memory
via CPU copies or DMA. The API verifies that both local and remote
windows are valid before initiating the CPU or DMA transfers. SCIF has
optimized algorithms for handling byte aligned as well as cache line
aligned DMA engines. A registration cache is maintained to avoid the
overhead of pinning pages repeatedly if buffers are reused. The
registration cache is invalidated upon receipt of MMU notifier
callbacks.  SCIF windows are destroyed and the pages are unpinned only
once all prior DMAs initiated using that window are drained. Users can
request synchronous DMA operations as well as tail byte ordering if
required. CPU copies are always performed synchronously.

Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Nikhil Rao <nikhil.rao@intel.com>
Signed-off-by: Sudeep Dutt <sudeep.dutt@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/mic/scif/scif_dma.c [new file with mode: 0644]