Upstream kernel 32 bit architecture

From: Dorin Barboiu (Cloudbase Solutions SRL)
Date: Thu Mar 03 2016 - 08:15:30 EST


Hi guys,
There is a problem with Upstream kernel compilation on 32 bits architecture. I want to compile Linux-Next on a machine with 32 bits kernel. The problem is that after Linux-Next compiled successfully the VM won't  boot with new kernel, triggered a call trace.
Tested on Ubuntu 14.04.3 and CentOS 7.0 both on 32 bits  and this issue is present.
Tested on Ubuntu bare-metal and the problem is not present.

All in all, on bare-metal Linux-Next is not an issue, but in Hyper-V VM it is.


Default kernel: 4.2.0-21-generic
Tested with: linux-next 4.5.0-rc5-next-20160225

Module information: cat /proc/modules
iscsi_tcp 20480 0 - Live 0xf8457000
libiscsi_tcp 20480 1 iscsi_tcp, Live 0xf84f3000
libiscsi 49152 2 iscsi_tcp,libiscsi_tcp, Live 0xfa51d000
scsi_transport_iscsi 86016 3 iscsi_tcp,libiscsi, Live 0xfb0ce000
joydev 20480 0 - Live 0xf84ed000
nfsd 282624 2 - Live 0xfa644000
auth_rpcgss 49152 1 nfsd, Live 0xfa442000
nfs_acl 16384 1 nfsd, Live 0xf8482000
nfs 212992 0 - Live 0xfa691000
lockd 81920 2 nfsd,nfs, Live 0xfa508000
grace 16384 2 nfsd,lockd, Live 0xf8435000
sunrpc 282624 6 nfsd,auth_rpcgss,nfs_acl,nfs,lockd, Live 0xfa735000
hid_hyperv 16384 0 - Live 0xfa42a000
hid 98304 1 hid_hyperv, Live 0xfa453000
hyperv_keyboard 16384 0 - Live 0xf847d000
fscache 61440 1 nfs, Live 0xf8493000
hyperv_fb 20480 1 - Live 0xfa63e000
dm_multipath 24576 0 - Live 0xf94ff000
scsi_dh 16384 1 dm_multipath, Live 0xf8463000
serio_raw 16384 0 - Live 0xfa41a000
lp 16384 0 - Live 0xf8421000
parport 45056 1 lp, Live 0xfa729000
btrfs 942080 0 - Live 0xfa52f000
xor 28672 1 btrfs, Live 0xf8419000
raid6_pq 102400 1 btrfs, Live 0xf84a3000
hv_netvsc 36864 0 - Live 0xf84bd000
hv_storvsc 20480 2 - Live 0xf8474000
hv_utils 24576 3 - Live 0xf8488000
psmouse 114688 0 - Live 0xf84ca000
hv_vmbus 45056 6 hid_hyperv,hyperv_keyboard,hyperv_fb,hv_netvsc,hv_storvsc,hv_utils, Live 0xf8468000
floppy 61440 0 - Live 0xf8443000

Loaded driver and hardware infromation:
. cat /proc/ioports
 
0000-0cf7 : PCI Bus 0000:00
 0000-001f : dma1
 0020-0021 : pic1
 0022-0022 : ACPI PM2_CNT_BLK
 0040-0043 : timer0
 0050-0053 : timer1
 0060-0060 : keyboard
 0061-0061 : PNP0800:00
 0064-0064 : keyboard
 0070-0071 : rtc0
 0080-008f : dma page reg
 00a0-00a1 : pic2
 00c0-00df : dma2
 00f0-00ff : PNP0C04:00
   00f0-00ff : fpu
 0160-016f : pnp 00:06
 0170-0177 : 0000:00:07.1
   0170-0177 : ata_piix
 01e0-01ef : pnp 00:06
 01f0-01f7 : 0000:00:07.1
   01f0-01f7 : ata_piix
 0278-027f : pnp 00:06
 02f8-02ff : serial
 0370-0371 : pnp 00:07
 0376-0376 : 0000:00:07.1
   0376-0376 : ata_piix
 0378-037f : pnp 00:06
 03c0-03df : vga+
 03f2-03f2 : floppy
 03f4-03f5 : floppy
 03f6-03f6 : 0000:00:07.1
   03f6-03f6 : ata_piix
 03f7-03f7 : floppy
 03f8-03ff : serial
 0400-043f : 0000:00:07.3
   0400-043f : pnp 00:07
     0400-0403 : ACPI PM1a_EVT_BLK
     0404-0405 : ACPI PM1a_CNT_BLK
     0408-040b : ACPI PM_TMR
     040c-040f : ACPI GPE0_BLK
 0440-044f : pnp 00:07
 04d0-04d1 : pnp 00:06
 0678-067f : pnp 00:06
 0778-077f : pnp 00:06
0cf8-0cff : PCI conf1
0d00-ffff : PCI Bus 0000:00
 ffa0-ffaf : 0000:00:07.1
   ffa0-ffaf : ata_piix

 
. cat /proc/iomem

00000000-00000fff : reserved
00001000-0009fbff : System RAM
0009fc00-0009ffff : reserved
000a0000-000bffff : PCI Bus 0000:00
 000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000e0000-000fffff : reserved
 000f0000-000fffff : System ROM
