search for: flush_tlb

Displaying 20 results from an estimated 34 matches for "flush_tlb".

2007 Apr 18
0
[PATCH 8/10] Vmi kmap_atomic_pte fix.patch
Implement vmi_kmap_atomic_pte in terms of the backend set_linear_mapping operation. The conversion is rather straighforward; call kmap_atomic and then inform the hypervisor of the page mapping. The _flush_tlb damage is due to macros being pulled in from highmem.h. Signed-off-by: Zachary Amsden <zach@vmware.com> diff -r 2207a31829e7 arch/i386/kernel/vmi.c --- a/arch/i386/kernel/vmi.c Mon Apr 09 13:43:06 2007 -0700 +++ b/arch/i386/kernel/vmi.c Mon Apr 09 15:05:33 2007 -0700 @@ -26,6 +26,7 @@ #inc...
2007 Apr 18
0
[PATCH 8/10] Vmi kmap_atomic_pte fix.patch
Implement vmi_kmap_atomic_pte in terms of the backend set_linear_mapping operation. The conversion is rather straighforward; call kmap_atomic and then inform the hypervisor of the page mapping. The _flush_tlb damage is due to macros being pulled in from highmem.h. Signed-off-by: Zachary Amsden <zach@vmware.com> diff -r 2207a31829e7 arch/i386/kernel/vmi.c --- a/arch/i386/kernel/vmi.c Mon Apr 09 13:43:06 2007 -0700 +++ b/arch/i386/kernel/vmi.c Mon Apr 09 15:05:33 2007 -0700 @@ -26,6 +26,7 @@ #inc...
2007 Apr 18
0
[PATCH 7/10] Resurrect the VMI lazy mode fixes.
...tidied up paravirt-ops code. Wheee! Signed-off-by: Zachary Amsden <zach@vmware.com> diff -r ecb571084874 arch/i386/kernel/vmi.c --- a/arch/i386/kernel/vmi.c Fri Apr 06 12:31:06 2007 -0700 +++ b/arch/i386/kernel/vmi.c Fri Apr 06 14:25:03 2007 -0700 @@ -69,6 +69,7 @@ static struct { void (*flush_tlb)(int); void (*set_initial_ap_state)(int, int); void (*halt)(void); + void (*set_lazy_mode)(int mode); } vmi_ops; /* @@ -545,6 +546,26 @@ vmi_startup_ipi_hook(int phys_apicid, un } #endif +static void vmi_set_lazy_mode(enum paravirt_lazy_mode mode) +{ + static DEFINE_PER_CPU(int, lazy_...
2007 Apr 18
0
[PATCH 7/10] Resurrect the VMI lazy mode fixes.
...tidied up paravirt-ops code. Wheee! Signed-off-by: Zachary Amsden <zach@vmware.com> diff -r ecb571084874 arch/i386/kernel/vmi.c --- a/arch/i386/kernel/vmi.c Fri Apr 06 12:31:06 2007 -0700 +++ b/arch/i386/kernel/vmi.c Fri Apr 06 14:25:03 2007 -0700 @@ -69,6 +69,7 @@ static struct { void (*flush_tlb)(int); void (*set_initial_ap_state)(int, int); void (*halt)(void); + void (*set_lazy_mode)(int mode); } vmi_ops; /* @@ -545,6 +546,26 @@ vmi_startup_ipi_hook(int phys_apicid, un } #endif +static void vmi_set_lazy_mode(enum paravirt_lazy_mode mode) +{ + static DEFINE_PER_CPU(int, lazy_...
2007 Apr 18
0
[PATCH 8/9] Vmi apic ops.diff
...ernelStack); para_fill(set_iopl_mask, SetIOPLMask); - paravirt_ops.io_delay = (void *)vmi_nop; - + para_fill(io_delay, IODelay); para_fill(set_lazy_mode, SetLazyMode); - reloc = call_vrom_long_func(vmi_rom, get_reloc, VMI_CALL_FlushTLB); - if (rel->type != VMI_RELOCATION_NONE) { - vmi_ops.flush_tlb = (void *)rel->eip; - paravirt_ops.flush_tlb_user = vmi_flush_tlb_user; - paravirt_ops.flush_tlb_kernel = vmi_flush_tlb_kernel; - } + /* user and kernel flush are just handled with different flags to FlushTLB */ + para_wrap(flush_tlb_user, vmi_flush_tlb_user, flush_tlb, FlushTLB); + para_wrap(...
2007 Apr 18
0
[PATCH 8/9] Vmi apic ops.diff
...ernelStack); para_fill(set_iopl_mask, SetIOPLMask); - paravirt_ops.io_delay = (void *)vmi_nop; - + para_fill(io_delay, IODelay); para_fill(set_lazy_mode, SetLazyMode); - reloc = call_vrom_long_func(vmi_rom, get_reloc, VMI_CALL_FlushTLB); - if (rel->type != VMI_RELOCATION_NONE) { - vmi_ops.flush_tlb = (void *)rel->eip; - paravirt_ops.flush_tlb_user = vmi_flush_tlb_user; - paravirt_ops.flush_tlb_kernel = vmi_flush_tlb_kernel; - } + /* user and kernel flush are just handled with different flags to FlushTLB */ + para_wrap(flush_tlb_user, vmi_flush_tlb_user, flush_tlb, FlushTLB); + para_wrap(...
2009 Jan 09
1
[PULL]: tip/cpus4096 updates
...ble in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/travis/linux-2.6-cpus4096-for-ingo.git master Mike Travis (9): cpumask: update irq_desc to use cpumask_var_t cpumask: fix bug in use cpumask_var_t in irq_desc SGI UV cpumask: use static temp cpumask in flush_tlb x86: cleanup remaining cpumask_t code in mce_amd_64.c x86: cleanup remaining cpumask_t code in microcode_core.c x86: reduce stack usage in init_intel_cacheinfo cpumask: use cpumask_var_t in dcdbas.c cpumask: reduce stack usage in find_lowest_rq Xen: reduce memory...
2009 Jan 09
1
[PULL]: tip/cpus4096 updates
...ble in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/travis/linux-2.6-cpus4096-for-ingo.git master Mike Travis (9): cpumask: update irq_desc to use cpumask_var_t cpumask: fix bug in use cpumask_var_t in irq_desc SGI UV cpumask: use static temp cpumask in flush_tlb x86: cleanup remaining cpumask_t code in mce_amd_64.c x86: cleanup remaining cpumask_t code in microcode_core.c x86: reduce stack usage in init_intel_cacheinfo cpumask: use cpumask_var_t in dcdbas.c cpumask: reduce stack usage in find_lowest_rq Xen: reduce memory...
2007 Apr 18
0
[PATCH 4/5] Vmi.patch
...ctor, u32 esp0); + void (fastcall *allocate_page)(u32, u32, u32, u32, u32); + void (fastcall *release_page)(u32, u32); + void (fastcall *set_pte)(pte_t, pte_t *, unsigned); + void (fastcall *update_pte)(pte_t *, unsigned); + void (fastcall *set_linear_mapping)(int, u32, u32, u32); + void (fastcall *flush_tlb)(int); + void (fastcall *set_initial_ap_state)(int, int); +} vmi_ops; + +/* XXX move this to alternative.h */ +extern struct paravirt_patch __start_parainstructions[], + __stop_parainstructions[]; + +/* + * VMI patching routines. + */ +#define MNEM_CALL 0xe8 +#define MNEM_JMP 0xe9 +#define MNEM_R...
2007 Apr 18
0
[PATCH 4/5] Vmi.patch
...ctor, u32 esp0); + void (fastcall *allocate_page)(u32, u32, u32, u32, u32); + void (fastcall *release_page)(u32, u32); + void (fastcall *set_pte)(pte_t, pte_t *, unsigned); + void (fastcall *update_pte)(pte_t *, unsigned); + void (fastcall *set_linear_mapping)(int, u32, u32, u32); + void (fastcall *flush_tlb)(int); + void (fastcall *set_initial_ap_state)(int, int); +} vmi_ops; + +/* XXX move this to alternative.h */ +extern struct paravirt_patch __start_parainstructions[], + __stop_parainstructions[]; + +/* + * VMI patching routines. + */ +#define MNEM_CALL 0xe8 +#define MNEM_JMP 0xe9 +#define MNEM_R...
2007 Apr 18
0
[PATCH 5/6] VMI backend for paravirt-ops
...ctor, u32 esp0); + void (fastcall *allocate_page)(u32, u32, u32, u32, u32); + void (fastcall *release_page)(u32, u32); + void (fastcall *set_pte)(pte_t, pte_t *, unsigned); + void (fastcall *update_pte)(pte_t *, unsigned); + void (fastcall *set_linear_mapping)(int, u32, u32, u32); + void (fastcall *flush_tlb)(int); + void (fastcall *set_initial_ap_state)(int, int); +} vmi_ops; + +/* XXX move this to alternative.h */ +extern struct paravirt_patch __start_parainstructions[], + __stop_parainstructions[]; + +/* + * VMI patching routines. + */ +#define MNEM_CALL 0xe8 +#define MNEM_JMP 0xe9 +#define MNEM_R...
2007 Apr 18
0
[PATCH 5/6] VMI backend for paravirt-ops
...ctor, u32 esp0); + void (fastcall *allocate_page)(u32, u32, u32, u32, u32); + void (fastcall *release_page)(u32, u32); + void (fastcall *set_pte)(pte_t, pte_t *, unsigned); + void (fastcall *update_pte)(pte_t *, unsigned); + void (fastcall *set_linear_mapping)(int, u32, u32, u32); + void (fastcall *flush_tlb)(int); + void (fastcall *set_initial_ap_state)(int, int); +} vmi_ops; + +/* XXX move this to alternative.h */ +extern struct paravirt_patch __start_parainstructions[], + __stop_parainstructions[]; + +/* + * VMI patching routines. + */ +#define MNEM_CALL 0xe8 +#define MNEM_JMP 0xe9 +#define MNEM_R...
1997 Nov 13
0
Linux F00F Patch [Forwarded e-mail from Aleph One]
...+ + __asm__ __volatile__("\tlidt %0": "=m" (idt_d)); + + /* + * Unmap lower page: + */ + pgd = pgd_offset(current->mm, twopage); + pmd = pmd_offset(pgd, twopage); + pte = pte_offset(pmd, twopage); + + pte_clear(pte); + flush_tlb_all(); + + printk(" ... done\n"); +} + + + __initfunc(void trap_init(void)) { int i; diff -u --recursive --new-file v2.1.62/linux/arch/i386/mm/fault.c linux/arch/i386/mm/fault.c - --- v2.1.62/linux/arch/i386/mm/fault.c Wed Oct 15 16:04:23 1997 +++ linux/arch/i386/mm/fault...
2007 Apr 18
31
[PATCH 00/28] Updates for firstfloor paravirt-ops patches
Hi Andi, This is a set of updates for the firstfloor patch queue. Quick rundown: revert-mm-x86_64-mm-account-for-module-percpu-space-separately-from-kernel-percpu.patch separate-module-percpu-space.patch Update the module percpu accounting patch fix-ff-allow-percpu-variables-to-be-page-aligned.patch Make sure the percpu memory allocation is page-aligned
2007 Apr 18
31
[PATCH 00/28] Updates for firstfloor paravirt-ops patches
Hi Andi, This is a set of updates for the firstfloor patch queue. Quick rundown: revert-mm-x86_64-mm-account-for-module-percpu-space-separately-from-kernel-percpu.patch separate-module-percpu-space.patch Update the module percpu accounting patch fix-ff-allow-percpu-variables-to-be-page-aligned.patch Make sure the percpu memory allocation is page-aligned
2007 Apr 18
0
[PATCH 6/6] VMI timer patches
...h> #include <asm/timer.h> +#include <asm/vmi_time.h> /* Convenient for calling VMI functions indirectly in the ROM */ typedef u32 __attribute__((regparm(1))) (VROMFUNC)(void); @@ -67,6 +68,7 @@ struct { void (fastcall *set_linear_mapping)(int, u32, u32, u32); void (fastcall *flush_tlb)(int); void (fastcall *set_initial_ap_state)(int, int); + void (fastcall *halt)(void); } vmi_ops; /* XXX move this to alternative.h */ @@ -252,7 +254,20 @@ static void vmi_nop(void) { } - +/* For NO_IDLE_HZ, we stop the clock when halting the kernel */ +#ifdef CONFIG_NO_IDLE_HZ +static...
2007 Apr 18
0
[PATCH 6/6] VMI timer patches
...h> #include <asm/timer.h> +#include <asm/vmi_time.h> /* Convenient for calling VMI functions indirectly in the ROM */ typedef u32 __attribute__((regparm(1))) (VROMFUNC)(void); @@ -67,6 +68,7 @@ struct { void (fastcall *set_linear_mapping)(int, u32, u32, u32); void (fastcall *flush_tlb)(int); void (fastcall *set_initial_ap_state)(int, int); + void (fastcall *halt)(void); } vmi_ops; /* XXX move this to alternative.h */ @@ -252,7 +254,20 @@ static void vmi_nop(void) { } - +/* For NO_IDLE_HZ, we stop the clock when halting the kernel */ +#ifdef CONFIG_NO_IDLE_HZ +static...
2007 Apr 18
0
[PATCH 5/5] Vmi timer.patch
...h> #include <asm/timer.h> +#include <asm/vmi_time.h> /* Convenient for calling VMI functions indirectly in the ROM */ typedef u32 __attribute__((regparm(1))) (VROMFUNC)(void); @@ -67,6 +68,7 @@ struct { void (fastcall *set_linear_mapping)(int, u32, u32, u32); void (fastcall *flush_tlb)(int); void (fastcall *set_initial_ap_state)(int, int); + void (fastcall *halt)(void); } vmi_ops; /* XXX move this to alternative.h */ @@ -252,7 +254,20 @@ static void vmi_nop(void) { } - +/* For NO_IDLE_HZ, we stop the clock when halting the kernel */ +#ifdef CONFIG_NO_IDLE_HZ +static...
2007 Apr 18
0
[PATCH 5/5] Vmi timer.patch
...h> #include <asm/timer.h> +#include <asm/vmi_time.h> /* Convenient for calling VMI functions indirectly in the ROM */ typedef u32 __attribute__((regparm(1))) (VROMFUNC)(void); @@ -67,6 +68,7 @@ struct { void (fastcall *set_linear_mapping)(int, u32, u32, u32); void (fastcall *flush_tlb)(int); void (fastcall *set_initial_ap_state)(int, int); + void (fastcall *halt)(void); } vmi_ops; /* XXX move this to alternative.h */ @@ -252,7 +254,20 @@ static void vmi_nop(void) { } - +/* For NO_IDLE_HZ, we stop the clock when halting the kernel */ +#ifdef CONFIG_NO_IDLE_HZ +static...
2007 Aug 10
9
[PATCH 0/25 -v2] paravirt_ops for x86_64, second round
Here is an slightly updated version of the paravirt_ops patch. If your comments and criticism were welcome before, now it's even more! There are some issues that are _not_ addressed in this revision, and here are the causes: * split debugreg into multiple functions, suggested by Andi: - Me and jsfg agree that introducing more pvops (specially 14!) is not worthwhile. So, although we do