[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] ACPI-Tables corrupted?
On 28/07/2010 13:13, "Juergen Gross" <juergen.gross@xxxxxxxxxxxxxx> wrote: >>> As Dom0 is a pv-kernel, it should be able to ignore this entry. >>> The crash kernel OTOH should not panic due to the trashed entry! >>> What is the correct solution here? >> >> Could provide a cmdline option to not nobble the DMAR? > > That's a possibility. > I wonder whether it wouldn't be better to let dom0 decide not to use it if > running under xen. This would remove the requirement for zapping the ACPI > table. IMO it's always a bad idea to change data of a deeper layer... If we don't zap the DMAR then every existing dom0 kernel will fail with new hypervisor. We could gate it on a new elfnote, or rename to XMAR and have dom0 rename it back, or just have a flag day. >>> The crash kernel expects a valid DMAR entry, as following code in >>> enable_IR_x2apic() suggests: >> >> I don't know what that function does, nor how the error path below depends >> on DMAR. DMAR isn't mentioned in the below code. > > Sorry, here a larger fragment (source arch/x86/kernel/apic/apic.c): > /* IR is required if there is APIC ID > 255 even when running > * under KVM > */ > if (max_physical_apicid > 255 || !kvm_para_available()) > goto nox2apic; The if stmt is confusing. Also, what would happen if this kernel was booted on a system without VT-d (and hence no DMAR)? Presumably it *can* boot in a DMAR-less environment -- there must be something odd going on for it to end on this path for us. -- Keir > /* > * without IR all CPUs can be addressed by IOAPIC/MSI > * only in physical mode > */ > x2apic_force_phys(); > } > > x2apic_enabled = 1; > > if (x2apic_supported() && !x2apic_mode) { > x2apic_mode = 1; > enable_x2apic(); > pr_info("Enabled x2apic\n"); > } > > nox2apic: > if (!ret) /* IR enabling failed */ > restore_IO_APIC_setup(ioapic_entries); > unmask_8259A(); > local_irq_restore(flags); > > out: > if (ioapic_entries) > free_ioapic_entries(ioapic_entries); > > if (x2apic_enabled) > return; > > if (x2apic_preenabled) > panic("x2apic: enabled by BIOS but kernel init failed."); > else if (cpu_has_x2apic) > pr_info("Not enabling x2apic, Intr-remapping init > failed.\n"); > } > > > dmar_table_init() will return -ENODEV if no DMAR record is found. > > > Juergen _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |