1. 23 Apr, 2014 3 commits
    • Nadav Amit's avatar
      KVM: x86: IN instruction emulation should ignore REP-prefix · e6e39f04
      Nadav Amit authored
      The IN instruction is not be affected by REP-prefix as INS is.  Therefore, the
      emulation should ignore the REP prefix as well.  The current emulator
      implementation tries to perform writeback when IN instruction with REP-prefix
      is emulated. This causes it to perform wrong memory write or spurious #GP
      exception to be injected to the guest.
      Signed-off-by: default avatarNadav Amit <namit@cs.technion.ac.il>
      Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
      e6e39f04
    • Nadav Amit's avatar
      KVM: x86: Fix CR3 reserved bits · 346874c9
      Nadav Amit authored
      According to Intel specifications, PAE and non-PAE does not have any reserved
      bits.  In long-mode, regardless to PCIDE, only the high bits (above the
      physical address) are reserved.
      Signed-off-by: default avatarNadav Amit <namit@cs.technion.ac.il>
      Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
      346874c9
    • Nadav Amit's avatar
      KVM: x86: Fix wrong/stuck PMU when guest does not use PMI · 671bd993
      Nadav Amit authored
      If a guest enables a performance counter but does not enable PMI, the
      hypervisor currently does not reprogram the performance counter once it
      overflows.  As a result the host performance counter is kept with the original
      sampling period which was configured according to the value of the guest's
      counter when the counter was enabled.
      
      Such behaviour can cause very bad consequences. The most distrubing one can
      cause the guest not to make any progress at all, and keep exiting due to host
      PMI before any guest instructions is exeucted. This situation occurs when the
      performance counter holds a very high value when the guest enables the
      performance counter. As a result the host's sampling period is configured to be
      very short. The host then never reconfigures the sampling period and get stuck
      at entry->PMI->exit loop. We encountered such a scenario in our experiments.
      
      The solution is to reprogram the counter even if the guest does not use PMI.
      Signed-off-by: default avatarNadav Amit <namit@cs.technion.ac.il>
      Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
      671bd993
  2. 22 Apr, 2014 37 commits