- please read this repo and this paper
Each platform has its own setting policy, following is our platform
CPU | MotherBoard | Memory | |
---|---|---|---|
Name | Intel Xeon Silver 4214 | X11DPG-OT-CPU | DDR4 2400*8 |
- install
msr-tools
, e.g.(debian)sudo apt install msr-tools
- enable linux kernel module
msr
, e.g.sudo modprobe msr
- use
sudo rdmsr -a 0xc8b
to get current setting
You will get a num like 600
and regard it as bitmask to allocate LLC ways.
- use
sudo wrmsr -a 0xc8b 0x600
to set,0x600
is the value you get fromrdmsr
command, range from0x600 to 0x7ff
(LLC n-ways associations)
Check ddio-modify.cpp to see details
cd /path/to/repo && mkdir build && cd build && cmake .. && make
sudo ./ddio_modify --enable=false --nic_bus=0x3a
#same as disable, but use following command
sudo ./ddio_modify --enable=true --nic_bus=0x3a
According
to this document
, we need set proper value to PERFCTRLSTS_0
field, which belong to a root bus device. So we need set --nic_bus
to
the bus number of the root bus device.
As we know, PCIE is a tree structure, and the root bus device belongs to the children of root. So we can
use lspci -v -t
to check which root bus device is the grandparent of target NIC.
On our platform, this target root bus device is 0x3a
.