pcm icon indicating copy to clipboard operation
pcm copied to clipboard

Reporting IMC's configuration

Open ErwanAliasr1 opened this issue 5 years ago • 3 comments

PCM is able to enumerate the IMCs but it would be very handy to expose some of the IMC's configuration.

Exposing the DDR timing would be very nice so we could use this as a conformity tool to ensure the DDR are used in a good setup.

Exposing values from tcdbp, tcrap, tcrwp, tcothp, tcrfp would be fanstatic.

ErwanAliasr1 avatar Apr 12 '19 14:04 ErwanAliasr1

this should be possible by writing a script that checks lspci -n to find IMC_DEV_IDS (from cpucounter.cpp) and then read the tcdbp, tcrap, tcrwp, tcothp, tcrfp registers from bus/device/function offset using pcm-pcicfg.x (compiled with CXXFLAGS += -DPCM_USE_PCI_MM_LINUX)

opcm avatar Apr 16 '19 11:04 opcm

The idea was a little bit different ;o) OPCM have some memory testing tooling, it does detect the IMCs and have all the logic to reach those registers. It would make sense reporting the DDR timing in this tool so the hardware setup is exposed before making a benchmark. This could be used to increase the hardware conformity tests before benchmarking.

ErwanAliasr1 avatar Apr 16 '19 12:04 ErwanAliasr1

Hello,

I'm not fond of having a reporting for something that isn't related to PCM data. Instead, you may check this memory output from CoreFreq:

sudo ./corefreq-cli -M
                         Union Point  [5914]                          
Controller #0                                           Dual Channel  
 Bus Rate  4000 MT/s      Bus Speed 4022 MT/s     DRAM Speed 1600 MHz 
                                                                      
 Cha    CL  RCD   RP  RAS  RRD  RFC   WR RTPr WTPr  FAW  B2B  CWL Rate
  #0    17   17   17   39    0  420    0    9   38    0    0   15   2N
  #1    17   17   17   39    0  420    0    9   38    0    0   15   2N
      ddWR drWR srWR ddRW drRW srRW ddRR drRR srRR ddWW drWW srWW  ECC
  #0     0    0    0    0    0    0    0    0    0    0    0    0   0 
  #1     0    0    0    0    0    0    0    0    0    0    0    0   0 
                                                                      
 DIMM Geometry for channel #0                                         
      Slot Bank Rank     Rows   Columns    Memory Size (MB)           
       #0    16    2     65536      1024          16384               
 DIMM Geometry for channel #1                                         
      Slot Bank Rank     Rows   Columns    Memory Size (MB)           
       #0    16    2     65536      1024          16384               

You also have the "./corefreq-cli -j" that outputs every element as json:

        "MC": [
            {
                "Channel": [
                    {
                        "DIMM": [
                            {
                                "Banks": 16,
                                "Cols": 1024,
                                "Ranks": 2,
                                "Rows": 65536,
                                "Size": 16384
                            },
                            {
                                "Banks": 16,
                                "Cols": 0,
                                "Ranks": 1,
                                "Rows": 65536,
                                "Size": 0
                            },
                            {
                                "Banks": 0,
                                "Cols": 0,
                                "Ranks": 0,
                                "Rows": 0,
                                "Size": 0
                            },
                            {
                                "Banks": 0,
                                "Cols": 0,
                                "Ranks": 0,
                                "Rows": 0,
                                "Size": 0
                            }
                        ],
                        "Timing": {
                            "B2B": 0,
                            "CMD_Rate": 1,
                            "ECC": 0,
                            "tCL": 10,
                            "tCWL": 8,
                            "tFAW": 0,
                            "tRAS": 28,
                            "tRCD": 10,
                            "tRFC": 234,
                            "tRP": 10,
                            "tRRD": 0,
                            "tRTPr": 6,
                            "tWR": 0,
                            "tWTPr": 23,
                            "tddRdTRd": 0,
                            "tddRdTWr": 0,
                            "tddWrTRd": 0,
                            "tddWrTWr": 0,
                            "tdrRdTRd": 0,
                            "tdrRdTWr": 0,
                            "tdrWrTRd": 0,
                            "tdrWrTWr": 0,
                            "tsrRdTRd": 0,
                            "tsrRdTWr": 0,
                            "tsrWrTRd": 0,
                            "tsrWrTWr": 0
                        }
                    },

Might be nice asking him to use his tool as reporting only.

Saruspete avatar Jul 11 '19 14:07 Saruspete