Displaying 20 results from an estimated 47 matches for "paravirt_lazy_flush".
2007 May 31
1
[PATCH 1/3] lguest: speed up PARAVIRT_LAZY_FLUSH handling
When Zach Amsden added PARAVIRT_LAZY_FLUSH I didn't realize how often
it would get called. We only need to do something if we're actually
in lazy mode.
Before:
Time for one context switch via pipe: 10509 (9863 - 18761)
Time for one Copy-on-Write fault: 71796 (20625 - 207750)
Time to exec client once: 1076218 (1066203 - 1085937)
Ti...
2007 May 31
1
[PATCH 1/3] lguest: speed up PARAVIRT_LAZY_FLUSH handling
When Zach Amsden added PARAVIRT_LAZY_FLUSH I didn't realize how often
it would get called. We only need to do something if we're actually
in lazy mode.
Before:
Time for one context switch via pipe: 10509 (9863 - 18761)
Time for one Copy-on-Write fault: 71796 (20625 - 207750)
Time to exec client once: 1076218 (1066203 - 1085937)
Ti...
2007 Oct 09
0
[PATCH RFC REPOST 2/2] paravirt: clean up lazy mode handling
...oid vmi_set_lazy_mode(enum paravirt_lazy_mode mode)
-{
- static DEFINE_PER_CPU(enum paravirt_lazy_mode, lazy_mode);
-
- if (!vmi_ops.set_lazy_mode)
- return;
-
- /* Modes should never nest or overlap */
- BUG_ON(__get_cpu_var(lazy_mode) && !(mode == PARAVIRT_LAZY_NONE ||
- mode == PARAVIRT_LAZY_FLUSH));
-
- if (mode == PARAVIRT_LAZY_FLUSH) {
- vmi_ops.set_lazy_mode(0);
- vmi_ops.set_lazy_mode(__get_cpu_var(lazy_mode));
- } else {
- vmi_ops.set_lazy_mode(mode);
- __get_cpu_var(lazy_mode) = mode;
- }
+static void vmi_enter_lazy_cpu(void)
+{
+ paravirt_enter_lazy_cpu();
+ vmi_ops.set_lazy_mode...
2007 Oct 09
0
[PATCH RFC REPOST 2/2] paravirt: clean up lazy mode handling
...oid vmi_set_lazy_mode(enum paravirt_lazy_mode mode)
-{
- static DEFINE_PER_CPU(enum paravirt_lazy_mode, lazy_mode);
-
- if (!vmi_ops.set_lazy_mode)
- return;
-
- /* Modes should never nest or overlap */
- BUG_ON(__get_cpu_var(lazy_mode) && !(mode == PARAVIRT_LAZY_NONE ||
- mode == PARAVIRT_LAZY_FLUSH));
-
- if (mode == PARAVIRT_LAZY_FLUSH) {
- vmi_ops.set_lazy_mode(0);
- vmi_ops.set_lazy_mode(__get_cpu_var(lazy_mode));
- } else {
- vmi_ops.set_lazy_mode(mode);
- __get_cpu_var(lazy_mode) = mode;
- }
+static void vmi_enter_lazy_cpu(void)
+{
+ paravirt_enter_lazy_cpu();
+ vmi_ops.set_lazy_mode...
2007 Oct 01
2
[PATCH RFC] paravirt: cleanup lazy mode handling
...oid vmi_set_lazy_mode(enum paravirt_lazy_mode mode)
-{
- static DEFINE_PER_CPU(enum paravirt_lazy_mode, lazy_mode);
-
- if (!vmi_ops.set_lazy_mode)
- return;
-
- /* Modes should never nest or overlap */
- BUG_ON(__get_cpu_var(lazy_mode) && !(mode == PARAVIRT_LAZY_NONE ||
- mode == PARAVIRT_LAZY_FLUSH));
-
- if (mode == PARAVIRT_LAZY_FLUSH) {
- vmi_ops.set_lazy_mode(0);
- vmi_ops.set_lazy_mode(__get_cpu_var(lazy_mode));
- } else {
- vmi_ops.set_lazy_mode(mode);
- __get_cpu_var(lazy_mode) = mode;
- }
+static void vmi_enter_lazy_cpu(void)
+{
+ vmi_ops.set_lazy_mode(2);
+}
+
+static void vmi_en...
2007 Oct 01
2
[PATCH RFC] paravirt: cleanup lazy mode handling
...oid vmi_set_lazy_mode(enum paravirt_lazy_mode mode)
-{
- static DEFINE_PER_CPU(enum paravirt_lazy_mode, lazy_mode);
-
- if (!vmi_ops.set_lazy_mode)
- return;
-
- /* Modes should never nest or overlap */
- BUG_ON(__get_cpu_var(lazy_mode) && !(mode == PARAVIRT_LAZY_NONE ||
- mode == PARAVIRT_LAZY_FLUSH));
-
- if (mode == PARAVIRT_LAZY_FLUSH) {
- vmi_ops.set_lazy_mode(0);
- vmi_ops.set_lazy_mode(__get_cpu_var(lazy_mode));
- } else {
- vmi_ops.set_lazy_mode(mode);
- __get_cpu_var(lazy_mode) = mode;
- }
+static void vmi_enter_lazy_cpu(void)
+{
+ vmi_ops.set_lazy_mode(2);
+}
+
+static void vmi_en...
2007 Apr 18
0
[PATCH 7/10] Resurrect the VMI lazy mode fixes.
...#endif
+static void vmi_set_lazy_mode(enum paravirt_lazy_mode mode)
+{
+ static DEFINE_PER_CPU(int, lazy_mode);
+
+ if (!vmi_ops.set_lazy_mode)
+ return;
+
+ /* Modes should never nest or overlap */
+ BUG_ON(__get_cpu_var(lazy_mode) && !(mode == PARAVIRT_LAZY_NONE ||
+ mode == PARAVIRT_LAZY_FLUSH));
+
+ if (mode == PARAVIRT_LAZY_FLUSH) {
+ vmi_ops.set_lazy_mode(0);
+ vmi_ops.set_lazy_mode(__get_cpu_var(lazy_mode));
+ } else {
+ vmi_ops.set_lazy_mode(mode);
+ __get_cpu_var(lazy_mode) = mode;
+ }
+}
+
static inline int __init check_vmi_rom(struct vrom_header *rom)
{
struct pci_header...
2007 Apr 18
0
[PATCH 7/10] Resurrect the VMI lazy mode fixes.
...#endif
+static void vmi_set_lazy_mode(enum paravirt_lazy_mode mode)
+{
+ static DEFINE_PER_CPU(int, lazy_mode);
+
+ if (!vmi_ops.set_lazy_mode)
+ return;
+
+ /* Modes should never nest or overlap */
+ BUG_ON(__get_cpu_var(lazy_mode) && !(mode == PARAVIRT_LAZY_NONE ||
+ mode == PARAVIRT_LAZY_FLUSH));
+
+ if (mode == PARAVIRT_LAZY_FLUSH) {
+ vmi_ops.set_lazy_mode(0);
+ vmi_ops.set_lazy_mode(__get_cpu_var(lazy_mode));
+ } else {
+ vmi_ops.set_lazy_mode(mode);
+ __get_cpu_var(lazy_mode) = mode;
+ }
+}
+
static inline int __init check_vmi_rom(struct vrom_header *rom)
{
struct pci_header...
2007 Oct 15
13
[PATCH 00/12] xen/paravirt_ops patches for 2.6.24
Hi Linus,
Here's a set of patches to update paravirt_ops and Xen for 2.6.24
A quick overview of the patchset:
paravirt_ops:
Remove the monolithic paravirt_ops structure, and replace it with
smaller structures of related functions. Also, clean up the handling
of lazy mode to make it easier to implement.
x86/mm/init.c: remove a chunk of dead code
Xen:
- remove duplicate includes
-
2007 Oct 15
13
[PATCH 00/12] xen/paravirt_ops patches for 2.6.24
Hi Linus,
Here's a set of patches to update paravirt_ops and Xen for 2.6.24
A quick overview of the patchset:
paravirt_ops:
Remove the monolithic paravirt_ops structure, and replace it with
smaller structures of related functions. Also, clean up the handling
of lazy mode to make it easier to implement.
x86/mm/init.c: remove a chunk of dead code
Xen:
- remove duplicate includes
-
2007 Oct 15
13
[PATCH 00/12] xen/paravirt_ops patches for 2.6.24
Hi Linus,
Here's a set of patches to update paravirt_ops and Xen for 2.6.24
A quick overview of the patchset:
paravirt_ops:
Remove the monolithic paravirt_ops structure, and replace it with
smaller structures of related functions. Also, clean up the handling
of lazy mode to make it easier to implement.
x86/mm/init.c: remove a chunk of dead code
Xen:
- remove duplicate includes
-
2007 Apr 29
1
[PATCH 1/2] lguest: fix up after pda->percpu conversion
Andrew Morton commented out some stuff to make lguest compile. This
should actually make it work (in the latest -mm).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
---
drivers/lguest/lguest.c | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)
===================================================================
--- a/drivers/lguest/lguest.c
+++
2007 Apr 29
1
[PATCH 1/2] lguest: fix up after pda->percpu conversion
Andrew Morton commented out some stuff to make lguest compile. This
should actually make it work (in the latest -mm).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
---
drivers/lguest/lguest.c | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)
===================================================================
--- a/drivers/lguest/lguest.c
+++
2007 Oct 09
2
[PATCH RFC REPOST 1/2] paravirt: refactor struct paravirt_ops into smaller pv_*_ops
...pl = 0;
/* set the limit of our address space */
reserve_top_address(-HYPERVISOR_VIRT_START + 2 * PAGE_SIZE);
===================================================================
--- a/include/asm-i386/paravirt.h
+++ b/include/asm-i386/paravirt.h
@@ -33,19 +33,23 @@ enum paravirt_lazy_mode {
PARAVIRT_LAZY_FLUSH = 3,
};
-struct paravirt_ops
-{
+
+/* general info */
+struct pv_info {
unsigned int kernel_rpl;
int shared_kernel_pmd;
- int paravirt_enabled;
+ int paravirt_enabled;
const char *name;
-
+};
+
+struct pv_init_ops {
/*
- * Patch may replace one of the defined code sequences with arbitr...
2007 Oct 09
2
[PATCH RFC REPOST 1/2] paravirt: refactor struct paravirt_ops into smaller pv_*_ops
...pl = 0;
/* set the limit of our address space */
reserve_top_address(-HYPERVISOR_VIRT_START + 2 * PAGE_SIZE);
===================================================================
--- a/include/asm-i386/paravirt.h
+++ b/include/asm-i386/paravirt.h
@@ -33,19 +33,23 @@ enum paravirt_lazy_mode {
PARAVIRT_LAZY_FLUSH = 3,
};
-struct paravirt_ops
-{
+
+/* general info */
+struct pv_info {
unsigned int kernel_rpl;
int shared_kernel_pmd;
- int paravirt_enabled;
+ int paravirt_enabled;
const char *name;
-
+};
+
+struct pv_init_ops {
/*
- * Patch may replace one of the defined code sequences with arbitr...
2007 Sep 28
2
[PATCH RFC] paravirt_ops: refactor struct paravirt_ops into smaller pv_*_ops
...space */
reserve_top_address(-HYPERVISOR_VIRT_START + 2 * PAGE_SIZE);
diff -r f1e210bdae95 include/asm-i386/paravirt.h
--- a/include/asm-i386/paravirt.h Thu Sep 27 12:51:01 2007 -0700
+++ b/include/asm-i386/paravirt.h Fri Sep 28 11:05:49 2007 -0700
@@ -33,19 +33,24 @@ enum paravirt_lazy_mode {
PARAVIRT_LAZY_FLUSH = 3,
};
-struct paravirt_ops
-{
+
+/* general info */
+struct pv_info {
unsigned int kernel_rpl;
int shared_kernel_pmd;
- int paravirt_enabled;
+ int paravirt_enabled;
const char *name;
-
+} pv_info;
+
+struct pv_init_ops {
/*
- * Patch may replace one of the defined code sequences wit...
2007 Sep 28
2
[PATCH RFC] paravirt_ops: refactor struct paravirt_ops into smaller pv_*_ops
...space */
reserve_top_address(-HYPERVISOR_VIRT_START + 2 * PAGE_SIZE);
diff -r f1e210bdae95 include/asm-i386/paravirt.h
--- a/include/asm-i386/paravirt.h Thu Sep 27 12:51:01 2007 -0700
+++ b/include/asm-i386/paravirt.h Fri Sep 28 11:05:49 2007 -0700
@@ -33,19 +33,24 @@ enum paravirt_lazy_mode {
PARAVIRT_LAZY_FLUSH = 3,
};
-struct paravirt_ops
-{
+
+/* general info */
+struct pv_info {
unsigned int kernel_rpl;
int shared_kernel_pmd;
- int paravirt_enabled;
+ int paravirt_enabled;
const char *name;
-
+} pv_info;
+
+struct pv_init_ops {
/*
- * Patch may replace one of the defined code sequences wit...
2007 Aug 23
5
[PATCH] Fix preemptible lazy mode bug
I recently sent off a fix for lazy vmalloc faults which can happen under =
paravirt when lazy mode is enabled. Unfortunately, I jumped the gun a =
bit on fixing this. I neglected to notice that since the new call to =
flush the MMU update queue is called from the page fault handler, it can =
be pre-empted. Both VMI and Xen use per-cpu variables to track lazy =
mode state, as all previous
2007 Aug 23
5
[PATCH] Fix preemptible lazy mode bug
I recently sent off a fix for lazy vmalloc faults which can happen under =
paravirt when lazy mode is enabled. Unfortunately, I jumped the gun a =
bit on fixing this. I neglected to notice that since the new call to =
flush the MMU update queue is called from the page fault handler, it can =
be pre-empted. Both VMI and Xen use per-cpu variables to track lazy =
mode state, as all previous
2007 Jul 09
1
[PATCH RFC] first cut at splitting up paravirt_ops
...c_ops.set_lazy_mode, PARAVIRT_LAZY_CPU);
}
static inline void arch_leave_lazy_cpu_mode(void)
{
- PVOP_VCALL1(set_lazy_mode, PARAVIRT_LAZY_NONE);
+ PVOP_VCALL1(pv_misc_ops.set_lazy_mode, PARAVIRT_LAZY_NONE);
}
static inline void arch_flush_lazy_cpu_mode(void)
{
- PVOP_VCALL1(set_lazy_mode, PARAVIRT_LAZY_FLUSH);
+ PVOP_VCALL1(pv_misc_ops.set_lazy_mode, PARAVIRT_LAZY_FLUSH);
}
#define __HAVE_ARCH_ENTER_LAZY_MMU_MODE
static inline void arch_enter_lazy_mmu_mode(void)
{
- PVOP_VCALL1(set_lazy_mode, PARAVIRT_LAZY_MMU);
+ PVOP_VCALL1(pv_misc_ops.set_lazy_mode, PARAVIRT_LAZY_MMU);
}
static inline v...