关键词:DMA.sync.async.SIGIO.F_SETSIG. DMA本身用于减轻CPU负担,进行CPU off-load搬运工作. 在DMA驱动内部实现有同步和异步模式,异步模式使用dma_async_issue_pending(),然后在callback()中发送SIGIO信号,用户空间收到SIGIO进行handler处理视为一个周期完成. 同步模式,采用dma_sync_wait()进行等待,期间并没有释放CPU给其他进程使用. 在一个项目中,发现DMA相关占用率高的问题,后来发现是…