Reboot during startup with recent head
Konstantin Belousov
kostikbel at gmail.com
Thu Nov 8 14:33:25 UTC 2012
On Thu, Nov 08, 2012 at 01:23:13PM +0100, Joel Dahl wrote:
> On 08-11-2012 12:55, Andriy Gapon wrote:
> > on 08/11/2012 10:45 Joel Dahl said the following:
> > > Hi,
> > >
> > > I rebuilt head (r242605) in a VMware virtual machine a couple of days ago, and
> > > now it won't boot anymore. The loader menu appears, the countdown starts, and boom,
> > > reboot. I tried a fresh head (r242700) but the problem remains.
> > >
> > > Going back to r242205 solves the problem, so this was introduced somewhere
> > > between r242205 and r242605.
> > >
> > > I managed to record the entire thing with my phone before I had to leave for
> > > work today. You can see it here:
> > >
> > > http://mirror.vnode.se/upload/head-reboots.mov
> > >
> > > Any ideas? Any specific revision I should try to back out?
> > >
> >
> > Rather wild guess - try to back out the recent SMEP commit.
>
> Well, it was a good guess. :-) I backed out revision 242433, rebuilt the kernel,
> and now it boots again.
The following patch should allow you to boot. Please show me the verbose dmesg
of the boot with the patch applied.
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index 06b45b2..7846194 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -598,6 +598,7 @@ pmap_bootstrap(vm_paddr_t *firstaddr)
{
vm_offset_t va;
pt_entry_t *pte, *unused;
+ int smep_enable;
/*
* Create an initial set of page tables to run the kernel in.
@@ -613,8 +614,16 @@ pmap_bootstrap(vm_paddr_t *firstaddr)
/* XXX do %cr0 as well */
load_cr4(rcr4() | CR4_PGE | CR4_PSE);
load_cr3(KPML4phys);
- if (cpu_stdext_feature & CPUID_STDEXT_SMEP)
- load_cr4(rcr4() | CR4_SMEP);
+ if (cpu_stdext_feature & CPUID_STDEXT_SMEP) {
+ smep_enable = 0;
+ TUNABLE_INT_FETCH("hw.smep_enable", &smep_enable);
+ if (smep_enable)
+ load_cr4(rcr4() | CR4_SMEP);
+ else {
+ cpu_stdext_feature &= ~CPUID_STDEXT_SMEP;
+ printf("SMEP: disabled\n");
+ }
+ }
/*
* Initialize the kernel pmap (which is statically allocated).
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-current/attachments/20121108/a08c5958/attachment.sig>
More information about the freebsd-current
mailing list