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