xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: xen-devel@lists.xen.org
Subject: Re: x86_64: Fix double fault stack setup
Date: Thu, 24 May 2012 16:28:55 +0100	[thread overview]
Message-ID: <4FBE53B7.2080703@citrix.com> (raw)
In-Reply-To: <4FBE6C5F0200007800085F7B@nat28.tlf.novell.com>

On 24/05/12 16:14, Jan Beulich wrote:
>>>> On 24.05.12 at 16:59, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
>> x86_64: Fix double fault stack setup.
>>
>> Dont forget to push error_code and entry_vector onto the stack for a double
>> fault.  If it is missed, the register information printed looks like
>>
>> (XEN) CPU:    0
>> (XEN) RIP:    0246:[<000000000000e008>] ???
>> (XEN) RFLAGS: ffff82c480287eb8
>> (XEN) rax: 0000000000000282   rbx: ffff82c480242dd0   rcx: 0000000000000282
>> (XEN) rdx: 0000000000000000   rsi: 0000000000000282   rdi: 0000000000000031
>> (XEN) rbp: 0000000000000031   rsp: 0000000000000000   r8:  ffff83007ee52488
>> (XEN) r9:  ffff83007ee61088   r10: 0000000000000007   r11: ffff82c480116460
>> (XEN) r12: 0000000000000000   r13: ffff82c4802c37e0   r14: 00026501a9ced0b8
>> (XEN) r15: ffff82c4802c37c0    cs: 0000000000000246    ss: 0000000000000000
>>
>> which incorrectly displays cs, rip, rflags and rsp; the useful pieces of
>> information when trying to identify the cause of a double fault.
> Is this from an actual double fault, or from one of your INT 08
> attempts to simulate one? An actual exception pushes an error
> code, so I'm afraid the change below is wrong.
>
> Jan

Ah yes - how silly of me.  I misread the manual when checking that fact,
but this was an INT 08 experiment.  I really should have checked with a
ud2 as well.

That is a bit awkward.

Do we actually care about this error from an INT 08?  I suppose we could
check under rip for 0xcd 0x08, but then the same argument would apply to
all other exceptions which may push an error onto the stack.

Do we care however that entry_vector is not being set correctly?  I cant
see anything on the current codepath which uses it, but it doesn't
preclude someone adding code in the future.

~Andrew

>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>
>> diff -r 69c3ae25bb1d xen/arch/x86/x86_64/entry.S
>> --- a/xen/arch/x86/x86_64/entry.S
>> +++ b/xen/arch/x86/x86_64/entry.S
>> @@ -595,6 +595,8 @@ ENTRY(spurious_interrupt_bug)
>>          jmp   handle_exception
>>  
>>  ENTRY(double_fault)
>> +        pushq $0
>> +        movl $TRAP_double_fault,4(%rsp)
>>          SAVE_ALL
>>          movq  %rsp,%rdi
>>          call  do_double_fault
>>
>> -- 
>> Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
>> T: +44 (0)1223 225 900, http://www.citrix.com 
>
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

-- 
Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
T: +44 (0)1223 225 900, http://www.citrix.com

  reply	other threads:[~2012-05-24 15:28 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-24 14:59 x86_64: Fix double fault stack setup Andrew Cooper
2012-05-24 15:14 ` Jan Beulich
2012-05-24 15:28   ` Andrew Cooper [this message]
2012-05-24 15:46     ` Jan Beulich
2012-05-24 16:12       ` Andrew Cooper
2012-05-25 10:35         ` Jan Beulich
2012-05-25 11:04           ` Keir Fraser
2012-05-24 18:04     ` Keir Fraser
2012-05-24 18:15       ` Andrew Cooper

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=4FBE53B7.2080703@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=xen-devel@lists.xen.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).