Re: [PATCh] x86: overmapped fix when 4K pages on tail - 64bit

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Ingo Molnar
Date: Thursday, July 10, 2008 - 12:20 am

* Yinghai Lu <yhlu.kernel@gmail.com> wrote:


i'd not be surprised to see that in ~10 years. Then we'll have to extend 
the array to 7 entries ;-)

btw., i have a weird system:

[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
[    0.000000]  BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
[    0.000000]  BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
[    0.000000]  BIOS-e820: 0000000000100000 - 000000003ed93000 (usable)
[    0.000000]  BIOS-e820: 000000003ed93000 - 000000003ee4d000 (ACPI NVS)
[    0.000000]  BIOS-e820: 000000003ee4d000 - 000000003fea2000 (usable)
[    0.000000]  BIOS-e820: 000000003fea2000 - 000000003fee9000 (ACPI NVS)
[    0.000000]  BIOS-e820: 000000003fee9000 - 000000003feed000 (usable)
[    0.000000]  BIOS-e820: 000000003feed000 - 000000003feff000 (ACPI data)
[    0.000000]  BIOS-e820: 000000003feff000 - 000000003ff00000 (usable)

look at the RAM splitup:

  640K + BIOS-hole + ~1GB + acpi + 17MB + acpi + 16K + acpi + 4K

and the end of it is not 1024 MB but 1023 MB.

so the _best_ mapping strategy would probably be to do 2MB granular 
mapping up to 1GB, i.e. to 'overmap' into the end of RAM. But we also 
have to make sure that we have no PCI resources or weird chipset 
resources in the final 1MB that could hurt us with PAT, aliasing-wise. 

Since i'm not sure we can really ensure sanity on that level, i guess 
your solution to precisely map everything without overmapping is our 
best choice. Thus sane hw with such end of RAM mappings:

 BIOS-e820: 0000000100000000 - 0000000120000000 (usable)

and another one with:

 BIOS-e820: 0000000100000000 - 0000000830000000 (usable)

... would be slightly faster (because it would use 2MB TLBs at the end 
of kernel RAM, instead of broken-up 4K TLBs)

perhaps we could also have a config and boot option that would sanitize 
the e820 map to just ignore all non-2MB granular RAM. Losing 1-2MB of 
RAM is not an issue on a 32GB system.

	Ingo
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] x86: introduce page_size_mask for 64bit, Yinghai Lu, (Tue Jul 8, 1:41 am)
Re: [PATCH] x86: introduce page_size_mask for 64bit, Ingo Molnar, (Wed Jul 9, 12:38 am)
[PATCH] x86: merge __acpi_map_table, Yinghai Lu, (Wed Jul 9, 8:16 pm)
Re: [PATCH] x86: merge __acpi_map_table, Ingo Molnar, (Wed Jul 9, 11:54 pm)
Re: [PATCh] x86: overmapped fix when 4K pages on tail - 64bit, Ingo Molnar, (Thu Jul 10, 12:20 am)
Re: [PATCh] x86: overmapped fix when 4K pages on tail - 64bit, Arjan van de Ven, (Thu Jul 10, 7:16 am)
[PATCH] x86: save slit, Yinghai Lu, (Thu Jul 10, 8:36 pm)
[PATCH] x86: introduce max_low_pfn_mapped for 64bit, Yinghai Lu, (Thu Jul 10, 8:38 pm)
Re: [PATCH] x86: save slit, Ingo Molnar, (Fri Jul 11, 1:22 am)
[PATCH] x86: let 32bit use apic_ops too, Yinghai Lu, (Fri Jul 11, 6:41 pm)
[PATCH] x86: make read_apic_id return final apicid, Yinghai Lu, (Fri Jul 11, 6:44 pm)
[PATCH] x86: make 64bit have get_apic_id, Yinghai Lu, (Sat Jul 12, 1:01 am)
[PATCH] x86: max_low_pfn_mapped fix #1, Yinghai Lu, (Sat Jul 12, 2:30 pm)
[PATCH] x86: max_low_pfn_mapped fix #2, Yinghai Lu, (Sat Jul 12, 2:31 pm)
[PATCH] x86: max_low_pfn_mapped fix #3, Yinghai Lu, (Sat Jul 12, 2:32 pm)
Re: [PATCH] x86: let 32bit use apic_ops too, Suresh Siddha, (Sat Jul 12, 6:08 pm)
Re: [PATCH] x86: make read_apic_id return final apicid, Suresh Siddha, (Sat Jul 12, 6:19 pm)
Re: [PATCH] x86: let 32bit use apic_ops too, Maciej W. Rozycki, (Sat Jul 12, 6:43 pm)
Re: [PATCH] x86: let 32bit use apic_ops too, Yinghai Lu, (Sat Jul 12, 6:45 pm)
Re: [PATCH] x86: let 32bit use apic_ops too, Maciej W. Rozycki, (Sat Jul 12, 6:54 pm)
Re: [PATCH] x86: let 32bit use apic_ops too, Yinghai Lu, (Sat Jul 12, 7:04 pm)
Re: [PATCH] x86: make 64bit have get_apic_id, Ingo Molnar, (Sat Jul 12, 11:28 pm)
Re: [PATCH] x86: make 64bit have get_apic_id, Ingo Molnar, (Sat Jul 12, 11:59 pm)
Re: [PATCH] x86: make 64bit have get_apic_id, Yinghai Lu, (Sun Jul 13, 12:05 am)
Re: [PATCH] x86: make 64bit have get_apic_id, Ingo Molnar, (Sun Jul 13, 2:23 am)
Re: [PATCH] x86: make 64bit have get_apic_id, Ingo Molnar, (Sun Jul 13, 2:28 am)
Re: [PATCH] x86: max_low_pfn_mapped fix #1, Ingo Molnar, (Sun Jul 13, 2:45 am)
Re: [PATCh] x86: overmapped fix when 4K pages on tail - 64bit, Arjan van de Ven, (Sun Jul 13, 8:33 am)
Re: [PATCH] x86: make 64bit have get_apic_id, Suresh Siddha, (Sun Jul 13, 9:15 am)
Re: [PATCH] x86: let 32bit use apic_ops too, Suresh Siddha, (Sun Jul 13, 9:28 am)
Re: [PATCH] x86: let 32bit use apic_ops too, Suresh Siddha, (Sun Jul 13, 9:43 am)
Re: [PATCH] x86: let 32bit use apic_ops too, Maciej W. Rozycki, (Sun Jul 13, 9:51 am)
Re: [PATCH] x86: let 32bit use apic_ops too, Maciej W. Rozycki, (Sun Jul 13, 10:05 am)
Re: [PATCH] x86: let 32bit use apic_ops too, Cyrill Gorcunov, (Sun Jul 13, 10:16 am)
[PATCH] x86: max_low_pfn_mapped fix #4, Yinghai Lu, (Sun Jul 13, 2:29 pm)
[PATCH] x86: get x86_phys_bits early, Yinghai Lu, (Sun Jul 13, 2:30 pm)
Re: [PATCH] x86: let 32bit use apic_ops too, Maciej W. Rozycki, (Sun Jul 13, 4:46 pm)
[PATCH] x86: let 32bit use apic_ops too - fix, Yinghai Lu, (Sun Jul 13, 10:19 pm)
Re: [PATCH] x86: let 32bit use apic_ops too - fix, Ingo Molnar, (Mon Jul 14, 12:12 am)
Re: [PATCH] x86: let 32bit use apic_ops too, Cyrill Gorcunov, (Mon Jul 14, 9:48 am)
Re: [PATCH] x86: let 32bit use apic_ops too - fix, Suresh Siddha, (Mon Jul 14, 9:49 am)
Re: [PATCH] x86: let 32bit use apic_ops too - fix, Yinghai Lu, (Mon Jul 14, 10:00 am)
Re: [PATCH] x86: let 32bit use apic_ops too, Maciej W. Rozycki, (Mon Jul 14, 10:20 am)
Re: [PATCH] x86: let 32bit use apic_ops too - fix, Suresh Siddha, (Mon Jul 14, 11:03 am)
Re: [PATCH] x86: let 32bit use apic_ops too, Cyrill Gorcunov, (Mon Jul 14, 11:09 am)
Re: [PATCH] x86: let 32bit use apic_ops too, Maciej W. Rozycki, (Mon Jul 14, 11:24 am)
Re: [PATCH] x86: let 32bit use apic_ops too, Cyrill Gorcunov, (Mon Jul 14, 11:32 am)
Re: [PATCH] x86: let 32bit use apic_ops too - fix, Suresh Siddha, (Tue Jul 15, 10:33 am)
Re: [PATCH] x86: let 32bit use apic_ops too - fix, Yinghai Lu, (Tue Jul 15, 11:10 am)
Re: [PATCH] x86: let 32bit use apic_ops too - fix, Suresh Siddha, (Tue Jul 15, 11:27 am)
Re: [PATCH] x86: let 32bit use apic_ops too - fix, Ingo Molnar, (Fri Jul 18, 10:06 am)
Re: [PATCH] x86: let 32bit use apic_ops too - fix, Ingo Molnar, (Fri Jul 18, 10:07 am)