lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 27 Aug 2008 19:33:28 -0400
From:	Mathieu Desnoyers <mathieu.desnoyers@...ymtl.ca>
To:	"Luiz Fernando N. Capitulino" <lcapitulino@...driva.com.br>
Cc:	Gerhard Brauer <gerhard.brauer@....de>,
	"H. Peter Anvin" <hpa@...or.com>, Ingo Molnar <mingo@...e.hu>,
	linux-kernel@...r.kernel.org
Subject: Re: 2.6.{26.2,27-rc} oops on virtualbox

* Luiz Fernando N. Capitulino (lcapitulino@...driva.com.br) wrote:
> Em Tue, 26 Aug 2008 22:34:49 +0200
> Gerhard Brauer <gerhard.brauer@....de> escreveu:
> 
> | On Tue, Aug 26, 2008 at 02:15:58PM -0400, Mathieu Desnoyers wrote:
> | > 
> | > Ok, it might still be caused by paravirt and alternatives instruction
> | > patching. What if you also do :
> | > 
> | > alternative_instructions()
> | > 
> | > +        unsigned long flags;
> | >         /* The patching is not fully atomic, so try to avoid local interruptions
> | >            that might execute the to be patched code.
> | >            Other CPUs are not running. */
> | >         stop_nmi();
> | > #ifdef CONFIG_X86_MCE
> | >         stop_mce();
> | > #endif
> | > +        local_irq_save(flags);
> | > 
> | > 
> | > ...
> | > +        local_irq_restore(flags);
> | >         restart_nmi();
> | > #ifdef CONFIG_X86_MCE
> | >         restart_mce();
> | > #endif
> | > 
> | > ?
> | 
> | Hej! This last changes (in addition to the others you mentioned) seems
> | to be a good shot. I could reboot 8 times the guest, compile several
> | packages (something which always leeds to the oops) and currently i
> | build two big packages simultan. So this is heavy IO.
> 
>  Yeah, it works for me too and it's good to know that you are doing
> additional tests. I'm doing only boot tests... I was testing lots of
> kernels and doing additional tests would take a lot of time.
> 
>  Now, what does this mean? Is VirtualBox issuing interrupts when it
> shouldn't or should this section of the code be better protected?
> 

Since this problem appears while we are using a simple memcpy (the
text_poke_early version), but disappears when we disable interrupts for
a longer period of this, I suspect a problem with irq disabling in
Virtualbox.

We could try to add some nsleep() or msleep() calls within text_poke and
text_poke_early before and after the code modificatoin to see if the
problem disappears. If it does, then that would somewhat confirm the
racy irq disable thesis.

Mathieu

> -- 
> Luiz Fernando N. Capitulino

-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