A maneira ingênua de executar uma máquina virtual é interpretar cada instrução. O software da VM decodifica cada instrução e a executa.
Quando o conjunto de instruções da máquina virtual é o mesmo que o host, um método alternativo é simplesmente executar as instruções. Apenas algumas instruções não podem ser executadas diretamente porque o convidado não tem controle total sobre o hardware. Um ponto pegajoso são os acessos à memória: o convidado não tem acesso a toda a memória, portanto, uma tradução precisa ser executada nos endereços. CPUs de ponta, como CPUs x86 com extensão VT-x (Intel) ou AMD-V (AMD), ou ARM Cortex-A15 e superior (incluindo Pi 2 e Pi 3), possuem recursos de hardware para executar esse endereço tradução. O KVM é um componente do kernel Linux que aproveita essas instruções para permitir que um código em uma máquina virtual seja executado diretamente pelo processador nativo.
Isso não ajuda, porque você não está tentando executar o código ARM em uma CPU ARM ou x86 em uma CPU x86. Você deseja executar o código x86 em uma CPU ARM. Para isso, o software para decodificar e interpretar as instruções é necessário. O KVM não ajuda aqui.