tcpcb (was Re: sockbuf (was Re: BGL-free net stack))
Aggelos Economopoulos
aoiko at cc.ece.ntua.gr
Mon Jun 16 10:21:03 PDT 2008
On Tuesday 10 June 2008, Aggelos Economopoulos wrote:
> On Tuesday 10 June 2008, Sepherosa Ziehau wrote:
[...]
> > Ah, I see. Sorry, I misread the previous mail. I think you could use
> > -1 in soport()
>
> Any unused value would do, right? Isn't this a hint that we should just move
> pr_ctloutput to pru_ctloutput and add a PRU_CTLOUTPUT value?
What I've got seems to work (I can't easily test the ip_mroute changes), even
though I'm not completely happy with the implementation. You (I don't mean
just Sephe here) can get the changes by pulling the tcpcb branch from the git
repo at git://repo.or.cz/dragonfly/netmp.git or by fetching
http://leaf.dragonflybsd.org/~aggelos/B1-sopt.patch and applying it to HEAD.
Please test in your regular setup and report any errors ("works for me" is
interesting too). This patch does NOT contain any sockbuf changes and should
be quite safe. That said, don't run it on your production boxes yet.
I'd also like to know what the developers think about
int
kva_p(const void *addr)
{
/* XXX: mapped? */
return ((unsigned long)KvaStart <= (unsigned long)addr) &&
((unsigned long)addr < (unsigned long)KvaEnd);
}
do we need such a function? Should it be quick-n-silly like above or
should it check if there is a page mapped on addr as well?
diffstat for the patch is
kern/uipc_msg.c | 45 +++++++++++++++++----
kern/uipc_socket.c | 82 ++++++++++++++++++++++++++++++++++++++--
net/dummynet/ip_dummynet_glue.c | 8 +--
net/ip_mroute/ip_mroute.c | 32 +++++++--------
net/ipfw/ip_fw2.c | 61 ++++++++++++++---------------
net/netisr.h | 9 ----
net/netmsg.h | 7 +++
netinet/ip_output.c | 56 ++++++++++++---------------
netinet/tcp_usrreq.c | 21 ++--------
netinet6/ip6_output.c | 34 ++++++----------
sys/protosw.h | 5 +-
sys/socketops.h | 2
sys/socketvar.h | 5 ++
13 files changed, 228 insertions(+), 139 deletions(-)
Aggelos
More information about the Kernel
mailing list