I have an impression the zero-copy technology is frequently tied up with
network I/O. Recently I found people in Xen community start talking
zero-copy for disk I/O as well (e.g. scsi front-end/back-end driver and
blktap in Xen). So is there any difference for zero-copy between disk I/O
and network I/O? O_DIRECT can be used to eliminate the kernel buffer copy,
isn't it counted as part of zero-copy for disk I/O?
I don't have the context for the discussions you saw (were they on the mailing
list? I may have missed them...) but I suspect they were referring to the
fact that there is no copy in the disk -> dom0 -> guest path. This is
because dom0 does disk DMA direct to domU pages. The guest may still perform
a copy in order to move data between its buffer cache and userspace.
When people talk about network IO being zero copy in a more general case (i.e.
not just Xen-specific) it tends to refer to the need to copy data on its way
to the userspace consumers.
Cheers,
Mark