All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: "Luiz Fernando N. Capitulino" <lcapitulino@mandriva.com.br>,
	Ingo Molnar <mingo@elte.hu>,
	linux-kernel@vger.kernel.org
Subject: Re: 2.6.{26.2,27-rc} oops on virtualbox
Date: Fri, 22 Aug 2008 13:45:29 -0400	[thread overview]
Message-ID: <20080822174529.GA13020@Krystal> (raw)
In-Reply-To: <48AEF457.5020100@zytor.com>

* H. Peter Anvin (hpa@zytor.com) wrote:
> Was looking at the code stream, and noticed this:
>
> Code: c0 0f 84 0b 01 00 00 b8 d0 bf 41 c0 c7 05 6c c0 41 c0 ff ff ff ff e8 
> 7f 82 21 00 e8 1a 03 02 00 8b 45 b0 50 9d 0f 1f 84 00 00 00 <00> 00 8b 45 
> bc 83 c4 60 5b 5e 5f 5d c3 66 90 a1 6c c0 41 c0 e8
>
> Code: c0 0f 84 0b 01 00 00 b8 d0 bf 41 c0 c7 05 6c c0 41 c0 ff ff ff ff e8 
> 7f 82 21 00 e8 1a 03 02 00 8b 45 b0 50 9d 0f 1f 84 00 00 00 <00> 00 8b 45 
> bc 83 c4 60 5b 5e 5f 5d c3 66 90 a1 6c c0 41 c0 e8
>
> The EIP is in the *MIDDLE* of a NOPL instruction:
>
> C012FC46  C00F84            ror byte [edi],0x84
> C012FC49  0B01              or eax,[ecx]
> C012FC4B  0000              add [eax],al
> C012FC4D  B8D0BF41C0        mov eax,0xc041bfd0
> C012FC52  C7056CC041C0FFFF  mov dword [dword 0xc041c06c],0xffffffff
>          -FFFF
> C012FC5C  E87F822100        call dword 0xc0347ee0
> C012FC61  E81A030200        call dword 0xc014ff80
> C012FC66  8B45B0            mov eax,[ebp-0x50]
> C012FC69  50                push eax
> C012FC6A  9D                popfd
> C012FC6B  0F1F840000000000  nop dword [eax+eax+0x0]
> C012FC73  8B45BC            mov eax,[ebp-0x44]
> C012FC76  83C460            add esp,byte +0x60
> C012FC79  5B                pop ebx
> C012FC7A  5E                pop esi
> C012FC7B  5F                pop edi
> C012FC7C  5D                pop ebp
> C012FC7D  C3                ret
> C012FC7E  6690              xchg ax,ax
> C012FC80  A16CC041C0        mov eax,[0xc041c06c]
>
> There are two possibilities: VirtualBox mis-executes (not merely traps, 
> which is what tip:master looks for) the NOPL instruction, or something is 
> jumping into the middle of the sequence that is then replaced by the NOPL.
>
> So, Luiz: the DEBUG_INFO version of vmlinux would be helpful.  It would 
> also help to know the exact version of VirtualBox you're running, what 
> source you got it from, and what your host system looks like.
>
> 	-hpa

The patch which turns on this bug this this important change to the
apply paravirt : it disables interrupts _near_ the code patching,
_within_ the loop. Before, interrupts were disabled outside of the loop.
It needs to disable interrupts within the loop to be able to use vmap in
text_poke().

So I bet VirtualBox has a race in the way it handles interrupt
disabling.

Mathieu

-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

  reply	other threads:[~2008-08-22 17:45 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-20 19:29 2.6.{26.2,27-rc} oops on virtualbox Luiz Fernando N. Capitulino
2008-08-21 21:34 ` H. Peter Anvin
2008-08-22  6:42   ` H. Peter Anvin
2008-08-22  6:50     ` Ingo Molnar
2008-08-22 14:39       ` Luiz Fernando N. Capitulino
2008-08-22 15:34         ` Mathieu Desnoyers
2008-08-22 16:29           ` Luiz Fernando N. Capitulino
2008-08-22 16:35             ` Mathieu Desnoyers
2008-08-22 17:20               ` Luiz Fernando N. Capitulino
2008-08-22 18:11                 ` H. Peter Anvin
2008-08-22 19:40                   ` Luiz Fernando N. Capitulino
2008-08-22 20:31                     ` H. Peter Anvin
2008-08-22 20:55                       ` Luiz Fernando N. Capitulino
2008-08-22 20:57                 ` Luiz Fernando N. Capitulino
2008-08-22 21:08                   ` H. Peter Anvin
2008-08-26 14:18                     ` Gerhard Brauer
2008-08-26 14:53                       ` Mathieu Desnoyers
2008-08-26 16:09                         ` Luiz Fernando N. Capitulino
2008-08-26 16:13                         ` Luiz Fernando N. Capitulino
2008-08-26 17:18                           ` Mathieu Desnoyers
2008-08-26 17:32                             ` H. Peter Anvin
2008-08-26 18:02                             ` Luiz Fernando N. Capitulino
2008-08-26 18:15                               ` Mathieu Desnoyers
2008-08-26 19:52                                 ` H. Peter Anvin
2008-08-26 20:34                                 ` Gerhard Brauer
2008-08-26 20:48                                   ` Mathieu Desnoyers
2008-08-26 21:25                                     ` Gerhard Brauer
2008-08-26 21:35                                       ` Mathieu Desnoyers
2008-08-26 21:51                                         ` H. Peter Anvin
2008-08-27  0:13                                         ` Gerhard Brauer
2008-08-27 19:13                                   ` Luiz Fernando N. Capitulino
2008-08-27 23:33                                     ` Mathieu Desnoyers
2008-08-28 13:30                                       ` Luiz Fernando N. Capitulino
2008-08-31  9:29                                         ` Gerhard Brauer
2008-08-31 13:28                                           ` Stefan Lippers-Hollmann
2008-08-31 14:03                                             ` Gerhard Brauer
2008-08-31 14:09                                           ` Luiz Fernando N. Capitulino
2008-09-21 13:41                                             ` Gerhard Brauer
2008-09-22  9:51                                               ` Ingo Molnar
2008-09-24 13:24                                               ` Luiz Fernando N. Capitulino
2008-08-28 13:50                                       ` Gerhard Brauer
2008-08-26 19:27                         ` Gerhard Brauer
2008-08-26 16:02                       ` Luiz Fernando N. Capitulino
2008-08-26 16:40                         ` Gerhard Brauer
2008-08-22 17:16             ` H. Peter Anvin
2008-08-22 17:45               ` Mathieu Desnoyers [this message]
2008-08-22 17:57                 ` H. Peter Anvin
2008-08-22 19:10               ` Luiz Fernando N. Capitulino
2008-08-22 19:14                 ` H. Peter Anvin
2008-08-22 19:18                 ` H. Peter Anvin
2008-08-22 19:42                   ` Luiz Fernando N. Capitulino
2008-08-22 14:28   ` Luiz Fernando N. Capitulino

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=20080822174529.GA13020@Krystal \
    --to=mathieu.desnoyers@polymtl.ca \
    --cc=hpa@zytor.com \
    --cc=lcapitulino@mandriva.com.br \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    /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.