SPDK_IOAT

SPDK IOAT Engine

SPDK ioat是一个加速框架,可以实现多个CPU任务异步的Memcpy操作,并在操作结束后通知CPU(调用回调函数)。

这种方式可以减少让CPU省下来做更多其他的事情。

相关函数

SPDK_IOAT_FLUSH

函数原型 void spdk_ioat_flush(struct spdk_ioat_chan *ioat)

将之前设置的ioat文件描述符通过DMA方式触发工作。

SPDK_IOAT_SUBMIT_COPY

函数原型 int spdk_ioat_submit_copy(struct spdk_ioat_chan *ioat, void *cb_arg, spdk_ioat_req_cb cb_fn, void *dst, const void *src, uint64_t nbytes)

把任务从 src 搬运长度为 nbytesdst 组成DMA任务,并通过flush函数发送下去。

任务完成后会调用 cb_fn(cb_arg)

SPDK_IOAT_BUILD_COPY