- Contact: tech-net
- Duration estimate: 175h
Access to some hardware registers and other things can only be done by one CPU at a time.
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.
This is inefficient, if you ever want to use more than one core, for faster performing cards.
Adapting old drivers to be able to run with the rest of the network stack not having this lock will improve NetBSD networking.
A large number of drivers must be adapted, and some of them can be emulated from virtual machines too, some examples:
- Realtek RTL8139 Gigabit Ethernet re(4) (supported by QEMU)
- AMD PCnet pcn(4) (supported by QEMU and VMware)
- Novell NE1000 ne(4) (supported by QEMU)
- Atheros/Killer Gigabit Ethernet alc(4)
- Attansic Gigabit Ethernet ale(4)
- Broadcom NetXtreme bnx(4)
You may find others listed in pci(4). It is possible you have a computing device with a device for which the driver hasn't been converted yet.
The file src/doc/TODO.smpnet
in the NetBSD source tree contains a list of fully
converted drivers that you may use an an example, as well as some general guidelines.
When applying for this project, please note which driver you would like to work on.