aboutsummaryrefslogtreecommitdiff
path: root/arch/x86/kernel/paravirt.c
AgeCommit message (Collapse)AuthorFilesLines
2009-03-29x86/paravirt: remove lazy mode in interruptsJeremy Fitzhardinge1-0/+3
Impact: simplification, robustness Make paravirt_lazy_mode() always return PARAVIRT_LAZY_NONE when in an interrupt. This prevents interrupt code from accidentally inheriting an outer lazy state, and instead does everything synchronously. Outer batched operations are left deferred. Signed-off-by: Jeremy Fitzhardinge <[email protected]> Acked-by: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]>
2009-03-19x86: with the last user gone, remove set_pte_presentJeremy Fitzhardinge1-1/+0
Impact: cleanup set_pte_present() is no longer used, directly or indirectly, so remove it. Signed-off-by: Jeremy Fitzhardinge <[email protected]> Cc: Xen-devel <[email protected]> Cc: Jeremy Fitzhardinge <[email protected]> Cc: Alok Kataria <[email protected]> Cc: Marcelo Tosatti <[email protected]> Cc: Avi Kivity <[email protected]> LKML-Reference: <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2009-02-23x86: refactor x86_quirks supportIngo Molnar1-1/+0
Impact: cleanup Make x86_quirks support more transparent. The highlevel methods are now named: extern void x86_quirk_pre_intr_init(void); extern void x86_quirk_intr_init(void); extern void x86_quirk_trap_init(void); extern void x86_quirk_pre_time_init(void); extern void x86_quirk_time_init(void); This makes it clear that if some platform extension has to do something here that it is considered ... weird, and is discouraged. Also remove arch_hooks.h and move it into setup.h (and other header files where appropriate). Signed-off-by: Ingo Molnar <[email protected]>
2009-02-13Merge branches 'x86/paravirt', 'x86/pat', 'x86/setup-v2', 'x86/subarch', ↵Ingo Molnar1-0/+26
'x86/uaccess' and 'x86/urgent' into x86/core
2009-02-12x86: warn if arch_flush_lazy_mmu_cpu is called in preemptible contextThomas Gleixner1-0/+2
Impact: Catch cases where lazy MMU state is active in a preemtible context arch_flush_lazy_mmu_cpu() has been changed to disable preemption so the checks in enter/leave will never trigger. Put the preemtible() check into arch_flush_lazy_mmu_cpu() to catch such cases. Signed-off-by: Thomas Gleixner <[email protected]>
2009-02-12x86/paravirt: make arch_flush_lazy_mmu/cpu disable preemptionJeremy Fitzhardinge1-0/+24
Impact: avoid access to percpu vars in preempible context They are intended to be used whenever there's the possibility that there's some stale state which is going to be overwritten with a queued update, or to force a state change when we may be in lazy mode. Either way, we could end up calling it with preemption enabled, so wrap the functions in their own little preempt-disable section so they can be safely called in any context (though preemption should never be enabled if we're actually in a lazy state). (Move out of line to avoid #include dependencies.) Signed-off-by: Jeremy Fitzhardinge <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]>
2009-01-30x86/paravirt: use callee-saved convention for pte_val/make_pte/etcJeremy Fitzhardinge1-41/+12
Impact: Optimization In the native case, pte_val, make_pte, etc are all just identity functions, so there's no need to clobber a lot of registers over them. (This changes the 32-bit callee-save calling convention to return both EAX and EDX so functions can return 64-bit values.) Signed-off-by: Jeremy Fitzhardinge <[email protected]> Signed-off-by: H. Peter Anvin <[email protected]>
2009-01-30x86/paravirt: add register-saving thunks to reduce caller register pressureJeremy Fitzhardinge1-4/+4
Impact: Optimization One of the problems with inserting a pile of C calls where previously there were none is that the register pressure is greatly increased. The C calling convention says that the caller must expect a certain set of registers may be trashed by the callee, and that the callee can use those registers without restriction. This includes the function argument registers, and several others. This patch seeks to alleviate this pressure by introducing wrapper thunks that will do the register saving/restoring, so that the callsite doesn't need to worry about it, but the callee function can be conventional compiler-generated code. In many cases (particularly performance-sensitive cases) the callee will be in assembler anyway, and need not use the compiler's calling convention. Standard calling convention is: arguments return scratch x86-32 eax edx ecx eax ? x86-64 rdi rsi rdx rcx rax r8 r9 r10 r11 The thunk preserves all argument and scratch registers. The return register is not preserved, and is available as a scratch register for unwrapped callee code (and of course the return value). Wrapped function pointers are themselves wrapped in a struct paravirt_callee_save structure, in order to get some warning from the compiler when functions with mismatched calling conventions are used. The most common paravirt ops, both statically and dynamically, are interrupt enable/disable/save/restore, so handle them first. This is particularly easy since their calls are handled specially anyway. XXX Deal with VMI. What's their calling convention? Signed-off-by: H. Peter Anvin <[email protected]>
2009-01-30x86/pvops: add a paravirt_ident functions to allow special patchingJeremy Fitzhardinge1-9/+66
Impact: Optimization Several paravirt ops implementations simply return their arguments, the most obvious being the make_pte/pte_val class of operations on native. On 32-bit, the identity function is literally a no-op, as the calling convention uses the same registers for the first argument and return. On 64-bit, it can be implemented with a single "mov". This patch adds special identity functions for 32 and 64 bit argument, and machinery to recognize them and replace them with either nops or a mov as appropriate. At the moment, the only users for the identity functions are the pagetable entry conversion functions. The result is a measureable improvement on pagetable-heavy benchmarks (2-3%, reducing the pvops overhead from 5 to 2%). Signed-off-by: Jeremy Fitzhardinge <[email protected]> Signed-off-by: H. Peter Anvin <[email protected]>
2009-01-22x86/pvops: remove pte_flags pvopJeremy Fitzhardinge1-1/+0
pte_flags() was introduced as a new pvop in order to extract just the flags portion of a pte, which is a potentially cheaper operation than extracting the page number as well. It turns out this operation is not needed, because simply using a mask to extract the flags from a pte is sufficient for all current users. Signed-off-by: Jeremy Fitzhardinge <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-10-12Merge branch 'linus' into x86/xenIngo Molnar1-2/+1
Conflicts: arch/x86/kernel/cpu/common.c arch/x86/kernel/process_64.c arch/x86/xen/enlighten.c
2008-10-11Merge branch 'x86/apic' into x86-v28-for-linus-phase4-BIngo Molnar1-2/+0
Conflicts: arch/x86/kernel/apic_32.c arch/x86/kernel/apic_64.c arch/x86/kernel/setup.c drivers/pci/intel-iommu.c include/asm-x86/cpufeature.h include/asm-x86/dma-mapping.h
2008-09-22Merge commit 'v2.6.27-rc7' into x86/debugIngo Molnar1-1/+1
2008-08-22x86_64: printout msr -v2Yinghai Lu1-0/+1
commandline show_msr=1 for bsp, show_msr=32 for all 32 cpus. [ [email protected]: added documentation ] Signed-off-by: Yinghai Lu <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-08-21x86: export pv_lock_ops non-GPLJeremy Fitzhardinge1-1/+1
None of the spinlock API is exported GPL, so there's no reason for pv_lock_ops to be. Signed-off-by: Jeremy Fitzhardinge <[email protected]> Signed-off-by: Ingo Molnar <[email protected]> Cc: drago01 <[email protected]>
2008-07-31Merge branch 'x86/spinlocks' into x86/xenIngo Molnar1-23/+0
2008-07-25Merge branch 'linus' into x86/x2apicIngo Molnar1-1/+1
Conflicts: drivers/pci/dmar.c Signed-off-by: Ingo Molnar <[email protected]>
2008-07-24x86: split spinlock implementations out into their own filesJeremy Fitzhardinge1-23/+0
ftrace requires certain low-level code, like spinlocks and timestamps, to be compiled without -pg in order to avoid infinite recursion. This patch splits out the core paravirt spinlocks and the Xen spinlocks into separate files which can be compiled without -pg. Also do xen/time.c while we're about it. As a result, we can now use ftrace within a Xen domain. Signed-off-by: Jeremy Fitzhardinge <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-07-24x86/paravirt/xen: properly fill out the ldt opsJeremy Fitzhardinge1-0/+4
LTP testing showed that Xen does not properly implement sys_modify_ldt(). This patch does the final little bits needed to make the ldt work properly. Signed-off-by: Jeremy Fitzhardinge <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-07-22x86: fix pte_flags() to only return flags, fix lguest (updated)Rusty Russell1-1/+1
(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 <[email protected]> Acked-by: Jeremy Fitzhardinge <[email protected]> Signed-off-and-morning-tea-spilled-by: Ingo Molnar <[email protected]>
2008-07-22Merge branch 'linus' into x86/x2apicIngo Molnar1-0/+28
2008-07-21Merge branch 'x86/paravirt-spinlocks' into x86/for-linusIngo Molnar1-0/+24
2008-07-21Merge branches 'x86/urgent', 'x86/amd-iommu', 'x86/apic', 'x86/cleanups', ↵Ingo Molnar1-1/+4
'x86/core', '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
2008-07-18x86: APIC: remove apic_write_around(); use alternativesMaciej W. Rozycki1-1/+0
Use alternatives to select the workaround for the 11AP Pentium erratum for the affected steppings on the fly rather than build time. Remove the X86_GOOD_APIC configuration option and replace all the calls to apic_write_around() with plain apic_write(), protecting accesses to the ESR as appropriate due to the 3AP Pentium erratum. Remove apic_read_around() and all its invocations altogether as not needed. Remove apic_write_atomic() and all its implementing backends. The use of ASM_OUTPUT2() is not strictly needed for input constraints, but I have used it for readability's sake. I had the feeling no one else was brave enough to do it, so I went ahead and here it is. Verified by checking the generated assembly and tested with both a 32-bit and a 64-bit configuration, also with the 11AP "feature" forced on and verified with gdb on /proc/kcore to work as expected (as an 11AP machines are quite hard to get hands on these days). Some script complained about the use of "volatile", but apic_write() needs it for the same reason and is effectively a replacement for writel(), so I have disregarded it. I am not sure what the policy wrt defconfig files is, they are generated and there is risk of a conflict resulting from an unrelated change, so I have left changes to them out. The option will get removed from them at the next run. Some testing with machines other than mine will be needed to avoid some stupid mistake, but despite its volume, the change is not really that intrusive, so I am fairly confident that because it works for me, it will everywhere. Signed-off-by: Maciej W. Rozycki <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-07-16x86: paravirt spinlocks, modular build fixIngo Molnar1-0/+1
fix: MODPOST 408 modules ERROR: "pv_lock_ops" [net/dccp/dccp.ko] undefined! ERROR: "pv_lock_ops" [fs/jbd2/jbd2.ko] undefined! ERROR: "pv_lock_ops" [drivers/media/common/saa7146_vv.ko] undefined! Signed-off-by: Ingo Molnar <[email protected]>
2008-07-16x86: paravirt spinlocks, !CONFIG_SMP build fixesIngo Molnar1-0/+4
Signed-off-by: Ingo Molnar <[email protected]>
2008-07-16paravirt: introduce a "lock-byte" spinlock implementationJeremy Fitzhardinge1-0/+9
Implement a version of the old spinlock algorithm, in which everyone spins waiting for a lock byte. In order to be compatible with the ticket-lock's use of a zero initializer, this uses the convention of '0' for unlocked and '1' for locked. This algorithm is much better than ticket locks in a virtual envionment, because it doesn't interact badly with the vcpu scheduler. If there are multiple vcpus spinning on a lock and the lock is released, the next vcpu to be scheduled will take the lock, rather than cycling around until the next ticketed vcpu gets it. To use this, you must call paravirt_use_bytelocks() very early, before any spinlocks have been taken. Signed-off-by: Jeremy Fitzhardinge <[email protected]> Cc: Jens Axboe <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Christoph Lameter <[email protected]> Cc: Petr Tesarik <[email protected]> Cc: Virtualization <[email protected]> Cc: Xen devel <[email protected]> Cc: Thomas Friebel <[email protected]> Cc: Nick Piggin <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-07-16x86/paravirt: add hooks for spinlock operationsJeremy Fitzhardinge1-0/+10
Ticket spinlocks have absolutely ghastly worst-case performance characteristics in a virtual environment. If there is any contention for physical CPUs (ie, there are more runnable vcpus than cpus), then ticket locks can cause the system to end up spending 90+% of its time spinning. The problem is that (v)cpus waiting on a ticket spinlock will be granted access to the lock in strict order they got their tickets. If the hypervisor scheduler doesn't give the vcpus time in that order, they will burn timeslices waiting for the scheduler to give the right vcpu some time. In the worst case it could take O(n^2) vcpu scheduler timeslices for everyone waiting on the lock to get it, not counting new cpus trying to take the lock while the log-jam is sorted out. These hooks allow a paravirt backend to replace the spinlock implementation. At the very least, this could revert the implementation back to the old lock algorithm, which allows the next scheduled vcpu to take the lock, and has basically fairly good performance. It also allows the spinlocks to take advantages of the hypervisor features to make locks more efficient (spin and block, for example). The cost to native execution is an extra direct call when using a spinlock function. There's no overhead if CONFIG_PARAVIRT is turned off. The lock structure is fixed at a single "unsigned int", initialized to zero, but the spinlock implementation can use it as it wishes. Thanks to Thomas Friebel's Xen Summit talk "Preventing Guests from Spinning Around" for pointing out this problem. Signed-off-by: Jeremy Fitzhardinge <[email protected]> Cc: Jens Axboe <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Christoph Lameter <[email protected]> Cc: Petr Tesarik <[email protected]> Cc: Virtualization <[email protected]> Cc: Xen devel <[email protected]> Cc: Thomas Friebel <[email protected]> Cc: Nick Piggin <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-07-16x86/paravirt: call paravirt_pagetable_setup_{start, done}Eduardo Habkost1-0/+4
Call paravirt_pagetable_setup_{start,done} These paravirt_ops functions were not being called on x86_64. Signed-off-by: Eduardo Habkost <[email protected]> Signed-off-by: Jeremy Fitzhardinge <[email protected]> Cc: Stephen Tweedie <[email protected]> Cc: Mark McLoughlin <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-07-14x86: let 32bit use apic_ops too - fixYinghai Lu1-5/+0
fix for pv - clean up the namespace there too. Signed-off-by: Yinghai Lu <[email protected]> Cc: Suresh Siddha <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-07-12x64, x2apic/intr-remap: Interrupt-remapping and x2apic supportSuresh Siddha1-1/+1
On Thu, Jul 10, 2008 at 12:53:20PM -0700, Ingo Molnar wrote: > > Btw., i threw it at the -tip test-cluster and got back a quick build > bugreport: > > arch/x86/xen/enlighten.c: In function 'xen_patch': > arch/x86/xen/enlighten.c:1084: warning: label 'patch_site' defined but not used > arch/x86/xen/enlighten.c: At top level: > arch/x86/xen/enlighten.c:1272: error: expected identifier before '(' token > arch/x86/xen/enlighten.c:1273: error: expected '}' before '.' token > arch/x86/kernel/paravirt.c:376:2: error: invalid preprocessing directive > #ifndedarch/x86/kernel/paravirt.c:384:2: error: #endif without #if > > with this config: > > http://redhat.com/~mingo/misc/config-Thu_Jul_10_21_43_28_CEST_2008.bad fix the typo. Signed-off-by: Suresh Siddha <[email protected]> Cc: "Siddha Cc: Suresh B" <[email protected]> Cc: "[email protected]" <[email protected]> Cc: "[email protected]" <[email protected]> Cc: "[email protected]" <[email protected]> Cc: "[email protected]" <[email protected]> Cc: "[email protected]" <[email protected]> Cc: "[email protected]" <[email protected]> Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2008-07-12x64, x2apic/intr-remap: basic apic ops supportSuresh Siddha1-3/+5
Introduce basic apic operations which handle the apic programming. This will be used later to introduce another specific operations for x2apic. For the perfomance critial accesses like IPI's, EOI etc, we use the native operations as they are already referenced by different indirections like genapic, irq_chip etc. 64bit Paravirt ops can also define their apic operations accordingly. Signed-off-by: Suresh Siddha <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Signed-off-by: Ingo Molnar <[email protected]>
2008-07-09x86: rename paravirtualized TSC functionsAlok Kataria1-1/+1
Rename the paravirtualized calculate_cpu_khz to calibrate_tsc. In all cases, we actually calibrate_tsc and use that as the cpu_khz value. Signed-off-by: Alok N Kataria <[email protected]> Signed-off-by: Dan Hecht <[email protected]> Cc: Dan Hecht <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-07-08x86, paravirt, 64-bit: fix compile errors with IA32_EMULATION offJeremy Fitzhardinge1-0/+4
Signed-off-by: Jeremy Fitzhardinge <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-07-08x86/paravirt, 64-bit: make load_gs_index() a paravirt operationJeremy Fitzhardinge1-0/+3
Signed-off-by: Eduardo Habkost <[email protected]> Signed-off-by: Jeremy Fitzhardinge <[email protected]> Cc: xen-devel <[email protected]> Cc: Stephen Tweedie <[email protected]> Cc: Eduardo Habkost <[email protected]> Cc: Mark McLoughlin <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-07-08x86/paravirt, 64-bit: add adjust_exception_frameJeremy Fitzhardinge1-0/+3
64-bit Xen pushes a couple of extra words onto an exception frame. Add a hook to deal with them. Signed-off-by: Jeremy Fitzhardinge <[email protected]> Cc: xen-devel <[email protected]> Cc: Stephen Tweedie <[email protected]> Cc: Eduardo Habkost <[email protected]> Cc: Mark McLoughlin <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-07-08x86/paravirt: add sysret/sysexit pvops for returning to 32-bit compatibility ↵Jeremy Fitzhardinge1-5/+7
userspace In a 64-bit system, we need separate sysret/sysexit operations to return to a 32-bit userspace. Signed-off-by: Jeremy Fitzhardinge <[email protected]> Cc: xen-devel <[email protected]> Cc: Stephen Tweedie <[email protected]> Cc: Eduardo Habkost <[email protected]> Cc: Mark McLoughlin <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-07-08x86/paravirt, 64-bit: don't restore user rsp within sysretJeremy Fitzhardinge1-3/+3
There's no need to combine restoring the user rsp within the sysret pvop, so split it out. This makes the pvop's semantics closer to the machine instruction. Signed-off-by: Jeremy Fitzhardinge <[email protected]> Cc: xen-devel <[email protected]> Cc: Stephen Tweedie <[email protected]> Cc: Eduardo Habkost <[email protected]> Cc: Mark McLoughlin <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-07-08x86/paravirt: split sysret and sysexitJeremy Fitzhardinge1-3/+9
Don't conflate sysret and sysexit; they're different instructions with different semantics, and may be in use at the same time (at least within the same kernel, depending on whether its an Intel or AMD system). sysexit - just return to userspace, does no register restoration of any kind; must explicitly atomically enable interrupts. sysret - reloads flags from r11, so no need to explicitly enable interrupts on 64-bit, responsible for restoring usermode %gs Signed-off-by: Jeremy Fitzhardinge <[email protected]> Cc: xen-devel <[email protected]> Cc: Stephen Tweedie <[email protected]> Cc: Eduardo Habkost <[email protected]> Cc: Mark McLoughlin <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-07-08x86/paravirt: add a pgd_alloc/free hooksJeremy Fitzhardinge1-0/+4
Add hooks which are called at pgd_alloc/free time. The pgd_alloc hook may return an error code, which if non-zero, causes the pgd allocation to be failed. The hooks may be used to allocate/free auxillary per-pgd information. also fix: > * Ingo Molnar <[email protected]> wrote: > > include/asm/pgalloc.h: In function ‘paravirt_pgd_free': > include/asm/pgalloc.h:14: error: parameter name omitted > arch/x86/kernel/entry_64.S: In file included from > arch/x86/kernel/traps_64.c:51:include/asm/pgalloc.h: In function ‘paravirt_pgd_free': > include/asm/pgalloc.h:14: error: parameter name omitted Signed-off-by: Jeremy Fitzhardinge <[email protected]> Cc: xen-devel <[email protected]> Cc: Stephen Tweedie <[email protected]> Cc: Eduardo Habkost <[email protected]> Cc: Mark McLoughlin <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-07-08Merge branch 'x86/fixmap' into x86/develIngo Molnar1-0/+2
Conflicts: arch/x86/mm/init_64.c Signed-off-by: Ingo Molnar <[email protected]>
2008-06-25paravirt: add hooks for ptep_modify_prot_start/commitJeremy Fitzhardinge1-0/+3
This patch adds paravirt-ops hooks in pv_mmu_ops for ptep_modify_prot_start and ptep_modify_prot_commit. This allows the hypervisor-specific backends to implement these in some more efficient way. Signed-off-by: Jeremy Fitzhardinge <[email protected]> Acked-by: Linus Torvalds <[email protected]> Acked-by: Hugh Dickins <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-06-20x86/paravirt/xen: add set_fixmap pv_mmu_opsJeremy Fitzhardinge1-0/+2
Signed-off-by: Jeremy Fitzhardinge <[email protected]> Signed-off-by: Juan Quintela <[email protected]> Signed-off-by: Eduardo Habkost <[email protected]> Signed-off-by: Mark McLoughlin <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-05-27x86/paravirt: add pte_flags to just get pte flagsJeremy Fitzhardinge1-0/+1
Add pte_flags() to extract the flags from a pte. This is a special case of pte_val() which is only guaranteed to return the pte's flags correctly; the page number may be corrupted or missing. The intent is to allow paravirt implementations to return pte flags without having to do any translation of the page number (most notably, Xen). Signed-off-by: Jeremy Fitzhardinge <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]>
2008-04-24x86: add pud_alloc for 4-level pagetablesJeremy Fitzhardinge1-0/+2
Signed-off-by: Jeremy Fitzhardinge <[email protected]> Signed-off-by: Ingo Molnar <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]>
2008-04-24x86: rename paravirt_alloc_pt etc after the pagetable structureJeremy Fitzhardinge1-5/+5
Rename (alloc|release)_(pt|pd) to pte/pmd to explicitly match the name of the appropriate pagetable level structure. [ x86.git merge work by Mark McLoughlin <[email protected]> ] Signed-off-by: Jeremy Fitzhardinge <[email protected]> Signed-off-by: Ingo Molnar <[email protected]> Signed-off-by: Mark McLoughlin <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]>
2008-04-17x86: paravirt_ops: don't steal memory resources in paravirt_disable_iospaceJeremy Fitzhardinge1-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 <[email protected]> Cc: Rusty Russell <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-01-30x86: fill in missing pv_mmu_ops entries for PAGETABLE_LEVELS >= 3Eduardo Habkost1-2/+9
This finally makes paravirt-ops able to compile and boot under x86_64. Signed-off-by: Eduardo Habkost <[email protected]> Signed-off-by: Ingo Molnar <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]>
2008-01-30x86: don't set pagetable_setup_{start,done} hooks on 64-bitEduardo Habkost1-0/+2
paravirt_pagetable_setup_{start,done}() are not used (yet) under x86_64, and native_pagetable_setup_{start,done}() don't exist on x86_64. So they don't need to be set. Signed-off-by: Eduardo Habkost <[email protected]> Signed-off-by: Ingo Molnar <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]>
2008-01-30x86: fill pv_cpu_ops structure with cr8 fieldsGlauber de Oliveira Costa1-0/+4
This patch fills in the read and write cr8 fields with their native version. Signed-off-by: Glauber de Oliveira Costa <[email protected]> Signed-off-by: Ingo Molnar <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]>