1. 01 8月, 2010 21 次提交
  2. 23 7月, 2010 2 次提交
    • A
      KVM: Use kmalloc() instead of vmalloc() for KVM_[GS]ET_MSR · 7a73c028
      Avi Kivity 提交于
      We don't need more than a page, and vmalloc() is slower (much
      slower recently due to a regression).
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      7a73c028
    • X
      KVM: MMU: fix conflict access permissions in direct sp · 6aa0b9de
      Xiao Guangrong 提交于
      In no-direct mapping, we mark sp is 'direct' when we mapping the
      guest's larger page, but its access is encoded form upper page-struct
      entire not include the last mapping, it will cause access conflict.
      
      For example, have this mapping:
              [W]
            / PDE1 -> |---|
        P[W]          |   | LPA
            \ PDE2 -> |---|
              [R]
      
      P have two children, PDE1 and PDE2, both PDE1 and PDE2 mapping the
      same lage page(LPA). The P's access is WR, PDE1's access is WR,
      PDE2's access is RO(just consider read-write permissions here)
      
      When guest access PDE1, we will create a direct sp for LPA, the sp's
      access is from P, is W, then we will mark the ptes is W in this sp.
      
      Then, guest access PDE2, we will find LPA's shadow page, is the same as
      PDE's, and mark the ptes is RO.
      
      So, if guest access PDE1, the incorrect #PF is occured.
      
      Fixed by encode the last mapping access into direct shadow page
      Signed-off-by: NXiao Guangrong <xiaoguangrong@cn.fujitsu.com>
      Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      6aa0b9de
  3. 19 7月, 2010 1 次提交
    • D
      mm: add context argument to shrinker callback · 7f8275d0
      Dave Chinner 提交于
      The current shrinker implementation requires the registered callback
      to have global state to work from. This makes it difficult to shrink
      caches that are not global (e.g. per-filesystem caches). Pass the shrinker
      structure to the callback so that users can embed the shrinker structure
      in the context the shrinker needs to operate on and get back to it in the
      callback via container_of().
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      7f8275d0
  4. 13 7月, 2010 1 次提交
  5. 06 7月, 2010 1 次提交
    • A
      KVM: VMX: Fix host MSR_KERNEL_GS_BASE corruption · da38f438
      Avi Kivity 提交于
      enter_lmode() and exit_lmode() modify the guest's EFER.LMA before calling
      vmx_set_efer().  However, the latter function depends on the value of EFER.LMA
      to determine whether MSR_KERNEL_GS_BASE needs reloading, via
      vmx_load_host_state().  With EFER.LMA changing under its feet, it took the
      wrong choice and corrupted userspace's %gs.
      
      This causes 32-on-64 host userspace to fault.
      
      Fix not touching EFER.LMA; instead ask vmx_set_efer() to change it.
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      da38f438
  6. 09 6月, 2010 4 次提交
  7. 19 5月, 2010 10 次提交