lkml.org 
[lkml]   [2002]   [Jul]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: How many copies to get from NIC RX to user read()?

> I could've sworn I heard the stack was single-copy
> on both the TX and RX sides. But, it doesn't look to
> me like it is. Rather, it looks like there is one copy
> in tcp_rcv_estabilshed() (via tcp_copy_to_iovec()), and a
> second copy in tcp_recvmsg() (which is called when the
> user calls read()). Both of these copies are, I believe,
> done by skb_copy_datagram_iovec().

tcp_recvmsg() only does the copy from the receive_queue
or the backlog queue. tcp_rcv_established() does the copy
directly into the iovec or queues it onto the receive_queue
or backlog queue for tcp_recvmsg() to complete the work. So
there arent two copies of the same data happening, just a
question of one or the other function doing the work depending
on whether there is currently a process doing a read or not..

hth,

thanks,
Nivedita


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:27    [W:0.083 / U:1.088 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site