[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-devel] [patch #8882] Vector improvements
From: |
Joel Cunningham |
Subject: |
[lwip-devel] [patch #8882] Vector improvements |
Date: |
Wed, 8 Feb 2017 17:12:17 -0500 (EST) |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0 |
Follow-up Comment #29, patch #8882 (project lwip):
Sounds good! From where we left off, there wasn't a conclusion on the way to
represent a set of vectors as they move down the stack (sockets -> netconn ->
TCP).
We had explored the idea of creating a pbuf chain in the sockets layer (to
avoid introducing a vector type) but then had discussed how a chain of
PBUF_REFs would end up being copied; 1) because tcp_write() doesn't take pbuf
as input and
2) even if we had a tcp_write() that took pbufs, we need a copy since TCP
holds onto the data. This makes creating the pbuf chain in sockets a wasted
effort.
If we refresh on my original patch, it was adding support to
lwip_netconn_do_writemore() to operate on a set of data pointers, calling
tcp_write for each pointer before calling tcp_output (making the send of all
vectors atomic). There is no in-efficiency here for the vector case, but
there was concern about the added checks for the normal TCP send case (which
becomes a single vector case) because after calling tcp_write(), we do a
couple of small checks to see if there are any more vectors before exiting
do_writemore(). Maybe this is a helpful data point, but other TCP/IP stacks
that I've studied implement send() and sendmsg() in the same pathway, with
send() using a single vector.
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/patch/?8882>
_______________________________________________
Message sent via/by Savannah
http://savannah.nongnu.org/
- [lwip-devel] [patch #8882] Vector improvements, Simon Goldschmidt, 2017/02/08
- [lwip-devel] [patch #8882] Vector improvements,
Joel Cunningham <=
- [lwip-devel] [patch #8882] Vector improvements, Simon Goldschmidt, 2017/02/09
- [lwip-devel] [patch #8882] Vector improvements, Joel Cunningham, 2017/02/09
- [lwip-devel] [patch #8882] Vector improvements, Joel Cunningham, 2017/02/16
- [lwip-devel] [patch #8882] Vector improvements, Simon Goldschmidt, 2017/02/17
- [lwip-devel] [patch #8882] Vector improvements, Joel Cunningham, 2017/02/17
- [lwip-devel] [patch #8882] Vector improvements, Simon Goldschmidt, 2017/02/17
- [lwip-devel] [patch #8882] Vector improvements, Joel Cunningham, 2017/02/17
- [lwip-devel] [patch #8882] Vector improvements, Simon Goldschmidt, 2017/02/17
- [lwip-devel] [patch #8882] Vector improvements, Joel Cunningham, 2017/02/17
- [lwip-devel] [patch #8882] Vector improvements, Joel Cunningham, 2017/02/24