正在分配等待写入队列中的分配数量-NV内存上意外的低结果

问题描述 投票:3回答:1

我正在尝试使用某些非核心硬件计数器,例如:skx_unc_imc0-5::UNC_M_WPQ_INSERTS。应该计算分配到“写入待处理队列”中的数量。该计算机具有2个采用级联湖架构的Intel Xeon Gold 5218 CPU,每个CPU具有2个内存控制器。 linux版本是5.4.0-3-amd64。我有以下简单循环,我正在为此阅读计数器。数组元素的大小为64字节,等于高速缓存行。

for(int i=0; i < 1000000; i++){
        array[i].value=2;
}

对于此循环,当我将内存映射到DRAM NUMA节点时,该计数器结果大约为150,000,这可能是有道理的:此NUMA节点总共有6个通道用于2个内存控制器。它们以交错模式使用DRAM DIMM。然后,我相信每个通道都有一个单独的WPQ,因此skx_unc_imc0从整个商店中获得1/6。我通过skx_unc_imc0-5获得了papi_native_avail个计数器,假设每个计数器用于不同的通道。 意外的结果是,当我将程序映射到非易失性内存而不是映射到DRAM NUMA节点时,将其作为单独的NUMA节点呈现给同一套接字。每个插槽有6个NVM DIMM,可创建一个交错区域。因此,在写入NVM时,应类似地使用6个不同的通道,并且在每个通道的前面有一个相同的WPQ,应再次获得1/6个写入插入。]

但是UNC_M_WPQ_INSERTS仅在NV存储器上返回大约1000。

我不明白为什么;我希望它能在WPQ中提供大约15万次写入。我是在解释/理解某些错误吗?还是每个通道有两个不同的WPQ,具体取决于是否写入DRAM或NVM?还是其他解释?

我正在尝试使用某些非核心硬件计数器,例如:skx_unc_imc0-5 :: UNC_M_WPQ_INSERTS。应该计算分配到“写入待处理队列”中的数量。机器有2个...

memory x86-64 intel cpu-architecture persistent-memory
1个回答
0
投票
事实证明,UNC_M_WPQ_INSERTS仅将写入DRAM的次数分配到写入待处理队列中。英特尔为持久性存储器添加了相应的硬件计数器:UNC_M_PMM_WPQ_INSERTS,用于对在英特尔®傲腾™DC持久性存储器的PMM写入未决队列中分配的写入请求进行计数。
© www.soinside.com 2019 - 2024. All rights reserved.