aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
Commit message (Collapse)AuthorAgeFilesLines
* x86: replace most VM86 flags with flags from processor-flags.hgorcunov@gmail.com2008-04-173-20/+20
| | | | | Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: cleanup - rename VM_MASK to X86_VM_MASKgorcunov@gmail.com2008-04-173-6/+6
| | | | | | | | | | | This patch renames VM_MASK to X86_VM_MASK (which in turn defined as alias to X86_EFLAGS_VM) to better distinguish from virtual memory flags. We can't just use X86_EFLAGS_VM instead because it is also used for conditional compilation Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: cleanup replace most vm86 flags with flags from processor-flags.h, fixIngo Molnar2008-04-171-1/+1
| | | | | | | - fix build error - fix CONFIG_HEADERS_CHECK error Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: paravirt_ops: don't steal memory resources in paravirt_disable_iospaceJeremy Fitzhardinge2008-04-171-17/+1
| | | | | | | | | | The memory resource is also used for main memory, and we need it to allocate physical addresses for memory hotplug. Knobbling io space is enough to get the job done anyway. Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Cc: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: mpparse: 64-bit fixIngo Molnar2008-04-171-0/+14
| | | | Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: change naming of cpu_initialized_mask for xenGlauber Costa2008-04-171-3/+3
| | | | | | | | | | xen does not use the global cpu_initialized mask, but rather, a specific one. So we change its name so it won't conflict with the upcoming movement of cpu_initialized_mask from smp_64.h to smp_32.h. Signed-off-by: Glauber Costa <gcosta@redhat.com> CC: Jeremy Fitzhardinge <jeremy@goop.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: microcode: show results on success tooBen Castricum2008-04-171-8/+8
| | | | | | | | Report when microcode was successfully updated. It used to be there but now with DEBUG unset it becomes very silent. Also some cosmetic fixes. Signed-off-by: Ben Castricum <lk08@bencastricum.nl> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move generic_processor_info to apic_64.cAlexey Starikovskiy2008-04-172-48/+48
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move boot_cpu_physical_apicid to apic_64.cAlexey Starikovskiy2008-04-172-4/+4
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move disabled_cpus to smpboot.c (64bit)Alexey Starikovskiy2008-04-172-4/+2
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move num_processors to smpboot.c (64 bit)Alexey Starikovskiy2008-04-172-5/+3
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move phys_cpu_present_map to smpboot.c (64bit)Alexey Starikovskiy2008-04-172-6/+3
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move phys cpu present map to smpboot.c, 64-bit, prepareIngo Molnar2008-04-171-0/+2
| | | | Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move mp_lapic_addr to apic_64.cAlexey Starikovskiy2008-04-172-1/+2
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: don't use MP_processor_info for ACPI mode (64bit)Alexey Starikovskiy2008-04-171-16/+1
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: separate generic_processor_info into its own function (64bit)Alexey Starikovskiy2008-04-171-19/+24
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: don't call MP_processor_info for disabled cpu (64bit)Alexey Starikovskiy2008-04-171-0/+4
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move generic_processor_info to apic_32.cAlexey Starikovskiy2008-04-172-81/+82
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move x86_bios_cpu_apicid to apic_32.cAlexey Starikovskiy2008-04-173-6/+3
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: mpparse, move boot cpu physical apicid to apic_32.c, fixIngo Molnar2008-04-171-0/+2
| | | | Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move boot_cpu_physical_apicid to apic_32.cAlexey Starikovskiy2008-04-172-3/+4
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move def_to_bigsmp to setup_32.cAlexey Starikovskiy2008-04-172-2/+2
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: mpparse, move disabled cpus to smpboot.c, fixIngo Molnar2008-04-171-0/+4
| | | | Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move disabled_cpus to smpboot.cAlexey Starikovskiy2008-04-172-2/+2
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move num_processors to smpboot.cAlexey Starikovskiy2008-04-172-1/+7
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move phys_cpu_present_map to smpboot.cAlexey Starikovskiy2008-04-172-1/+7
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move mp_lapic_addr to apic_32.cAlexey Starikovskiy2008-04-172-1/+2
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move apic_ver array to apic_32.cAlexey Starikovskiy2008-04-172-1/+3
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: don't use MP_processor_info for ACPI modeAlexey Starikovskiy2008-04-171-19/+2
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: separate generic_processor_info into its own functionAlexey Starikovskiy2008-04-171-76/+82
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: don't call MP_processor_info for disabled cpuAlexey Starikovskiy2008-04-171-0/+4
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move es7000_plat closer to its userAlexey Starikovskiy2008-04-171-2/+2
| | | | | Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: Centaur Isaiah processor to use sysenter in 64-bit compatibility mode ↵Dave Jones2008-04-172-2/+41
| | | | | | | | | | rather than syscall Upcoming 64 bit processors from Centaur can use sysenter. Signed-off-by: Dave Jones <davej@codemonkey.org.uk> Signed-off-by: Jesse Ahrens <jahrens@centtech.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move apic declarations to mach_apic.hGlauber Costa2008-04-174-4/+4
| | | | | | | take them out of the x86_64-specific asm/mach_apic.h Signed-off-by: Glauber Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: entry_32.S - use flags from processor-flags.hCyrill Gorcunov2008-04-171-13/+7
| | | | | | | | By including processor-flags.h we are allowed to use predefined macroses instead of keeping own ones Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: ioremap of 64-bit resource on 32-bit kernel fixIngo Molnar2008-04-171-2/+3
| | | | Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move ipi definitions to mach_ipi.hGlauber Costa2008-04-175-10/+7
| | | | | | | take them out of the x86_64-only asm/mach_apic.h Signed-off-by: Glauber Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: split large page mapping for AMD TSEGAndi Kleen2008-04-171-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On AMD SMM protected memory is part of the address map, but handled internally like an MTRR. That leads to large pages getting split internally which has some performance implications. Check for the AMD TSEG MSR and split the large page mapping on that area explicitely if it is part of the direct mapping. There is also SMM ASEG, but it is in the first 1MB and already covered by the earlier split first page patch. Idea for this came from an earlier patch by Andreas Herrmann On a RevF dual Socket Opteron system kernbench shows a clear improvement from this: (together with the earlier patches in this series, especially the split first 2MB patch) [lower is better] no split stddev split stddev delta Elapsed Time 87.146 (0.727516) 84.296 (1.09098) -3.2% User Time 274.537 (4.05226) 273.692 (3.34344) -0.3% System Time 34.907 (0.42492) 34.508 (0.26832) -1.1% Percent CPU 322.5 (38.3007) 326.5 (44.5128) +1.2% => About 3.2% improvement in elapsed time for kernbench. With GB pages on AMD Fam1h the impact of splitting is much higher of course, since it would split two full GB pages (together with the first 1MB split patch) instead of two 2MB pages. I could not benchmark a clear difference in kernbench on gbpages, so I kept it disabled for that case That was only limited benchmarking of course, so if someone was interested in running more tests for the gbpages case that could be revisited (contributions welcome) I didn't bother implementing this for 32bit because it is very unlikely the 32bit lowmem mapping overlaps into the TSEG near 4GB and the 2MB low split is already handled for both. [ mingo@elte.hu: do it on gbpages kernels too, there's no clear reason why it shouldnt help there. ] Signed-off-by: Andi Kleen <ak@suse.de> Acked-by: andreas.herrmann3@amd.com Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: don't use large pages to map the first 2/4MB of memoryAndi Kleen2008-04-172-1/+18
| | | | | | | | | | | | | | | | | | | | | | | Intel recommends to not use large pages for the first 1MB of the physical memory because there are fixed size MTRRs there which cause splitups in the TLBs. On AMD doing so is also a good idea. The implementation is a little different between 32bit and 64bit. On 32bit I just taught the initial page table set up about this because it was very simple to do. This also has the advantage that the risk of a prefetch ever seeing the page even if it only exists for a short time is minimized. On 64bit that is not quite possible, so use set_memory_4k() a little later (in check_bugs) instead. Signed-off-by: Andi Kleen <ak@suse.de> Acked-by: andreas.herrmann3@amd.com Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: add set_memory_4k to pageattr.cAndi Kleen2008-04-171-4/+16
| | | | | | | | | | | | | | | | | | | Add a new function to force split large pages into 4k pages. This is needed for some followup optimizations. I had to add a new field to cpa_data to pass down the information that try_preserve_large_page should not run. Right now no set_page_4k() because I didn't need it and all the specialized users I have in mind would be more comfortable with pure addresses. I also didn't export it because it's unlikely external code needs it. Signed-off-by: Andi Kleen <ak@suse.de> Cc: andreas.herrmann3@amd.com Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: account overlapped mappings in max_pfn_mappedAndi Kleen2008-04-172-12/+24
| | | | | | | | | | | When end_pfn is not aligned to 2MB (or 1GB) then the kernel might map more memory than end_pfn. Account this in max_pfn_mapped. Signed-off-by: Andi Kleen <ak@suse.de> Cc: andreas.herrmann3@amd.com Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: replace the now useless max_pfn_mapped defineThomas Gleixner2008-04-175-20/+20
| | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: implement true end_pfn_mapped for 32bitAndi Kleen2008-04-171-0/+4
| | | | | | | | | | | | | | Even on 32bit 2MB pages can map more memory than is in the true max_low_pfn if end_pfn is not highmem and not aligned to 2MB. Add a end_pfn_map similar to x86-64 that accounts for this fact. This is important for code that really needs to know about all mapping aliases. Signed-off-by: Andi Kleen <ak@suse.de> Cc: andreas.herrmann3@amd.com Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: move early exception handlers into init.textAndi Kleen2008-04-171-0/+2
| | | | | | | | | | | | Currently they are in .text.head because the rest of head_64.S. .text.head is not removed as init data, but the early exception handlers should be because they are not needed after early boot of the BP. So move them over. Signed-off-by: Andi Kleen <ak@suse.de> Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: replace early exception setup macro recursion with loopAndi Kleen2008-04-171-10/+6
| | | | | | | | | | | | | | | The early exception handlers are currently set up using a macro recursion. There is only one user left. Replace the macro with a standard loop in place. Noop patch, just a cleanup. [ tglx@linutronix.de: simplified ] Signed-off-by: Andi Kleen <ak@suse.de> Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: don't set up early exception handlers for external interruptsAndi Kleen2008-04-172-5/+3
| | | | | | | | | | | | All of early setup runs with interrupts disabled, so there is no need to set up early exception handlers for vectors >= 32 This saves some minor text size. Signed-off-by: Andi Kleen <ak@suse.de> Cc: mingo@elte.hu Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: relocate_kernel - use predefined macroses for page attributesgorcunov@gmail.com2008-04-172-3/+5
| | | | | Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: relocate_kernel - use predefined macroses for processor stategorcunov@gmail.com2008-04-172-29/+20
| | | | | Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: relocate_kernel - use PAGE_SIZE instead of numeric constantgorcunov@gmail.com2008-04-172-2/+2
| | | | | Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: relocate_kernel_32.S - clear register in more elegant waygorcunov@gmail.com2008-04-171-2/+1
| | | | | Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>