On Wed, Jun 18, 2025 at 09:30:51PM -0600, Keith Busch wrote: >On Wed, Jun 18, 2025 at 03:13:41PM +0200, Bernd Schubert wrote: >> On 6/18/25 12:54, xiaobing.li wrote: >> > >> > Hi Bernd, >> > >> > Do you have any plans to add zero copy solution? We are interested in >> > FUSE's zero copy solution and conducting research in code. >> > If you have no plans in this regard for the time being, we intend to >> > submit our solution. >> >> Hi Xiobing, >> >> Keith (add to CC) did some work for that in ublk and also planned to >> work on that for fuse (or a colleague). Maybe Keith could >> give an update. > >I was initially asked to implement a similar solution that ublk uses for >zero-copy, but the requirements changed such that it won't work. The >ublk server can't directly access the zero-copy buffers. It can only >indirectly refer to it with an io_ring registered buffer index, which is >fine my ublk use case, but the fuse server that I was trying to >enable does in fact need to directly access that data. > >My colleauge had been working a solution, but it required shared memory >between the application and the fuse server, and therefore cooperation >between them, which is rather limiting. It's still on his to-do list, >but I don't think it's a high priority at the moment. If you have >something in the works, please feel free to share it when you're ready, >and I would be interested to review. Hi Bernd and Keith, In fact, our current idea is to implement a similar solution that ublk uses for zero-copy. If this can really further improve the performance of FUSE, then I think it is worth trying. By the way, if it is convenient, could you tell me what was the original motivation for adding io_uring, or why you want to improve the performance of FUSE and what you want to apply it to? Best regards -- Xiaobing Li