DragonFly BSD
DragonFly kernel List (threaded) for 2005-08
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: FreeBSD TCP/IP Cleanup and Optimizations

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Mon, 1 Aug 2005 08:26:29 -0700 (PDT)

:-On [20050801 09:45], Albert Miles Enabe (amenabe@xxxxxxxxx) wrote:
:>May I know if these would-be optimizations will also
:>find their way into the DragonFly kernel?
:I think you will find Jeffrey Hsu already did a lot of cleanups, rewrites
:and optimizations.
:Furthermore, the optimization of FreeBSD is needed due to their way of SMP.
:Our way of SMP is radically different, and dare I say easier, than theirs.
:So I doubt much of that work would be ported over.  They are two radically
:different beasts.
:Jeroen Ruigrok van der Werven <asmodai(at)wxs.nl> / asmodai / kita no mono

   Yah, I would agree with that assessment.  Our networking subsystem and
   our TCP stack in particular is already far ahead of FreeBSD's.  Jeff 
   and I (mostly Jeff) have been working on it for a while.  Nearly all of
   our networking paths are already very close to optimal.  For example,
   Jeff implemented an objcache memory allocator that has far more optimal
   allocation and deallocation paths for mbuf handling then what you see
   in FreeBSD.

   The top two items on my TODO list after Joerg finishes the stat work
   and we roll a new preview are:  Getting rid of the BGL from the network
   stack and implementing undo records in the journaling code.

   The BGL work on the network stack is very close.  There are two queueing
   mechanisms that need to be locked up (sockbufs and IPQ), after which we
   will basically be able to turn off the big giant lock in the network
   protocol threads.  IPQ should be straightforward.  The sockbufs are more
   of an issue but it should be possible to separate the reader and writer
   sides of each sockbuf to avoid contention between userland and the
   protocol stack.

					Matthew Dillon 

[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]