Annotation of wikisrc/projects/project/mpsafe_net_driver.mdwn, revision 1.4
1.1 maya 1: [[!template id=project
2:
1.3 martin 3: title="Making a network driver MPSAFE (175h)"
1.1 maya 4:
5: contact="""
6: [tech-net](mailto:tech-net@NetBSD.org)
7: """
8:
9: category="kernel"
10: difficulty="easy"
1.3 martin 11: duration="175h"
1.1 maya 12:
13: description="""
14:
15: Access to some hardware registers and other things can only be done by one CPU at a time.
16: An easy way to do this is to make the entire network stack runs with a single lock held, so operations only take place on one core.
17: This is inefficient, if you ever want to use more than one core, for faster performing cards.
18:
19: Adapting old drivers to be able to run with the rest of the network stack not having this lock will improve NetBSD networking.
20: A large number of drivers must be adapted, and some of them can be emulated from virtual machines too, some examples:
21:
1.4 ! wiki 22: * Realtek RTL8139 Gigabit Ethernet [[!template id=man name="re" section="4"]] (supported by QEMU)
! 23: * AMD PCnet [[!template id=man name="pcn" section="4"]] (supported by QEMU and VMware)
! 24: * Novell NE1000 [[!template id=man name="ne" section="4"]] (supported by QEMU)
! 25: * Atheros/Killer Gigabit Ethernet [[!template id=man name="alc" section="4"]]
! 26: * Attansic Gigabit Ethernet [[!template id=man name="ale" section="4"]]
! 27: * Broadcom Gigabit Ethernet [[!template id=man name="bge" section="4"]]
! 28: * Broadcom NetXtreme [[!template id=man name="bnx" section="4"]]
! 29:
! 30: You may find others listed in [[!template id=man name="pci" section="4"]].
! 31: It is possible you have a computing device with a device for which the driver
! 32: hasn't been converted yet.
! 33:
! 34: The file `src/doc/TODO.smpnet` in the NetBSD source tree contains a list of fully
! 35: converted drivers that you may use an an example, as well as some general guidelines.
1.1 maya 36:
1.3 martin 37: When applying for this project, please note which driver you would like
38: to work on.
1.1 maya 39: """
40:
41: ]]
42:
43: [[!tag gsoc]]
1.3 martin 44: [[!tag gsoc175h]]
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb