Execute o processo como se estivesse em uma máquina de núcleo único para encontrar um bug

2

Eu tenho um bug no meu aplicativo Linux que é reproduzível apenas em CPUs de núcleo único. Para depurá-lo, quero iniciar o processo a partir da linha de comando, de modo que fique limitado a 1 CPU, mesmo em minha máquina com vários processadores.

É possível alterar isso para um processo específico, por ex. para executá-lo para que ele não execute (seus) vários threads em vários processadores?

    
por g4s8 08.09.2018 / 09:59

1 resposta

4

Você pode usar taskset em util-linux .

The masks may be specified in hexadecimal (with or without a leading "0x"), or as a CPU list with the --cpu-list option. For example,

       0x00000001  is processor #0,

       0x00000003  is processors #0 and #1,

       0xFFFFFFFF  is processors #0 through #31,

       32          is processors #1, #4, and #5,

       --cpu-list 0-2,6
                   is processors #0, #1, #2, and #6.

   When  taskset returns, it is guaranteed that the given program has been
   scheduled to a legal CPU.
    
por 08.09.2018 / 12:44