How can SPDK process copy data to target process?
by yaoxinjing517@gmail.com
Currently, I want to build an SPDK backend for our app, which has multiple processes created by fork. To this end, we would like to create a process dedicated to SPDK for doing the IO work, for example, retrieving data from NVME and sending the data to other processes, or collect requests from other processes and sending data to NVME. However, SPDK doesn't support shared memory between native processes, so we intend to use the ring on shared memory (shm_open, etc.) for sending the request from other processes to the SPDK process. The difficulty is how the process running SPDK can achieve the zero-copy, which means, instead of copying the data from NVME disk to the process running SPDK and then copying it to shared memory, then copy it to the target process, we want the process running SPDK copy the data from NVME directly to the target process. Do you have any idea how we can achieve such stuff?