Motivo desconhecido 20 e 30 da NMI em uma VM

9

Eu peguei o console em uma máquina virtual que gerencio hoje e fui recebido com algumas mensagens do kernel:

[5912557.130943] Uhhuh. NMI received for unknown reason 20 on CPU 0.
[5912557.131115] Do you have a strange power saving mode enabled?
[5912557.131287] Dazed and confused, but trying to continue
[6064281.393568] Uhhuh. NMI received for unknown reason 30 on CPU 1.
[6064281.393888] Do you have a strange power saving mode enabled?
[6064281.394235] Dazed and confused, but trying to continue

Isso é apenas alguns deles, 20 e 30 ocorrem na CPU 0 e 1.

  • VM é Debian Jessie, inicialização do BIOS ("PC padrão QEMU (i440FX + PIIX, 1996), BIOS 1.9.3-20161025_171302-gandalf 04/01/2014"; kernel 3.16.0-4-amd64)
  • O hipervisor é libvirt / KVM em execução no teste Debian (atualmente Debian 4.7.0-1-amd64; qemu 1: 2.7 + dfsg-3).
  • O hardware é um Opteron 6344 em um Supermicro H8SGL-F com ECC RAM com scrub habilitado.

Eu não vejo nenhuma mensagem de erro / aviso do NMI ou do EDAC no host.

Alguma idéia do que está causando essas mensagens de NMI no convidado? Eles são algo para se preocupar?

(pode estar relacionado a NMI recebida por motivo desconhecido 20 - Você tem um estranho modo de economia de energia ativado? mas parece ser bare-metal).

    
por derobert 30.11.2016 / 23:32

1 resposta

1

Eu tive o mesmo problema usando uma configuração semelhante:

  1. AMD CPU (embora eu tenha visto relatos do mesmo problema com os processadores da Intel, mas nenhum dos meus hipervisores em execução nos processadores Intel tem esse problema, mesmo com a passagem da CPU ativada).
  2. Debian, kernel 4.x no hypervisor e convidado (4.9.0-4-amd64 no meu caso em ambos).

Minha solução foi mudar minha VM guest para usar uma CPU emulada do QEMU em vez de uma passagem da CPU. Isso implicou a remoção da linha <cpu mode='host-passthrough'/> do arquivo de definição do convidado.

Atualizar : Fiz uma investigação mais aprofundada e os elementos problemáticos estavam sob o elemento clock :

<clock offset='utc'>
  <timer name='rtc' tickpolicy='catchup'/>
  <timer name='pit' tickpolicy='delay'/>
  <timer name='hpet' present='no'/>
</clock>

A solução real era remover os três elementos <timer> , após o qual <cpu mode='host-passthrough'/> poderia ser ativado novamente.

Para completar, adicionei uma resposta semelhante ao pergunta vinculada .

    
por 21.11.2017 / 10:54