Hello,
On 03.11.2016 21:02, Michal Necasek wrote:
Sorry for the delay. I can confirm that the problem is fixed in
4.9.0-rc3 and prefill_possible_map no longer crashes (as it did in
4.9.0-rc2). Thank you!
Just a side question, is the previous fix in commit ff8560512b
(x86/boot/smp: Don't try to poke disabled/non-existent APIC) actually
still required or would the no-op APIC driver take care of it?
Sorry for the delay too (holiday-related). I tested 4.9.0rc4 on a
32-bit VirtualBox virtual machine without I/O-APIC and can confirm that
it now boots. Since I am at it, the OHCI timer wheel-related problems
are also no longer reproducible.
Regards and thanks,
Michael
Regards, Michal
----- Original Message ----- From: [email protected] To:
[email protected] Cc: [email protected],
[email protected], [email protected],
[email protected], [email protected],
[email protected] Sent: Friday, October 28, 2016 9:37:31
PM GMT +01:00 Amsterdam / Berlin / Bern / Rome / Stockholm / Vienna
Subject: Re: 4.8.2 not booting in 32-bit VM without I/O-APIC
On Fri, 28 Oct 2016, Thomas Gleixner wrote:
On Fri, 28 Oct 2016, Michal Necasek wrote:
Sorry if I wasn't clear. No, it doesn't work for us. The
ff8560512b8d commit fixes the APIC poking on machines where there
is no local APIC available (and thus fixes the committer's
machine), but it doesn't work in our case, where there is a local
APIC but no I/O APIC, no ACPI MADT, and no MP tables.
In other words, for us boot_cpu_has(X86_FEATURE_APIC) is true but
the APIC has not been set up yet because init_apic_mappings()
hasn't been run.
Right. That mapping setup is an utter trainwreck as we do it from
multiple places, but there is no reason why we can't move it before
the call to prefill_possible_map().
Thanks,
tglx
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index
bbfbca5fea0c..b59fdba3cbdf 100644 --- a/arch/x86/kernel/setup.c +++
b/arch/x86/kernel/setup.c @@ -1221,11 +1221,13 @@ void __init
setup_arch(char **cmdline_p) */ get_smp_config();
+ /* Make sure apic is mapped before prefill_possible_map() */ +
init_apic_mappings(); + prefill_possible_map();
init_cpu_to_node();
- init_apic_mappings(); io_apic_init_mappings();
kvm_guest_init();
--
Michael Thayer | VirtualBox engineer
ORACLE Deutschland B.V. & Co. KG | Werkstr. 24 | D-71384 Weinstadt
ORACLE Deutschland B.V. & Co. KG
Hauptverwaltung: Riesstraße 25, D-80992 München
Registergericht: Amtsgericht München, HRA 95603
Komplementärin: ORACLE Deutschland Verwaltung B.V.
Hertogswetering 163/167, 3543 AS Utrecht, Niederlande Handelsregister
der Handelskammer Midden-Nederland, Nr. 30143697
Geschäftsführer: Alexander van der Ven, Jan Schultheiss, Val Maher