Diff for /wikisrc/projects/project/smp_networking.mdwn between versions 1.2 and 1.3

version 1.2, 2011/11/10 03:06:51 version 1.3, 2011/11/10 21:21:58
Line 38  At this time, The NetBSD Foundation is a Line 38  At this time, The NetBSD Foundation is a
 remove the single networking lock.  If you want to apply for this project,  remove the single networking lock.  If you want to apply for this project,
 please send your proposal to the contact addresses listed above.  please send your proposal to the contact addresses listed above.
   
   Due to the size of this project, your proposal does not need to cover
   everything to qualify for funding.  We have attempted to split the work
   into smaller units, and **you can submit funding applications for these
   smaller subtasks independently** as long as the work you deliver fits in
   the grand order of this project.  For example, you could send an
   application to make the network interfaces alone MP-friendly (see the *work
   plan* below).
   
 What follows is a particular design proposal, extracted from an  What follows is a particular design proposal, extracted from an
 [original text](http://www.NetBSD.org/~matt/smpnet.html) written by  [original text](http://www.NetBSD.org/~matt/smpnet.html) written by
 [Matt Thomas](mailto:matt@NetBSD.org).  You may choose to work on this  [Matt Thomas](mailto:matt@NetBSD.org).  You may choose to work on this
 particular proposal or come up with your own.  particular proposal or come up with your own.
   
 **Please note that the subtasks listed below are also open for funding  
 individually.**  
   
 # Tentative specification  # Tentative specification
   
 The future of NetBSD network infrastructure has to efficiently embrace two  The future of NetBSD network infrastructure has to efficiently embrace two
Line 75  Another source of complexity is the larg Line 80  Another source of complexity is the larg
 scattered throughout the source files.  This makes putting locks around  scattered throughout the source files.  This makes putting locks around
 them difficult.  them difficult.
   
   ## Subtasks
   
 The proposed solution presented here include the following tasks (in no  The proposed solution presented here include the following tasks (in no
 particular order) to achieve the desired goals of SMP support and  particular order) to achieve the desired goals of SMP support and
 modularity:  modularity:
   
 [[!map show="title" pages="projects/project/* and tagged(project) and tagged(smp_networking)"]]  [[!map show="title" pages="projects/project/* and tagged(project) and tagged(smp_networking)"]]
   
   ## Work plan
   
   Aside from the list of tasks above, the work to be done for this project
   can be achieved by following these steps:
   
   1. Move ARP out of the routing table.  See the [[nexthop_cache]] project.
   
   1. Make the network interfaces MP, which are one of the few users of the
      big kernel lock left.  This needs to support multiple receive and
      transmit queues to help reduce locking contention.  This also includes
      changing more of the common interfaces to do what the `tsec` driver does
      (basically do everything with softints).  This also needs to change the
      `*_input` routines to use a table to do dispatch instead of the current
      switch code so domain can be dynamically loaded.
   
   1. Collect global variables in the IP/UDP/TCP protocols into structures.
      This helps the following items.
   
   1. Make IPV4/ICMP/IGMP/REASS MP-friendly.
   
   1. Make IPV6/ICMP/IGMP/ND MP-friendly.
   
   1. Make TCP MP-friendly.
   
   1. Make UDP MP-friendly.
   
 # Radical thoughts  # Radical thoughts
   
 You should also consider the following ideas:  You should also consider the following ideas:

Removed from v.1.2  
changed lines
  Added in v.1.3


CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb