Bug 211548 - [mps] Activating X2Apic Mode in BIOS results in "io_cmds_active is out of sync errors", won't boot
Summary: [mps] Activating X2Apic Mode in BIOS results in "io_cmds_active is out of syn...
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 11.0-BETA3
Hardware: amd64 Any
: --- Affects Some People
Assignee: freebsd-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-08-03 13:43 UTC by Benedict Reuschling
Modified: 2016-08-04 13:38 UTC (History)
1 user (show)

See Also:


Attachments
Verbose dmesg with x2apic disabled (92.26 KB, text/plain)
2016-08-04 07:30 UTC, Benedict Reuschling
no flags Details
Kernel with nodevice mps and x2apic disabled (78.47 KB, image/jpeg)
2016-08-04 07:32 UTC, Benedict Reuschling
no flags Details
Kernel with nodevice mps and x2apic enabled (93.14 KB, image/jpeg)
2016-08-04 07:33 UTC, Benedict Reuschling
no flags Details
Verbose booting with x2apic enabled (99.40 KB, image/jpeg)
2016-08-04 07:37 UTC, Benedict Reuschling
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Benedict Reuschling freebsd_committer freebsd_triage 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 freebsd_triage 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 freebsd_triage 2016-08-04 07:30:33 UTC
Created attachment 173268 [details]
Verbose dmesg with x2apic disabled
Comment 3 Benedict Reuschling freebsd_committer freebsd_triage 2016-08-04 07:32:29 UTC
Created attachment 173269 [details]
Kernel with nodevice mps and x2apic disabled
Comment 4 Benedict Reuschling freebsd_committer freebsd_triage 2016-08-04 07:33:38 UTC
Created attachment 173270 [details]
Kernel with nodevice mps and x2apic enabled
Comment 5 Benedict Reuschling freebsd_committer freebsd_triage 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 freebsd_triage 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 freebsd_triage 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 freebsd_triage 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.