Como preencher o I-cache no Embedded Linux?

0

Eu simplesmente quero escrever um programa (poderia estar fazendo qualquer coisa) para roubar 100% do I-cache durante o tempo que o programa está rodando (poderia estar no espaço do usuário ou do kernel) usando o Poky (Yocto) como distribuição e ARM Cortex A-15 como o hardware. Qual é a melhor / mais fácil maneira de escrever este programa e certifique-se de que ele seja priorizado para trocar tudo em cache I e substituí-lo por si mesmo?

Pode ser um programa escrito em assembly que faz algo tão mundano quanto adicionar números e, em seguida, preenche o restante do espaço com noops para garantir que o cache I esteja totalmente saturado.

Pode ser um driver de kernel que faz algo semelhante em C.

Eu entendo que existem vários recursos de kernel e de espaço do usuário que compartilham o I-cache e estou bem ciente do impacto no desempenho que receberei no sistema como um todo ao fazer isso. Vendo que eu desativei completamente o I-cache no passado e tudo ainda permaneceu para funcionar corretamente (apenas muito lento), parece possível que ter um programa com privilégios excessivos usar completamente o I-cache seria possível também sem ter um erro fatal para o sistema causando falha.

Por favor, poupe-me de qualquer repreensão que você possa ter de mim fazendo isso. Eu entendo isso fora da norma e parece não ter nenhum uso aplicável, mas eu tenho minhas razões.

    
por AustinTronics 13.01.2017 / 22:56

0 respostas