24 Jul, 2008
1 commit
-
* 'cpus4096-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (31 commits)
NR_CPUS: Replace NR_CPUS in speedstep-centrino.c
cpumask: Provide a generic set of CPUMASK_ALLOC macros, FIXUP
NR_CPUS: Replace NR_CPUS in cpufreq userspace routines
NR_CPUS: Replace per_cpu(..., smp_processor_id()) with __get_cpu_var
NR_CPUS: Replace NR_CPUS in arch/x86/kernel/genapic_flat_64.c
NR_CPUS: Replace NR_CPUS in arch/x86/kernel/genx2apic_uv_x.c
NR_CPUS: Replace NR_CPUS in arch/x86/kernel/cpu/proc.c
NR_CPUS: Replace NR_CPUS in arch/x86/kernel/cpu/mcheck/mce_64.c
cpumask: Optimize cpumask_of_cpu in lib/smp_processor_id.c, fix
cpumask: Use optimized CPUMASK_ALLOC macros in the centrino_target
cpumask: Provide a generic set of CPUMASK_ALLOC macros
cpumask: Optimize cpumask_of_cpu in lib/smp_processor_id.c
cpumask: Optimize cpumask_of_cpu in kernel/time/tick-common.c
cpumask: Optimize cpumask_of_cpu in drivers/misc/sgi-xp/xpc_main.c
cpumask: Optimize cpumask_of_cpu in arch/x86/kernel/ldt.c
cpumask: Optimize cpumask_of_cpu in arch/x86/kernel/io_apic_64.c
cpumask: Replace cpumask_of_cpu with cpumask_of_cpu_ptr
Revert "cpumask: introduce new APIs"
cpumask: make for_each_cpu_mask a bit smaller
net: Pass reference to cpumask variable in net/sunrpc/svc.c
...Fix up trivial conflicts in drivers/cpufreq/cpufreq.c manually
22 Jul, 2008
4 commits
-
PTE_PFN_MASK was getting lonely, so I made it a friend.
Signed-off-by: Jeremy Fitzhardinge
Cc: Rusty Russell
Signed-off-by: Ingo Molnar -
Rusty, in his peevish way, complained that macros defining constants
should have a name which somewhat accurately reflects the actual
purpose of the constant.Aside from the fact that PTE_MASK gives no clue as to what's actually
being masked, and is misleadingly similar to the functionally entirely
different PMD_MASK, PUD_MASK and PGD_MASK, I don't really see what the
problem is.But if this patch silences the incessent noise, then it will have
achieved its goal (TODO: write test-case).Signed-off-by: Jeremy Fitzhardinge
Cc: Rusty Russell
Signed-off-by: Ingo Molnar -
(Jeremy said:
rusty: use PTE_MASK
rusty: use PTE_MASK
rusty: use PTE_MASK
When I asked:
jsgf: does that include the NX flag?
He responded eloquently:
rusty: use PTE_MASK
rusty: use PTE_MASK
yes, it's the official constant of masking flags out of ptes
)Change a15af1c9ea2750a9ff01e51615c45950bad8221b 'x86/paravirt: add
pte_flags to just get pte flags' removed lguest's private pte_flags()
in favor of a generic one.Unfortunately, the generic one doesn't filter out the non-flags bits:
this results in lguest creating corrupt shadow page tables and blowing
up host memory.Since noone is supposed to use the pfn part of pte_flags(), it seems
safest to always do the filtering.Signed-off-by: Rusty Russell
Acked-by: Jeremy Fitzhardinge
Signed-off-and-morning-tea-spilled-by: Ingo Molnar -
There are a couple of places where (P)Dprintk is used which is an old
compile time enabled printk wrapper. Convert it to the generic
pr_debug().Signed-off-by: Thomas Gleixner
21 Jul, 2008
7 commits
-
Conflicts:
net/sunrpc/svc.c
Signed-off-by: Ingo Molnar
-
…ore', 'x86/cpu', 'x86/fixmap', 'x86/gart', 'x86/kprobes', 'x86/memtest', 'x86/modules', 'x86/nmi', 'x86/pat', 'x86/reboot', 'x86/setup', 'x86/step', 'x86/unify-pci', 'x86/uv', 'x86/xen' and 'xen-64bit' into x86/for-linus
-
-tip testing found this build bug:
arch/x86/kvm/built-in.o:(.text.fixup+0x1): relocation truncated to fit: R_X86_64_32 against `.text'
arch/x86/kvm/built-in.o:(.text.fixup+0xb): relocation truncated to fit: R_X86_64_32 against `.text'
arch/x86/kvm/built-in.o:(.text.fixup+0x15): relocation truncated to fit: R_X86_64_32 against `.text'
arch/x86/kvm/built-in.o:(.text.fixup+0x1f): relocation truncated to fit: R_X86_64_32 against `.text'
arch/x86/kvm/built-in.o:(.text.fixup+0x29): relocation truncated to fit: R_X86_64_32 against `.text'Introduced by commit 4ecac3fd. The problem is that 'push' will default
to 32-bit, which is not wide enough as a fixup address. (and which would
crash on any real fixup event even if it was wide enough)Introduce KVM_EX_PUSH to get the proper address push width on 64-bit too.
Signed-off-by: Ingo Molnar
20 Jul, 2008
18 commits
-
Fixes compilation with CONFIG_VMI enabled.
Signed-off-by: Avi Kivity
-
Instead of prefetching all segment bases before emulation, read them at the
last moment. Since most of them are unneeded, we save some cycles on
Intel machines where this is a bit expensive.Signed-off-by: Avi Kivity
-
rip relative decoding is relative to the instruction pointer of the next
instruction; by moving address adjustment until after decoding is complete,
we remove the need to determine the instruction size.Signed-off-by: Avi Kivity
-
This patch enables coalesced MMIO for x86 architecture.
It defines KVM_MMIO_PAGE_OFFSET and KVM_CAP_COALESCED_MMIO.
It enables the compilation of coalesced_mmio.c.Signed-off-by: Laurent Vivier
Signed-off-by: Avi Kivity -
Prefixes functions that will be exported with kvm_.
We also prefixed set_segment() even if it still static
to be coherent.signed-off-by: Guillaume Thouvenin
Signed-off-by: Laurent Vivier
Signed-off-by: Avi Kivity -
Add emulation for the memory type range registers, needed by VMware esx 3.5,
and by pci device assignment.Signed-off-by: Avi Kivity
-
This can be used to simplify the x86 instruction decoder.
Signed-off-by: Avi Kivity
-
Signed-off-by: Sheng Yang
Signed-off-by: Avi Kivity -
[avi: fix ia64 build breakage]
Signed-off-by: Sheng Yang
Signed-off-by: Avi Kivity -
Obsoleted by the vmx-specific per-cpu list.
Signed-off-by: Avi Kivity
-
KVM turns off hardware virtualization extensions during reboot, in order
to disassociate the memory used by the virtualization extensions from the
processor, and in order to have the system in a consistent state.
Unfortunately virtual machines may still be running while this goes on,
and once virtualization extensions are turned off, any virtulization
instruction will #UD on execution.Fix by adding an exception handler to virtualization instructions; if we get
an exception during reboot, we simply spin waiting for the reset to complete.
If it's a true exception, BUG() so we can have our stack trace.Signed-off-by: Avi Kivity
-
The KVM MMU tries to detect when a speculative pte update is not actually
used by demand fault, by checking the accessed bit of the shadow pte. If
the shadow pte has not been accessed, we deem that page table flooded and
remove the shadow page table, allowing further pte updates to proceed
without emulation.However, if the pte itself points at a page table and only used for write
operations, the accessed bit will never be set since all access will happen
through the emulator.This is exactly what happens with kscand on old (2.4.x) HIGHMEM kernels.
The kernel points a kmap_atomic() pte at a page table, and then
proceeds with read-modify-write operations to look at the dirty and accessed
bits. We get a false flood trigger on the kmap ptes, which results in the
mmu spending all its time setting up and tearing down shadows.Fix by setting the shadow accessed bit on emulated accesses.
Signed-off-by: Avi Kivity
-
To distinguish between real page faults and nested page faults they should be
traced as different events. This is implemented by this patch.Signed-off-by: Joerg Roedel
Signed-off-by: Avi Kivity -
* Slight optimization when getting one's own cpu_info percpu data.
Signed-off-by: Mike Travis
Signed-off-by: Ingo Molnar -
remove unused leftovers.
Signed-off-by: Ingo Molnar
-
so NUMAQ can use that to call numaq_pre_time_init()
This allows us to remove a NUMAQ special from arch/x86/kernel/setup.c.
(and paves the way to remove the NUMAQ subarch)
Signed-off-by: Yinghai Lu
Signed-off-by: Ingo Molnar -
add these new x86_quirks methods:
int *mpc_record;
int (*mpc_apic_id)(struct mpc_config_processor *m);
void (*mpc_oem_bus_info)(struct mpc_config_bus *m, char *name);
void (*mpc_oem_pci_bus)(struct mpc_config_bus *m);
void (*smp_read_mpc_oem)(struct mp_config_oemtable *oemtable,
unsigned short oemsize);... and move NUMAQ related mps table handling to numaq_32.c.
also move the call to smp_read_mpc_oem() to smp_read_mpc() directly.
Should not change functionality, albeit it would be nice to get it
tested on real NUMAQ as well ...Signed-off-by: Yinghai Lu
Signed-off-by: Ingo Molnar -
introduce x86_quirks array of boot-time quirk methods.
No change in functionality intended.
Signed-off-by: Yinghai Lu
Signed-off-by: Ingo Molnar
19 Jul, 2008
7 commits
-
As 256 entries are needed, aligning to a 256-entry boundary is
sufficient and still guarantees the single pte table requirement.Signed-off-by: Jan Beulich
Signed-off-by: H. Peter Anvin -
It's not used anywhere outside its single referencing file.
Signed-off-by: Jan Beulich
Signed-off-by: H. Peter Anvin -
It's not used anywhere outside its declaring file.
Signed-off-by: Jan Beulich
Signed-off-by: H. Peter Anvin -
Conflicts:
drivers/acpi/processor_throttling.c
Signed-off-by: Ingo Molnar
-
Declaring x86 traps under one hood.
Declaring x86 do_traps before defining them.Signed-off-by: Jaswinder Singh
Cc: Andi Kleen
Cc: David Woodhouse
Cc: Alexander van Heukelum
Signed-off-by: Ingo Molnar -
The force_mwait variable iss defined either in
arch/x86/kernel/cpu/amd.c or in arch/x86/kernel/setup_64.c, but it is
only initialized and used in arch/x86/kernel/process.c. This patch
moves the declaration to arch/x86/kernel/process.c.Signed-off-by: Thomas Petazzoni
Cc: michael@free-electrons.com
Signed-off-by: Ingo Molnar
18 Jul, 2008
3 commits
-
Fallout from commit 33185c504f8e521b398536b5a8d415779a24593c ("x86:
merge signal_32/64.h")Thanks to Dick Streefland who provided an useful testcase on
http://lkml.org/lkml/2008/3/17/205 (only applicable to 2.6.24.x), that
helped a lot as a deterministic way to bisect an issue that leaded to
this fix.Signed-off-by: Herton Ronaldo Krzesinski
Signed-off-by: Luiz Fernando N. Capitulino
Cc: Roland McGrath
Cc:
Signed-off-by: Ingo Molnar -
Real-time code needs to know the number of cycles per second
on SGI UV. The information is provided via a run time BIOS
call. This patch provides the linux side of that interface.
This is the first of several run time BIOS calls to be defined
in uv/bios.h and bios_uv.c.Note that BIOS_CALL() is just a stub for now. The bios
side is being worked on.Signed-off-by: Russ Anderson
Cc: Jack Steiner
Signed-off-by: Ingo Molnar -
Ricardo M. Correia spotted that the use of __fls() in fls64() did
not seem to make sense. In fact fls64()'s implementation is fine,
but the description of __fls() was wrong. Fix that.Reported-by: "Ricardo M. Correia"
Signed-off-by: Alexander van Heukelum
Cc: Andrew Morton
Cc: Andi Kleen
Signed-off-by: Ingo Molnar