May 9, 2021
It depends. For buffered I/O, there is a copy between kernel and userspace buffers. For Direct I/O, the kernel pins a user-provided buffer for the duration of the operation. After the operation completes, the data is already in the buffer so there is no need to keep the pin any longer.