Как сгенерировать x86 CPU для трафика основной памяти в C, чтобы заполнить и сделать недействительным буфер TLB на машине linux - PullRequest
0 голосов
/ 30 мая 2018

Я хочу сгенерировать трафик процессора x86 в память на ОС Linux (Ubuntu 18), используя цепочку инструментов gcc, которая должна сначала заполнить tlb (перевод в сторону буфера), а затем вызвать недействительность tlb, поскольку она уже заполнена.Я создал простой код ниже, но я не уверен, что он может достичь цели заполнения tlb и затем сделать его недействительным

#include<stdio.h>

int main()
{

int array[1000];

int i;
long sum = 0;

for(i=0; i < 1000;i++)
{
    array[i] = i;   
}


for(i=0; i < 1000;i++)
{
    sum += array[i] 
}

return 0;

}

Вот информация о конкретном процессоре, если она полезна

processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 23
model           : 1
model name      : AMD EPYC 7281 16-Core Processor
stepping        : 2
microcode       : 0x8001227
cpu MHz         : 2694.732
cache size      : 512 KB
physical id     : 0
siblings        : 32
core id         : 0
cpu cores       : 16
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes

Суть в том, чтобы иметь ответы на следующие вопросы

  1. , что запускает tlb?
  2. Как можно было сделать один тест на недействительность tlb?
...