Assign Classes of Service to Cores
- Decide which core will run the real-time workload.
- Note the COS that is dedicated to real-time workloads.If you are using a preset provided by the tool:
- Presets that contain dedicated cache for one real-time workload use COS 1
- Presets that contain dedicated cache for two independent real-time workloads use COS 1 and 2
- To change the COS associated with a core, write the IA32_PQR_ASSOC model-specific register (MSR) with the desired COS. IA32_PQR_ASSOC defines the COS value to be in bits [63:32].Utilities to assist with reading and writing MSRs vary by OS. Download and copy msr-tools rdmsr/wrmsr binaries onto the target system. Msr-tools can be obtained from: https://github.com/intel/msr-tools. On Linux systems, use thewrmsrutility and specify the core to run on.For example, if the real-time workload will run on Core 2, and COS 1 is dedicated to real-time workloads, run the following command:wrmsr -p 2 0xC8F 0x100000000The example runs on Core 2 (-p 2), writes IA32_PQR_ASSOC (0xC8F), and assigns COS 1 (0x100000000) to that core. After this point, Core 2 will use COS 1.
- If the system is being configured for multiple cores to run real-time workloads, repeat the abovewrmsrcommand, adjusting the core (-p X) and data value (0xY00000000) as appropriate. For example, to assign COS 2 to Core 3, thewrmsrcommand becomes:wrmsr -p 3 0xC8F 0x200000000