CSIT-1438: Remove Denverton from Report
[csit.git] / docs / report / introduction / methodology_multi_core_speedup.rst
1 Multi-Core Speedup
2 ------------------
3
4 All performance tests are executed with single processor core and with
5 multiple cores scenarios.
6
7 Intel Hyper-Threading (HT)
8 ~~~~~~~~~~~~~~~~~~~~~~~~~~
9
10 Intel Xeon processors used in FD.io CSIT can operate either in HT
11 Disabled mode (single logical core per each physical core) or in HT
12 Enabled mode (two logical cores per each physical core). HT setting is
13 applied in BIOS and requires server SUT reload for it to take effect,
14 making it impractical for continuous changes of HT mode of operation.
15
16 |csit-release| performance tests are executed with server SUTs' Intel
17 XEON processors configured with Intel Hyper-Threading Disabled for all
18 Xeon Haswell testbeds (3n-hsw) and with Intel Hyper-Threading Enabled
19 for all Xeon Skylake testbeds.
20
21 More information about physical testbeds is provided in
22 :ref:`tested_physical_topologies`.
23
24 Multi-core Tests
25 ~~~~~~~~~~~~~~~~
26
27 |csit-release| multi-core tests are executed in the following VPP worker
28 thread and physical core configurations:
29
30 #. Intel Xeon Haswell testbeds (3n-hsw) with Intel HT disabled
31    (1 logical CPU core per each physical core):
32
33   #. 1t1c - 1 VPP worker thread on 1 physical core.
34   #. 2t2c - 2 VPP worker threads on 2 physical cores.
35   #. 4t4c - 4 VPP worker threads on 4 physical cores.
36
37 #. Intel Xeon Skylake testbeds (2n-skx, 3n-skx) with Intel HT enabled
38    (2 logical CPU cores per each physical core):
39
40   #. 2t1c - 2 VPP worker threads on 1 physical core.
41   #. 4t2c - 4 VPP worker threads on 2 physical cores.
42   #. 8t4c - 8 VPP worker threads on 4 physical cores.
43
44 VPP worker threads are the data plane threads running on isolated
45 logical cores. With Intel HT enabled VPP workers are placed as sibling
46 threads on each used physical core. VPP control threads (main, stats)
47 are running on a separate non-isolated core together with other Linux
48 processes.
49
50 In all CSIT tests care is taken to ensure that each VPP worker handles
51 the same amount of received packet load and does the same amount of
52 packet processing work. This is achieved by evenly distributing per
53 interface type (e.g. physical, virtual) receive queues over VPP workers
54 using default VPP round-robin mapping and by loading these queues with
55 the same amount of packet flows.
56
57 If number of VPP workers is higher than number of physical or virtual
58 interfaces, multiple receive queues are configured on each interface.
59 NIC Receive Side Scaling (RSS) for physical interfaces and multi-queue
60 for virtual interfaces are used for this purpose.
61
62 Section :ref:`throughput_speedup_multi_core` includes a set of graphs
63 illustrating packet throughout speedup when running VPP worker threads
64 on multiple cores. Note that in quite a few test cases running VPP
65 workers on 2 or 4 physical cores hits the I/O bandwidth
66 or packets-per-second limit of tested NIC.