Bug 211548

Summary: [mps] Activating X2Apic Mode in BIOS results in "io_cmds_active is out of sync errors", won't boot
Product: Base System Reporter: Benedict Reuschling <bcr>
Component: kernAssignee: freebsd-bugs (Nobody) <bugs>
Status: New ---    
Severity: Affects Some People CC: amd64
Priority: ---    
Version: 11.0-BETA3   
Hardware: amd64   
OS: Any   
Attachments:
Description Flags
Verbose dmesg with x2apic disabled
none
Kernel with nodevice mps and x2apic disabled
none
Kernel with nodevice mps and x2apic enabled
none
Verbose booting with x2apic enabled none

Description Benedict Reuschling freebsd_committer 2016-08-03 13:43:41 UTC
I'm installing FreeBSD (tried both 11-CURRENT, BETA-3) on a Dell C6320. When I activate X2Apic Mode in the processor settings in the BIOS and boot FreeBSD, I get the following error:
http://people.freebsd.org/~bcr/mps0_error.jpg

Deactivating the X2Apic option in the BIOS lets FreeBSD boot normally and the mps0 controller can use the attached disks normally. I have several (12 in total) systems like these, all exhibit the same behaviour.

I can provide more information on firmware versions and other details upon request.
Comment 1 Konstantin Belousov freebsd_committer 2016-08-03 18:35:22 UTC
(In reply to Benedict Reuschling from comment #0)
What exactly the statement 'won't boot' mean ?  Does the machine enters infinite
loop with the messages ?

I would like to see the verbose dmesg with the x2APIC option turned off and on (can you capture using serial console ?).

Can you compile and boot kernel without mps(4) ?  You probably would be not able to mount local root, but I need messages and not the operational system.

I do not think IPIs are ever used at the device probe stage, so it might be some pecularity in the BIOS resources allocation triggered by the option.
Comment 2 Benedict Reuschling freebsd_committer 2016-08-04 07:30:33 UTC
Created attachment 173268 [details]
Verbose dmesg with x2apic disabled
Comment 3 Benedict Reuschling freebsd_committer 2016-08-04 07:32:29 UTC
Created attachment 173269 [details]
Kernel with nodevice mps and x2apic disabled
Comment 4 Benedict Reuschling freebsd_committer 2016-08-04 07:33:38 UTC
Created attachment 173270 [details]
Kernel with nodevice mps and x2apic enabled
Comment 5 Benedict Reuschling freebsd_committer 2016-08-04 07:37:41 UTC
Created attachment 173271 [details]
Verbose booting with x2apic enabled

The usbd probes eventually time out after trying usbus0, usbus1, and usbus2 for a while. Then the boot process stops entirely.
Comment 6 Benedict Reuschling freebsd_committer 2016-08-04 07:40:54 UTC
I've attached the outputs and dmesg I was able to capture. Yes, "won't boot" means the machine enters an infinite loop at that point. 

The kernel config file I used without the mps device has these contents:

include GENERIC
nodevice mps
Comment 7 Konstantin Belousov freebsd_committer 2016-08-04 08:46:36 UTC
(In reply to Benedict Reuschling from comment #6)
The data is not useful, obviously.

I want to see complete verbose dmesg from the boot with BIOS option x2APIC enabled.  You may either configure serial console or perhaps try NFS boot.
Comment 8 Benedict Reuschling freebsd_committer 2016-08-04 12:11:48 UTC
OK, I've made a screen recording of the verbose boot process with x2apic enabled and placed it in my home on freefall, filename: mps_verbose_x2apic_enabled.mov . 
Booting from NFS is not possible in the network where this server is located.