On Thu, Jul 17, 2014 at 11:15 AM, Prakhar Deep <prakhard...@gmail.com> wrote:
> I am facing kernel panic when 2nd processor is executing it's reset
> code while running a 32-bit OS as a VM (with PAE enabled) on ‘bhyve’ with
> following parameters:
> 1. Number of vCPUs 2 or more, and
> 2. Memory 4GB or more
> When number of vCPU =1 and memory > 4GB i.e. PAE mode with only one CPU or
> vCPU = 2 or more and memory < 4GB i.e non-PAE mode then VM comes up
> successfully. The OS is able to bring up the boot processor but it panics
> when AP is executing it's reset code.
> The OS uses fixed kernel virtual addresses which are mapped by a level 2
> page table which is replicated for each CPU to allow some of these mappings
> to be different on a
> per-CPU basis. These pages act as storage for many global variables which
> are used when processor is executing reset code. When a second (non-boot)
> CPU comes up, we are seeing that per-CPU pages for this CPU are reset to
> all zeroes when the second CPU sets the PGE flag in CR4. This then leads to
> incorrect code paths.
> I am not able to understand why the pages mapped to AP are getting set to 0
> when PGE flag is set in CR4 as this does not happen for boot processor. If
> i do not set PGE flag then pages are not set to 0 but the code panics some
> where else but not due to zeroed out global values.
> I have tried FreeBSD i386 with PAE support compiled into the kernel on
> Bhyve with >4GB RAM and 2 vCPUS and VM came up successfully. Also, the PGE
> bit is set in the CR4 register for FreeBSD.
> It will be helpful if anyone could throw some light on following points:
> 1. Why are the pages mapped to AP are being zeroed when PGE flag is set for
> AP in it's CR4 ?
It is hard to say but my guess would be that the 4 PDPTE registers in
the VMCS are not being properly updated during AP spinup. It would be
helpful to see the assembly instructions in the AP spinup code that
modify %cr0, %cr4 and %cr3 to know for sure.
> 2. Are there are any changes required in a 32-bit OS to boot it in PAE mode
> with 4GB or more RAM and 2 or more vCPUS on Bhyve ?
> 3. Was FreeBSD (i386) kernel updated to boot on Bhyve with 4GB or more RAM
> and 2 or more vCPUS ?
> firstname.lastname@example.org mailing list
> To unsubscribe, send any mail to
email@example.com mailing list
To unsubscribe, send any mail to