CPU Mapping
FW: 8325+
FMADIO Packet Capture system have 16 to 96 CPUs, this can make configuration and allocation of all these CPU resources tedious and error prone.
To assist the configuration file located in
/opt/fmadio/etc/time.luaThere is a section name CPUMap, an example is shown below
["CPUMap"] =
{
["Enable"] = true,
[ 0] = "fmadio", -- CPU: 0 Core: 0 Thread:0 Node: 0 system
[ 1] = "", -- CPU: 1 Core: 1 Thread:0 Node: 0
[ 2] = "fmadio", -- CPU: 2 Core: 2 Thread:0 Node: 0 system
[ 3] = "fmadio", -- CPU: 3 Core: 3 Thread:0 Node: 0 system
[ 4] = "", -- CPU: 4 Core: 4 Thread:0 Node: 0
[ 5] = "", -- CPU: 5 Core: 5 Thread:0 Node: 0
[ 6] = "", -- CPU: 6 Core: 6 Thread:0 Node: 0
[ 7] = "", -- CPU: 7 Core: 7 Thread:0 Node: 0
[ 8] = "", -- CPU: 8 Core: 8 Thread:0 Node: 0
[ 9] = "", -- CPU: 9 Core: 9 Thread:0 Node: 0
[ 10] = "", -- CPU: 10 Core: 10 Thread:0 Node: 0
[ 11] = "", -- CPU: 11 Core: 11 Thread:0 Node: 0
[ 12] = "", -- CPU: 12 Core: 12 Thread:0 Node: 0
[ 13] = "", -- CPU: 13 Core: 13 Thread:0 Node: 0
[ 14] = "", -- CPU: 14 Core: 14 Thread:0 Node: 0
[ 15] = "", -- CPU: 15 Core: 15 Thread:0 Node: 0
[ 16] = "", -- CPU: 16 Core: 16 Thread:0 Node: 0
[ 17] = "", -- CPU: 17 Core: 17 Thread:0 Node: 0
[ 18] = "", -- CPU: 18 Core: 18 Thread:0 Node: 0
[ 19] = "", -- CPU: 19 Core: 19 Thread:0 Node: 0
[ 20] = "", -- CPU: 20 Core: 20 Thread:0 Node: 0
[ 21] = "", -- CPU: 21 Core: 21 Thread:0 Node: 0
[ 22] = "", -- CPU: 22 Core: 22 Thread:0 Node: 0
[ 23] = "", -- CPU: 23 Core: 23 Thread:0 Node: 0
[ 24] = "fmadio", -- CPU: 24 Core: 0 Thread:0 Node: 1 system
[ 25] = "fmadio", -- CPU: 25 Core: 1 Thread:0 Node: 1 system
[ 26] = "fmadio", -- CPU: 26 Core: 2 Thread:0 Node: 1 system
[ 27] = "fmadio", -- CPU: 27 Core: 3 Thread:0 Node: 1 system
[ 28] = "fmadio", -- CPU: 28 Core: 4 Thread:0 Node: 1 system
[ 29] = "fmadio", -- CPU: 29 Core: 5 Thread:0 Node: 1 system
[ 30] = "fmadio", -- CPU: 30 Core: 6 Thread:0 Node: 1 system
[ 31] = "fmadio", -- CPU: 31 Core: 7 Thread:0 Node: 1 system
[ 32] = "", -- CPU: 32 Core: 8 Thread:0 Node: 1
[ 33] = "", -- CPU: 33 Core: 9 Thread:0 Node: 1
[ 34] = "", -- CPU: 34 Core: 10 Thread:0 Node: 1
[ 35] = "", -- CPU: 35 Core: 11 Thread:0 Node: 1
[ 36] = "", -- CPU: 36 Core: 12 Thread:0 Node: 1
[ 37] = "", -- CPU: 37 Core: 13 Thread:0 Node: 1
[ 38] = "", -- CPU: 38 Core: 14 Thread:0 Node: 1
[ 39] = "", -- CPU: 39 Core: 15 Thread:0 Node: 1
[ 40] = "", -- CPU: 40 Core: 16 Thread:0 Node: 1
[ 41] = "", -- CPU: 41 Core: 17 Thread:0 Node: 1
[ 42] = "", -- CPU: 42 Core: 18 Thread:0 Node: 1
[ 43] = "", -- CPU: 43 Core: 19 Thread:0 Node: 1
[ 44] = "", -- CPU: 44 Core: 20 Thread:0 Node: 1
[ 45] = "", -- CPU: 45 Core: 21 Thread:0 Node: 1
[ 46] = "", -- CPU: 46 Core: 22 Thread:0 Node: 1
[ 47] = "", -- CPU: 47 Core: 23 Thread:0 Node: 1
[ 48] = "", -- CPU: 48 Core: 0 Thread:1 Node: 0
[ 49] = "", -- CPU: 49 Core: 1 Thread:1 Node: 0
[ 50] = "", -- CPU: 50 Core: 2 Thread:1 Node: 0
[ 51] = "", -- CPU: 51 Core: 3 Thread:1 Node: 0
[ 52] = "", -- CPU: 52 Core: 4 Thread:1 Node: 0
[ 53] = "", -- CPU: 53 Core: 5 Thread:1 Node: 0
[ 54] = "", -- CPU: 54 Core: 6 Thread:1 Node: 0
[ 55] = "", -- CPU: 55 Core: 7 Thread:1 Node: 0
[ 56] = "", -- CPU: 56 Core: 8 Thread:1 Node: 0
[ 57] = "", -- CPU: 57 Core: 9 Thread:1 Node: 0
[ 58] = "", -- CPU: 58 Core: 10 Thread:1 Node: 0
[ 59] = "", -- CPU: 59 Core: 11 Thread:1 Node: 0
[ 60] = "", -- CPU: 60 Core: 12 Thread:1 Node: 0
[ 61] = "", -- CPU: 61 Core: 13 Thread:1 Node: 0
[ 62] = "", -- CPU: 62 Core: 14 Thread:1 Node: 0
[ 63] = "", -- CPU: 63 Core: 15 Thread:1 Node: 0
[ 64] = "", -- CPU: 64 Core: 16 Thread:1 Node: 0
[ 65] = "", -- CPU: 65 Core: 17 Thread:1 Node: 0
[ 66] = "", -- CPU: 66 Core: 18 Thread:1 Node: 0
[ 67] = "", -- CPU: 67 Core: 19 Thread:1 Node: 0
[ 68] = "", -- CPU: 68 Core: 20 Thread:1 Node: 0
[ 69] = "", -- CPU: 69 Core: 21 Thread:1 Node: 0
[ 70] = "", -- CPU: 70 Core: 22 Thread:1 Node: 0
[ 71] = "", -- CPU: 71 Core: 23 Thread:1 Node: 0
[ 72] = "fmadio", -- CPU: 72 Core: 0 Thread:1 Node: 1 system
[ 73] = "", -- CPU: 73 Core: 1 Thread:1 Node: 1
[ 74] = "", -- CPU: 74 Core: 2 Thread:1 Node: 1
[ 75] = "", -- CPU: 75 Core: 3 Thread:1 Node: 1
[ 76] = "fmadio", -- CPU: 76 Core: 4 Thread:1 Node: 1 system
[ 77] = "fmadio", -- CPU: 77 Core: 5 Thread:1 Node: 1 system
[ 78] = "fmadio", -- CPU: 78 Core: 6 Thread:1 Node: 1 system
[ 79] = "fmadio", -- CPU: 79 Core: 7 Thread:1 Node: 1 system
[ 80] = "", -- CPU: 80 Core: 8 Thread:1 Node: 1
[ 81] = "", -- CPU: 81 Core: 9 Thread:1 Node: 1
[ 82] = "", -- CPU: 82 Core: 10 Thread:1 Node: 1
[ 83] = "", -- CPU: 83 Core: 11 Thread:1 Node: 1
[ 84] = "", -- CPU: 84 Core: 12 Thread:1 Node: 1
[ 85] = "", -- CPU: 85 Core: 13 Thread:1 Node: 1
[ 86] = "", -- CPU: 86 Core: 14 Thread:1 Node: 1
[ 87] = "", -- CPU: 87 Core: 15 Thread:1 Node: 1
[ 88] = "", -- CPU: 88 Core: 16 Thread:1 Node: 1
[ 89] = "", -- CPU: 89 Core: 17 Thread:1 Node: 1
[ 90] = "", -- CPU: 90 Core: 18 Thread:1 Node: 1
[ 91] = "", -- CPU: 91 Core: 19 Thread:1 Node: 1
[ 92] = "", -- CPU: 92 Core: 20 Thread:1 Node: 1
[ 93] = "", -- CPU: 93 Core: 21 Thread:1 Node: 1
[ 94] = "", -- CPU: 94 Core: 22 Thread:1 Node: 1
[ 95] = "", -- CPU: 95 Core: 23 Thread:1 Node: 1
},
CPUS which are dedicated to FMADIO Packet Capture system can not modified, these are marked "System" in the comments section per below

Any change to system CPUs will be overwritten.
Enable Custom CPU Mapping
By default the system allocates all CPUs to the FMADIO Capture System. To enable a customer CPU Mapping change Enable = true per the below setting
After enabling a FW update is required. As the enable re-writes the isolcpu Linux kernel boot parameters.
NOTE: after Enable = true is set, all subsequent firmware updates will modify the isolcpu setting. To return to stock default setting. Set to false, and update the firmware again.
Assign a CPU
To assign a CPU to a specific LXC container, use the naming convention
For example Market Data Gap detector LXC (mdgap) for CME is allocated to CPU 84
This also requires re-running the LXC install script to correctly allocate the CPUs in the container.
Update CPU Mapping
After the configuration files have been updated, a firmware update and reboot cycle are required. Its required as the Linux kernel boot command parameters (isolcpus) gets modified requiring the reboot.
Start by finding the current Firmware binary, in almost all cases this is the last upload firmware
In this case the latest firmware is named
Next re-install the firmware as follows. An upload is not required as the firmware is already on the system
Example output as follows, note the "Update CPU Map" output
Then reboot the system, and the new CPU mapping is reflected.
Last updated
Was this helpful?