From: Steven Rostedt <srostedt@redhat.com>
To: "Jiang, Yunhong" <yunhong.jiang@intel.com>
Cc: "Yu, Wilfred" <wilfred.yu@intel.com>,
"Xin, Xiaohui" <xiaohui.xin@intel.com>,
xen-devel@lists.xensource.com, "Li, Susie" <susie.li@intel.com>,
"Li, Xin B" <xin.b.li@intel.com>,
Herbert Xu <herbert.xu@redhat.com>,
Keir Fraser <keir@xensource.com>
Subject: Re: [Patch] Fix for x86_64 boot failures due to badsegment setup for protected mode.
Date: Fri, 10 Nov 2006 10:26:48 -0500 [thread overview]
Message-ID: <45549A38.60906@redhat.com> (raw)
In-Reply-To: <391BF3CDD2DC0848B40ACB72FA97AD596CE372@pdsmsx413.ccr.corp.intel.com>
Jiang, Yunhong wrote:
> This patch caused one problem.
>
> If the guest change the DS/SS etc between it set cr0.PE and the jump instruction.
> Considering following code:
> mov eax, cr0
> or eax, 0x11
> mov cr0, eax ---> here enable PE, and old_ctx.ds is cleard
Isn't this where the vmxassist starts emulating?
> mov ax, 0x0020
> mov ds, ax -> changes the DS here
So we only need to emulate the above change.
> jmp pword ptr [edi + 0x60]
> mov ax, word ptr [bx + 0x00a8]
>
> The vmxassit clear the oldctx.ds_sel when guest enable PE, and when guest executed the mov ds, ax, the content on oldctx is not updated. Later when the last instruction, the ds is infact 0x0, not the 0x20 as guest hoped.
>
> This issue is in fact not caused entirely by this change, since we should emulate all instructions between the set cr0.PE and the jump instruction. But because the "mov ds, ax" is in fact executed by guest, not by vmxassist, it do cause problem for us.
Are you sure about that? I thought vmxassist stated full software
emulation as soon as PE was set.
-- Steve
next prev parent reply other threads:[~2006-11-10 15:26 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-10 14:39 [Patch] Fix for x86_64 boot failures due to badsegment setup for protected mode Jiang, Yunhong
2006-11-10 15:26 ` Steven Rostedt [this message]
2006-11-10 16:09 ` Stephen C. Tweedie
2006-11-10 16:11 ` Stephen C. Tweedie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45549A38.60906@redhat.com \
--to=srostedt@redhat.com \
--cc=herbert.xu@redhat.com \
--cc=keir@xensource.com \
--cc=susie.li@intel.com \
--cc=wilfred.yu@intel.com \
--cc=xen-devel@lists.xensource.com \
--cc=xiaohui.xin@intel.com \
--cc=xin.b.li@intel.com \
--cc=yunhong.jiang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.