This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] [PATCH][SVM] fix #BP intercept (INT3)

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH][SVM] fix #BP intercept (INT3)
From: "Woller, Thomas" <thomas.woller@xxxxxxx>
Date: Fri, 30 Mar 2007 10:12:04 -0500
Delivery-date: Fri, 30 Mar 2007 16:14:34 +0100
Envelope-to: Keir.Fraser@xxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: Acdy3caWsaVOB1g4RF2MXaudWX+SSA==
Thread-topic: [PATCH][SVM] fix #BP intercept (INT3)
This AMD-V patch resolves two severe issues with functionality
1) INT3 intercept/reflection #BP causing injection/VMEXIT flooding
2) Vista/Longhorn "windowing" failures (Control panel icons, and games
fail to be displayed)

This patch increments the RIP properly for #BP intercepts (INT3
instructions in the guest) for AMD-V platforms.  Both of these issues
only manifest if #BP exception intercept is enabled (in support.h)

- Without this patch guest code which execute INT3 instructions (0xCC),
and relies on the CS:RIP for the next instruction, fail. Under these
circumstances this can result in excessive #BP VMEXITs, and resulting
excessive reflection of INT3 exception back to the guest, causing severe
performance and functional degredation.

- The Vista control panel currently fails to properly load the Icons, or
fails to be displayed at all. Additionally, some of the Vista games fail
to load.  Not sure exactly what Vista is doing here with INT3, but vista
needs this fix.

AMD-V documentation indicates the CS:RIP on the return from #BP VMEXIT
points to the 0xCC instruction, *not* the instruction following. 

Changeset 14628 can be reverted, as both problems do not manifest
themselves if #BP is not intercepted. Default #BP exception is useful
though for _DOMF_debugging enablement.  and no reason to penalize VT on
account of an AMD-V bug either :).

SW INT 3 (0xcd 0x03) causes a different VMEXIT code (0x75) so this
instruction pair for "INT 3" does not need to be added to the svm
emulation code (emulate.c).

Please apply to Xen-unstable.
Applies cleanly to c/s 14631.
Signed-off-by Tom Woller <thomas.woller@xxxxxxx>
Signed-off-by Thomas Friebel <thomas.friebel@xxxxxxx>


thomas.woller@xxxxxxx  +1-512-602-0059
AMD Corporation - Operating Systems Research Center
5204 E. Ben White Blvd. UBC1
Austin, Texas 78741

Attachment: svm_bp_incr_rip.patch
Description: svm_bp_incr_rip.patch

Xen-devel mailing list
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH][SVM] fix #BP intercept (INT3), Woller, Thomas <=