É possível focalizar single core em cálculos muito em tempo real enquanto usa outros como núcleos regulares?

3

Estou terminando parte do projeto que comecei há pouco e preciso de um kernel decente para ele. Existe um código que é crítico para ser executado o tempo todo, uma vez que a latência maior que 1us pode ter impacto na qualidade do sinal gerado.

Meu hardware é mais provável de ser o ARM Cortex A-53, 4x1.2GHz com 1GB de RAM (teste na placa Pine64). Simplesmente dito, eu tenho código rodando o tempo todo em loop, que está checando por mudança de dados na memória, e então computando e enviando sinais. Então, exceto GPIO pinos manipulação não haverá quaisquer chamadas do sistema, como impressão de saída para console, abertura de arquivos, malloc / free etc ... Todas essas coisas serão executadas em outros núcleos.

Eu gostaria de usar o linux, na medida em que ele tem muitos recursos que gostaria de usar em outros três núcleos, como renderização de GUI, renderizando simples simulações de máquina com OpenGL e também recebendo instruções. Eu sei que são muitos requisitos para um chip tão pequeno, mas existe alguma maneira de fazer isso funcionar?

Eu tentei passar o parâmetro isolcpus=3 para o kernel do linux e desabilitar os irqs neste cpu. Então eu criei um processo simples com taskset - mas não funcionou como esperado, pois havia um jitter de 5us.

    
por ttdado 25.01.2017 / 21:03

1 resposta

0

Não tenho certeza se entendi a pergunta completamente, mas esta pergunta anterior parece que abrange território semelhante?

    
por 01.02.2017 / 18:47