Skip to content

Commit

Permalink
Categorize non MP-safe components into protected and unprotected ones
Browse files Browse the repository at this point in the history
  • Loading branch information
ozaki-r committed Aug 7, 2018
1 parent 2610742 commit d871f8e
Showing 1 changed file with 21 additions and 6 deletions.
27 changes: 21 additions & 6 deletions doc/TODO.smpnet
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
$NetBSD: TODO.smpnet,v 1.20 2018/06/25 09:32:28 msaitoh Exp $
$NetBSD: TODO.smpnet,v 1.21 2018/08/07 07:19:09 ozaki-r Exp $

MP-safe components
==================

They work without the big kernel lock (KERNEL_LOCK), i.e., with NET_MPSAFE
kernel option. Some components scale up and some don't.

- Device drivers
- vioif(4)
- vmx(4)
Expand Down Expand Up @@ -34,8 +37,25 @@ MP-safe components
Non MP-safe components and kernel options
=========================================

The components and options aren't MP-safe, i.e., requires the big kernel lock,
yet. Some of them can be used safely even if NET_MPSAFE is enabled because
they're still protected by the big kernel lock. The others aren't protected and
so unsafe, e.g, they may crash the kernel.

Protected ones
--------------

- Device drivers
- Most drivers other than ones listed in the above section
- Layer 4
- DCCP
- SCTP
- TCP
- UDP

Unprotected ones
----------------

- Layer 2
- ARCNET (if_arcsubr.c)
- ATM (if_atmsubr.c)
Expand All @@ -51,11 +71,6 @@ Non MP-safe components and kernel options
- PIM
- MPLS (mpls(4))
- IPv6 address selection policy
- Layer 4
- DCCP
- SCTP
- TCP
- UDP
- Interfaces
- agr(4)
- carp(4)
Expand Down

0 comments on commit d871f8e

Please sign in to comment.