00100000-7ffeffff : System RAM
 01000000-01711f2e : Kernel code
 01711f2f-01ac6dff : Kernel data
 01bc2000-01c88fff : Kernel bss
 18000000-1fffffff : Crash kernel
7fff0000-7fffefff : ACPI Tables
7ffff000-7fffffff : ACPI Non-volatile Storage
f8000000-fffbffff : PCI Bus 0000:00
 f8000000-fbffffff : 0000:00:08.0
   fb800000-fbffffff : hyperv_fb
 fec00000-fec003ff : IOAPIC 0
 fee00000-fee00fff : Local APIC
   fee00000-fee00fff : pnp 00:07
fffc0000-ffffffff : pnp 00:08
fe0000000-fffefffff : PCI Bus 0000:00

PCI information: lspci -vvv
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) (rev 03)
       Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
       Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
       Latency: 0

00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 01)
       Subsystem: Microsoft Corporation Device 0000
       Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
       Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
       Latency: 0

00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01) (prog-if 80 [Master])
       Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
       Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
       Latency: 0
       Region 0: [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [size=8]
       Region 1: [virtual] Memory at 000003f0 (type 3, non-prefetchable)
       Region 2: [virtual] Memory at 00000170 (32-bit, non-prefetchable) [size=8]
       Region 3: [virtual] Memory at 00000370 (type 3, non-prefetchable)
       Region 4: I/O ports at ffa0 [size=16]
       Kernel driver in use: ata_piix

00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)
       Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
       Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
       Interrupt: pin A routed to IRQ 9

00:08.0 VGA compatible controller: Microsoft Corporation Hyper-V virtual VGA (prog-if 00 [VGA controller])
       Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
       Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
       Latency: 0
       Interrupt: pin A routed to IRQ 11
       Region 0: Memory at f8000000 (32-bit, non-prefetchable) [size=64M]
       Expansion ROM at <unassigned> [disabled]
       Kernel driver in use: hyperv_fb

Other infroamtion:

Kernel panic log:
[   24.280020] Call Trace:
[   24.280020]  [<c164950f>] ? __alloc_skb+0x5f/0x260
[   24.280020]  [<c1647de2>] __kmalloc_reserve.isra.44+0x22/0x70
[   24.280020]  [<c164950f>] __alloc_skb+0x5f/0x260
[   24.280020]  [<c164975e>] alloc_skb_with_frags+0x4e/0x1a0
[   24.280020]  [<c10a8267>] ? __wake_up_common+0x47/0x70
[   24.280020]  [<c164454a>] sock_alloc_send_pskb+0x15a/0x1a0
[   24.280020]  [<c16f026e>] unix_stream_sendmsg+0x28e/0x340
[   24.280020]  [<c164061d>] sock_sendmsg+0x2d/0x40
[   24.280020]  [<c1640e59>] ___sys_sendmsg+0x1d9/0x1f0
[   24.280020]  [<c1063513>] ? kmap_atomic_prot+0xe3/0x100
[   24.280020]  [<c10635cc>] ? __kunmap_atomic+0x5c/0xa0
[   24.280020]  [<c1099b75>] ? update_curr+0x85/0x210
[   24.280020]  [<c1099c3b>] ? update_curr+0x14b/0x210
[   24.280020]  [<c1099dae>] ? update_cfs_shares+0x8e/0xd0
[   24.280020]  [<c109cce4>] ? dequeue_entity+0x3c4/0xd70
[   24.280020]  [<c11e87c2>] ? __fdget+0x12/0x20
[   24.280020]  [<c1641708>] __sys_sendmsg+0x38/0x70
[   24.280020]  [<c16422f6>] SYSC_socketcall+0x7e6/0x9a0
[   24.280020]  [<c10a30f2>] ? pick_next_task_fair+0x3d2/0x4e0
[   24.280020]  [<c1027965>] ? __switch_to+0x115/0x3e0
[   24.280020]  [<c1099c3b>] ? update_curr+0x14b/0x210
[   24.280020]  [<c116498d>] ? free_pages_prepare+0x18d/0x290
[   24.280020]  [<c118af4f>] ? do_wp_page+0x31f/0x790
[   24.280020]  [<c1063466>] ? kmap_atomic_prot+0x36/0x100
[   24.280020]  [<c1027965>] ? __switch_to+0x115/0x3e0
[   24.280020]  [<c174a9c8>] ? __schedule+0x348/0x910
[   24.280020]  [<c1642573>] SyS_socketcall+0x13/0x20
[   24.280020]  [<c1003622>] do_fast_syscall_32+0x92/0x130
[   24.280020]  [<c174dfdc>] sysenter_past_esp+0x3d/0x5d
[   24.280020] Code: 84 b8 00 00 00 89 75 e0 8b 07 64 8b 50 04 64 03 05 e8 e0 c1 c1 8b 18 85 db 89 5d e4
00 8b 47 14 8d 4a 01 8b 75 e4 <8b> 1c 06 8b 37 8b 45 e4 64 0f c7 0e 0f 94 c0 84 c0 74 ca 8b 75
[   24.280020] EIP: [<c11b37b3>] __kmalloc_track_caller+0x73/0x1f0 SS:ESP 0068:f60b3b20
[   24.280020] CR2: 000000000006d069
[   26.590991] ---[ end trace cbebd7f49f857247 ]---
[   28.957392] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000009
[   28.957392]
[   28.960006] Kernel Offset: disabled
[   28.960006] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000009

Thanks,
Dodo