Dear Yuliang, From a high level: vpp creates N identical graph replicas in a multi-core configuration. When practicable, we use hardware RSS hashing to ensure that all packets belonging to a specific flow are processed [in order!] by the same thread / graph replica. In effect, embarrassing parallelism.
It’s easy enough to hand off packets between threads - see the “handoff-node” - but we avoid that whenever possible. Although one could - and I have - divided graph nodes across threads to create pipelines, that scheme needs significant dynamic tuning to handle a traffic pattern change. It’s hard to map nodes onto cores so that each thread in a pipeline uses approximately the same number of clocks/pkt; critical, since pipelines run at the speed of the slowest stage. It’s possible to hand off a full frame of packets for less than two clocks/pkt. Unfortunately, that’s the least significant issue. Handing off a packet from one core/thread to another guarantees a bunch of memory/cache subsystem pressure as the system moves packet data and metadata from A to B. HTH... Dave From: vpp-dev-boun...@lists.fd.io [mailto:vpp-dev-boun...@lists.fd.io] On Behalf Of Yuliang Li Sent: Friday, July 7, 2017 1:14 PM To: vpp-dev@lists.fd.io Subject: [vpp-dev] set mapping from node to thread Hi, Is there a way to set which node should run on which thread? And is there a command that shows the mapping from nodes to threads? Thanks, -- Yuliang Li PhD student Department of Computer Science Yale University
_______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev