Re: [PATCH v4] x86/mm/ident_map: On UV systems, use gbpages only where full GB page should be mapped.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Steve Wahl <steve.wahl@xxxxxxx> wrote:

> When ident_pud_init() uses only gbpages to create identity maps, large
> ranges of addresses not actually requested can be included in the
> resulting table; a 4K request will map a full GB.  On UV systems, this
> ends up including regions that will cause hardware to halt the system
> if accessed (these are marked "reserved" by BIOS).  Even processor
> speculation into these regions is enough to trigger the system halt.
> And MTRRs cannot be used to restrict this speculation, there are not
> enough MTRRs to cover all the reserved regions.

Nor should MTRRs be (ab-)used for this really.

> The fix for that would be to only use gbpages when map creation 
> requests include the full GB page of space, and falling back to using 
> smaller 2M pages when only portions of a GB page are included in the 
> request.
> 
> But on some other systems, possibly due to buggy bios, that solution 
> leaves some areas out of the identity map that are needed for kexec 
> to succeed.  It is believed that these areas are not marked properly 
> for map_acpi_tables() in arch/x86/kernel/machine_kexec_64.c to catch 
> and map them.  The nogbpages kernel command line option also causes 
> these systems to fail even without these changes.

Does the 'nogbpages' kernel command line option fail on these systems 
even outside of kexec (ie. regular boot), or only in combination with 
kexec?

Thanks,

	Ingo




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux