On Fri, 2020-04-03 at 16:11 +0200, Svante Signell wrote: > Hello, > > After having problems to boot the cross-built Hurd from the latest > hurd/gnumach/mig git repos bisecting gnumach with git-bisect the > following bad commit was found (breaking --enable-pae according to > Samuel): > > 0b3504b6db86c531e8b53b8e9aa9030db6e72357 is the first bad commit > commit 0b3504b6db86c531e8b53b8e9aa9030db6e72357 > Author: Samuel Thibault <samuel.thiba...@ens-lyon.org> > Date: Sun Mar 18 20:31:22 2012 +0100 > > pmap.h: Add 64bit variant > > * i386/intel/pmap.h (L4SHIFT, L4MASK, lin2l4num): New macros > (PDPNUM, PDPMASK, set_pmap): Add 64bit variant. Make PAE use the > 64bit mask > too. > (pmap): Add l4base, user_l4base, user_pdpbase fields. > * i386/intel/pmap.c (pmap_bootstrap): Clear the whole PDP. Enable > write > bit in PDP. Set user pagetable to NULL. Initialize l4base. > (pmap_clear_bootstrap_pagetable): Add 4th-level support. > (pmap_ceate): Clear the whole PDP. Enable write bit in PDP. > Initialize > l4base, user_pdpbase, user_l4base. > (pmap_destroy): Clear l4base, user_pdpbase, user_l4base. > * i386/i386at/model_dep.c (i386at_init): Load l4base on 64bits. > > i386/i386at/model_dep.c | 10 ++-- > i386/intel/pmap.c | 120 > ++++++++++++++++++++++++++++++++++++++++++------ > i386/intel/pmap.h | 41 ++++++++++++++++- > 3 files changed, 153 insertions(+), 18 deletions(-)
Some more info: The problem showed up in kvm as a hardware error when running the built image with qemu: qemu-system-x86_64 -chardev \ stdio,id=char0,logfile=serial.log,signal=off -serial chardev:char0 \ -- enable-kvm -m 2048 hurd-cross.img Serial console output: Loading GNU Mach Loading the Hurd ... KVM: entry failed, hardware error 0x80000021 If you're running a guest on an Intel machine without unrestricted mode support, the failure can be most likely due to the guest entering an invalid state for Intel VT. For example, the guest maybe running in big real mode which is not supported on less recent Intel processors. EAX=80010011 EBX=f5af0000 ECX=f5af0000 EDX=078bfbfd ESI=35af4000 EDI=f67fe020 EBP=c11ea214 ESP=c11ea1ec EIP=c1000317 EFL=00000086 [--S--P-] CPL=0 II=0 A20=1 SMM=0 HLT=0 ES =0010 40000000 ffffffff 00c09300 DPL=0 DS [-WA] CS =0008 40000000 ffffffff 00c09b00 DPL=0 CS32 [-RA] SS =0010 40000000 ffffffff 00c09300 DPL=0 DS [-WA] DS =0010 40000000 ffffffff 00c09300 DPL=0 DS [-WA] FS =0000 00000000 ffffffff 00c00000 GS =0000 00000000 ffffffff 00c00000 LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy GDT= 01000090 0000001f IDT= 00000000 00000000 CR0=80010011 CR2=00000000 CR3=35aef000 CR4=00000020 DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000 DR6=00000000ffff0ff0 DR7=0000000000000400 EFER=0000000000000000 Code=0f 20 e0 83 c8 20 0f 22 e0 0f 20 c0 0d 00 00 01 80 0f 22 c0 <0f> 20 c0 25 ff ff ff 9f 0f 22 c0 80 e6 20 75 79 eb 00 e8 42 69 00 00 e8 bd 69 00 00 e8 88