Establish policy on multi-threading usage
Previously, NFD is single-threaded:
a context-switch costs about 100 instructions, so that there's almost no benefit to use multi-threading in packet processing path.
There isn't a decision on multi-threading usage out of packet processing path.
Multi-threading may allow design improvements in several areas:
- Management, where complex operations can execute in a separate thread, if there isn't too much synchronization requirement
- specialized services independent from forwarding, such as distance calculation and Map reading in vehicular networks
- specialized face types, such as broadcast receiving and acknowledgement in vehicular networks (technically this is part of packet processing path, but only a small fraction of received paths are delivered into network-layer forwarding)
This Task is to establish a policy of whether multi-threading is completely forbidden, or it can be accepted on a case-by-case basis if properly justified.