feat(docs): Add Methodology
[csit.git] / docs / content / methodology / multi_core_speedup.md
1 ---
2 bookToc: false
3 title: "Multi-Core Speedup"
4 weight: 13
5 ---
6
7 # Multi-Core Speedup
8
9 All performance tests are executed with single physical core and with
10 multiple cores scenarios.
11
12 ## Intel Hyper-Threading (HT)
13
14 Intel Xeon processors used in FD.io CSIT can operate either in HT
15 Disabled mode (single logical core per each physical core) or in HT
16 Enabled mode (two logical cores per each physical core). HT setting is
17 applied in BIOS and requires server SUT reload for it to take effect,
18 making it impractical for continuous changes of HT mode of operation.
19
20 Performance tests are executed with server SUTs' Intel XEON processors
21 configured with Intel Hyper-Threading Enabled for all Xeon
22 Cascadelake and Xeon Icelake testbeds.
23
24 ## Multi-core Tests
25
26 Multi-core tests are executed in the following VPP worker thread and physical
27 core configurations:
28
29 #. Intel Xeon Icelake and Cascadelake testbeds (2n-icx, 3n-icx, 2n-clx)
30    with Intel HT enabled (2 logical CPU cores per each physical core):
31
32   #. 2t1c - 2 VPP worker threads on 1 physical core.
33   #. 4t2c - 4 VPP worker threads on 2 physical cores.
34   #. 8t4c - 8 VPP worker threads on 4 physical cores.
35
36 VPP worker threads are the data plane threads running on isolated
37 logical cores. With Intel HT enabled VPP workers are placed as sibling
38 threads on each used physical core. VPP control threads (main, stats)
39 are running on a separate non-isolated core together with other Linux
40 processes.
41
42 In all CSIT tests care is taken to ensure that each VPP worker handles
43 the same amount of received packet load and does the same amount of
44 packet processing work. This is achieved by evenly distributing per
45 interface type (e.g. physical, virtual) receive queues over VPP workers
46 using default VPP round-robin mapping and by loading these queues with
47 the same amount of packet flows.
48
49 If number of VPP workers is higher than number of physical or virtual
50 interfaces, multiple receive queues are configured on each interface.
51 NIC Receive Side Scaling (RSS) for physical interfaces and multi-queue
52 for virtual interfaces are used for this purpose.