On Thu, May 08, 2025 at 10:39:56AM +0200, Lars Ellenberg wrote: > For async replication, we want to actually copy data into send buffer, > we cannot have the network stack hold a reference to a page for which > we signalled io completion already. > > For sync replication we want to avoid additional data copy if possible, > so try to use "zero copy sendpage". I didn't even complain about having both variants :) > > That's why we have two variants of what looks to be the same thing. > > Why we do it that way: probably when we wrote that part, > a better infrastructure was not available, or we were not aware of it. Yes. While the iov_iter and the bvec version of have been around for a long time, drbd probably still predates them. > Thanks for the pointers, we'll look into it. > Using more efficient ways to do stuff sounds good. thanks. Note that now that ->sendpage has been replaced with the MSG_SPLICE_PAGES flag you can actually share most code for both variants as well.