Re: [PATCH v2 1/4] KVM: x86: use new CS.RPL as CPL during task switch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Il 15/05/2014 18:51, Paolo Bonzini ha scritto:
During task switch, all of CS.DPL, CS.RPL, SS.DPL must match (in addition
to all the other requirements) and will be the new CPL.  So far this
worked by carefully setting the CS selector and flag before doing the

s/flag/EFLAGS/

task switch; however, this will not work once we get the CPL from SS.DPL:
setting SS itself would fail if the task switch changes the privilege
level.

More precisely, before patch 4 in this series setting CS.selector would already change the CPL. After it, you actually have to set the full segment descriptor cache to change the CPL, so we cannot use ctxt->ops->cpl(ctxt) to retrieve the CPL during a task switch. The check that fails without this patch is that SS.DPL must be == CPL, and the failure happens because ctxt->ops->cpl(ctxt) is the *old* SS.DPL.

Paolo

Temporarily assume that the CPL comes from CS.RPL during task switch
to a protected-mode task.  This is the same approach used in QEMU's
emulation code, which (until version 2.0) manually tracks the CPL.

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux