From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Andi Kleen <ak@muc.de>
Cc: Zachary Amsden <zach@vmware.com>,
xen-devel@lists.xensource.com,
Rusty Russell <rusty@rustcorp.com.au>,
linux-kernel@vger.kernel.org, Chris Wright <chrisw@sous-sol.org>,
virtualization@lists.osdl.org,
Andrew Morton <akpm@linux-foundation.org>
Subject: [patch 11/26] Xen-paravirt_ops: Use patch site IDs computed from offset in paravirt_ops structure
Date: Thu, 01 Mar 2007 15:24:54 -0800 [thread overview]
Message-ID: <20070301232527.638508535@goop.org> (raw)
In-Reply-To: 20070301232443.195603797@goop.org
[-- Attachment #1: paravirt-use-offset-site-ids.patch --]
[-- Type: text/plain, Size: 10745 bytes --]
Use patch type identifiers derived from the offset of the operation in
the paravirt_ops structure. This avoids having to maintain a separate
enum for patch site types.
This patch also drops the fused save_fl+cli operation, which doesn't
really add much and makes things more complex.
Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Zachary Amsden <zach@vmware.com>
---
arch/i386/kernel/asm-offsets.c | 5 +
arch/i386/kernel/paravirt.c | 14 ++---
arch/i386/kernel/vmi.c | 38 ++------------
include/asm-i386/paravirt.h | 107 +++++++++++++++++++---------------------
4 files changed, 70 insertions(+), 94 deletions(-)
===================================================================
--- a/arch/i386/kernel/asm-offsets.c
+++ b/arch/i386/kernel/asm-offsets.c
@@ -110,5 +110,10 @@ void foo(void)
OFFSET(PARAVIRT_irq_enable_sysexit, paravirt_ops, irq_enable_sysexit);
OFFSET(PARAVIRT_iret, paravirt_ops, iret);
OFFSET(PARAVIRT_read_cr0, paravirt_ops, read_cr0);
+
+ DEFINE(PARAVIRT_IRQ_DISABLE, PARAVIRT_PATCH(irq_disable));
+ DEFINE(PARAVIRT_IRQ_ENABLE, PARAVIRT_PATCH(irq_enable));
+ DEFINE(PARAVIRT_STI_SYSEXIT, PARAVIRT_PATCH(irq_enable_sysexit));
+ DEFINE(PARAVIRT_INTERRUPT_RETURN, PARAVIRT_PATCH(iret));
#endif
}
===================================================================
--- a/arch/i386/kernel/paravirt.c
+++ b/arch/i386/kernel/paravirt.c
@@ -57,7 +57,6 @@ DEF_NATIVE(sti, "sti");
DEF_NATIVE(sti, "sti");
DEF_NATIVE(popf, "push %eax; popf");
DEF_NATIVE(pushf, "pushf; pop %eax");
-DEF_NATIVE(pushf_cli, "pushf; pop %eax; cli");
DEF_NATIVE(iret, "iret");
DEF_NATIVE(sti_sysexit, "sti; sysexit");
@@ -65,13 +64,12 @@ static const struct native_insns
{
const char *start, *end;
} native_insns[] = {
- [PARAVIRT_IRQ_DISABLE] = { start_cli, end_cli },
- [PARAVIRT_IRQ_ENABLE] = { start_sti, end_sti },
- [PARAVIRT_RESTORE_FLAGS] = { start_popf, end_popf },
- [PARAVIRT_SAVE_FLAGS] = { start_pushf, end_pushf },
- [PARAVIRT_SAVE_FLAGS_IRQ_DISABLE] = { start_pushf_cli, end_pushf_cli },
- [PARAVIRT_INTERRUPT_RETURN] = { start_iret, end_iret },
- [PARAVIRT_STI_SYSEXIT] = { start_sti_sysexit, end_sti_sysexit },
+ [PARAVIRT_PATCH(irq_disable)] = { start_cli, end_cli },
+ [PARAVIRT_PATCH(irq_enable)] = { start_sti, end_sti },
+ [PARAVIRT_PATCH(restore_fl)] = { start_popf, end_popf },
+ [PARAVIRT_PATCH(save_fl)] = { start_pushf, end_pushf },
+ [PARAVIRT_PATCH(iret)] = { start_iret, end_iret },
+ [PARAVIRT_PATCH(irq_enable_sysexit)] = { start_sti_sysexit, end_sti_sysexit },
};
static unsigned native_patch(u8 type, u16 clobbers, void *insns, unsigned len)
===================================================================
--- a/arch/i386/kernel/vmi.c
+++ b/arch/i386/kernel/vmi.c
@@ -78,11 +78,6 @@ struct {
#define MNEM_JMP 0xe9
#define MNEM_RET 0xc3
-static char irq_save_disable_callout[] = {
- MNEM_CALL, 0, 0, 0, 0,
- MNEM_CALL, 0, 0, 0, 0,
- MNEM_RET
-};
#define IRQ_PATCH_INT_MASK 0
#define IRQ_PATCH_DISABLE 5
@@ -130,33 +125,17 @@ static unsigned vmi_patch(u8 type, u16 c
static unsigned vmi_patch(u8 type, u16 clobbers, void *insns, unsigned len)
{
switch (type) {
- case PARAVIRT_IRQ_DISABLE:
+ case PARAVIRT_PATCH(irq_disable):
return patch_internal(VMI_CALL_DisableInterrupts, len, insns);
- case PARAVIRT_IRQ_ENABLE:
+ case PARAVIRT_PATCH(irq_enable):
return patch_internal(VMI_CALL_EnableInterrupts, len, insns);
- case PARAVIRT_RESTORE_FLAGS:
+ case PARAVIRT_PATCH(restore_fl):
return patch_internal(VMI_CALL_SetInterruptMask, len, insns);
- case PARAVIRT_SAVE_FLAGS:
+ case PARAVIRT_PATCH(save_fl):
return patch_internal(VMI_CALL_GetInterruptMask, len, insns);
- case PARAVIRT_SAVE_FLAGS_IRQ_DISABLE:
- if (len >= 10) {
- patch_internal(VMI_CALL_GetInterruptMask, len, insns);
- patch_internal(VMI_CALL_DisableInterrupts, len-5, insns+5);
- return 10;
- } else {
- /*
- * You bastards didn't leave enough room to
- * patch save_flags_irq_disable inline. Patch
- * to a helper
- */
- BUG_ON(len < 5);
- *(char *)insns = MNEM_CALL;
- patch_offset(insns, irq_save_disable_callout);
- return 5;
- }
- case PARAVIRT_INTERRUPT_RETURN:
+ case PARAVIRT_PATCH(iret):
return patch_internal(VMI_CALL_IRET, len, insns);
- case PARAVIRT_STI_SYSEXIT:
+ case PARAVIRT_PATCH(irq_enable_sysexit):
return patch_internal(VMI_CALL_SYSEXIT, len, insns);
default:
break;
@@ -733,11 +712,6 @@ static inline int __init activate_vmi(vo
para_fill(restore_fl, SetInterruptMask);
para_fill(irq_disable, DisableInterrupts);
para_fill(irq_enable, EnableInterrupts);
- /* irq_save_disable !!! sheer pain */
- patch_offset(&irq_save_disable_callout[IRQ_PATCH_INT_MASK],
- (char *)paravirt_ops.save_fl);
- patch_offset(&irq_save_disable_callout[IRQ_PATCH_DISABLE],
- (char *)paravirt_ops.irq_disable);
#ifndef CONFIG_NO_IDLE_HZ
para_fill(safe_halt, Halt);
#else
===================================================================
--- a/include/asm-i386/paravirt.h
+++ b/include/asm-i386/paravirt.h
@@ -4,18 +4,7 @@
* para-virtualization: those hooks are defined here. */
#ifdef CONFIG_PARAVIRT
-#include <linux/stringify.h>
#include <asm/page.h>
-
-/* These are the most performance critical ops, so we want to be able to patch
- * callers */
-#define PARAVIRT_IRQ_DISABLE 0
-#define PARAVIRT_IRQ_ENABLE 1
-#define PARAVIRT_RESTORE_FLAGS 2
-#define PARAVIRT_SAVE_FLAGS 3
-#define PARAVIRT_SAVE_FLAGS_IRQ_DISABLE 4
-#define PARAVIRT_INTERRUPT_RETURN 5
-#define PARAVIRT_STI_SYSEXIT 6
/* Bitmask of what can be clobbered: usually at least eax. */
#define CLBR_NONE 0x0
@@ -26,6 +15,23 @@
#ifndef __ASSEMBLY__
#include <linux/types.h>
+
+#define paravirt_type(type) [paravirt_typenum] "i" (type)
+#define paravirt_clobber(clobber) [paravirt_clobber] "i" (clobber)
+
+#define PARAVIRT_PATCH(x) (offsetof(struct paravirt_ops, x) / sizeof(void *))
+
+#define _paravirt_alt(insn_string, type, clobber) \
+ "771:\n\t" insn_string "\n" "772:\n" \
+ ".pushsection .parainstructions,\"a\"\n" \
+ " .long 771b\n" \
+ " .byte " type "\n" \
+ " .byte 772b-771b\n" \
+ " .short " clobber "\n" \
+ ".popsection\n"
+
+#define paravirt_alt(insn_string) \
+ _paravirt_alt(insn_string, "%c[paravirt_typenum]", "%c[paravirt_clobber]")
struct thread_struct;
struct Xgt_desc_struct;
@@ -512,24 +518,16 @@ extern struct paravirt_patch_site __star
extern struct paravirt_patch_site __start_parainstructions[],
__stop_parainstructions[];
-#define paravirt_alt(insn_string, typenum, clobber) \
- "771:\n\t" insn_string "\n" "772:\n" \
- ".pushsection .parainstructions,\"a\"\n" \
- " .long 771b\n" \
- " .byte " __stringify(typenum) "\n" \
- " .byte 772b-771b\n" \
- " .short " __stringify(clobber) "\n" \
- ".popsection"
-
static inline unsigned long __raw_local_save_flags(void)
{
unsigned long f;
__asm__ __volatile__(paravirt_alt( "pushl %%ecx; pushl %%edx;"
"call *%1;"
- "popl %%edx; popl %%ecx",
- PARAVIRT_SAVE_FLAGS, CLBR_NONE)
- : "=a"(f): "m"(paravirt_ops.save_fl)
+ "popl %%edx; popl %%ecx")
+ : "=a"(f): "m"(paravirt_ops.save_fl),
+ paravirt_type(PARAVIRT_PATCH(save_fl)),
+ paravirt_clobber(CLBR_NONE)
: "memory", "cc");
return f;
}
@@ -538,9 +536,10 @@ static inline void raw_local_irq_restore
{
__asm__ __volatile__(paravirt_alt( "pushl %%ecx; pushl %%edx;"
"call *%1;"
- "popl %%edx; popl %%ecx",
- PARAVIRT_RESTORE_FLAGS, CLBR_EAX)
- : "=a"(f) : "m" (paravirt_ops.restore_fl), "0"(f)
+ "popl %%edx; popl %%ecx")
+ : "=a"(f) : "m" (paravirt_ops.restore_fl), "0"(f),
+ paravirt_type(PARAVIRT_PATCH(restore_fl)),
+ paravirt_clobber(CLBR_EAX)
: "memory", "cc");
}
@@ -548,9 +547,10 @@ static inline void raw_local_irq_disable
{
__asm__ __volatile__(paravirt_alt( "pushl %%ecx; pushl %%edx;"
"call *%0;"
- "popl %%edx; popl %%ecx",
- PARAVIRT_IRQ_DISABLE, CLBR_EAX)
- : : "m" (paravirt_ops.irq_disable)
+ "popl %%edx; popl %%ecx")
+ : : "m" (paravirt_ops.irq_disable),
+ paravirt_type(PARAVIRT_PATCH(irq_disable)),
+ paravirt_clobber(CLBR_EAX)
: "memory", "eax", "cc");
}
@@ -558,9 +558,10 @@ static inline void raw_local_irq_enable(
{
__asm__ __volatile__(paravirt_alt( "pushl %%ecx; pushl %%edx;"
"call *%0;"
- "popl %%edx; popl %%ecx",
- PARAVIRT_IRQ_ENABLE, CLBR_EAX)
- : : "m" (paravirt_ops.irq_enable)
+ "popl %%edx; popl %%ecx")
+ : : "m" (paravirt_ops.irq_enable),
+ paravirt_type(PARAVIRT_PATCH(irq_enable)),
+ paravirt_clobber(CLBR_EAX)
: "memory", "eax", "cc");
}
@@ -568,33 +569,31 @@ static inline unsigned long __raw_local_
{
unsigned long f;
- __asm__ __volatile__(paravirt_alt( "pushl %%ecx; pushl %%edx;"
- "call *%1; pushl %%eax;"
- "call *%2; popl %%eax;"
- "popl %%edx; popl %%ecx",
- PARAVIRT_SAVE_FLAGS_IRQ_DISABLE,
- CLBR_NONE)
- : "=a"(f)
- : "m" (paravirt_ops.save_fl),
- "m" (paravirt_ops.irq_disable)
- : "memory", "cc");
+ f = __raw_local_save_flags();
+ raw_local_irq_disable();
+
return f;
}
-#define CLI_STRING paravirt_alt("pushl %%ecx; pushl %%edx;" \
- "call *paravirt_ops+%c[irq_disable];" \
- "popl %%edx; popl %%ecx", \
- PARAVIRT_IRQ_DISABLE, CLBR_EAX)
-
-#define STI_STRING paravirt_alt("pushl %%ecx; pushl %%edx;" \
- "call *paravirt_ops+%c[irq_enable];" \
- "popl %%edx; popl %%ecx", \
- PARAVIRT_IRQ_ENABLE, CLBR_EAX)
+#define CLI_STRING _paravirt_alt("pushl %%ecx; pushl %%edx;" \
+ "call *paravirt_ops+%c[irq_disable];" \
+ "popl %%edx; popl %%ecx", \
+ "%c[paravirt_cli_type]", "%c[paravirt_clobber]")
+
+#define STI_STRING _paravirt_alt("pushl %%ecx; pushl %%edx;" \
+ "call *paravirt_ops+%c[irq_enable];" \
+ "popl %%edx; popl %%ecx", \
+ "%c[paravirt_cli_type]", "%c[paravirt_clobber]")
+
+
#define CLI_STI_CLOBBERS , "%eax"
-#define CLI_STI_INPUT_ARGS \
+#define CLI_STI_INPUT_ARGS \
, \
- [irq_disable] "i" (offsetof(struct paravirt_ops, irq_disable)), \
- [irq_enable] "i" (offsetof(struct paravirt_ops, irq_enable))
+ [irq_disable] "i" (offsetof(struct paravirt_ops, irq_disable)), \
+ [irq_enable] "i" (offsetof(struct paravirt_ops, irq_enable)), \
+ [paravirt_cli_type] "i" (PARAVIRT_PATCH(irq_disable)), \
+ [paravirt_sti_type] "i" (PARAVIRT_PATCH(irq_disable)), \
+ paravirt_clobber(CLBR_NONE)
#else /* __ASSEMBLY__ */
--
next prev parent reply other threads:[~2007-03-01 23:24 UTC|newest]
Thread overview: 201+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-01 23:24 [patch 00/26] Xen-paravirt_ops: Xen guest implementation for paravirt_ops interface Jeremy Fitzhardinge
2007-03-01 23:24 ` [patch 01/26] Xen-paravirt_ops: Fix typo in sync_constant_test_bit()s name Jeremy Fitzhardinge
2007-03-16 9:45 ` Ingo Molnar
2007-03-01 23:24 ` [patch 02/26] Xen-paravirt_ops: ignore vgacon if hardware not present Jeremy Fitzhardinge
2007-03-16 9:45 ` Ingo Molnar
2007-03-01 23:24 ` [patch 03/26] Xen-paravirt_ops: use paravirt_nop to consistently mark no-op operations Jeremy Fitzhardinge
2007-03-16 9:44 ` Ingo Molnar
2007-03-16 18:43 ` Jeremy Fitzhardinge
2007-03-16 19:49 ` Chris Wright
2007-03-16 20:00 ` Jeremy Fitzhardinge
2007-03-16 21:59 ` Chris Wright
2007-03-16 22:10 ` Jeremy Fitzhardinge
2007-03-16 22:18 ` Chris Wright
2007-03-01 23:24 ` [patch 04/26] Xen-paravirt_ops: Add pagetable accessors to pack and unpack pagetable entries Jeremy Fitzhardinge
2007-03-16 9:38 ` Ingo Molnar
2007-03-16 18:42 ` Jeremy Fitzhardinge
2007-03-01 23:24 ` [patch 05/26] Xen-paravirt_ops: paravirt_ops: hooks to set up initial pagetable Jeremy Fitzhardinge
2007-03-16 9:33 ` Ingo Molnar
2007-03-16 18:39 ` Jeremy Fitzhardinge
2007-03-16 19:35 ` Steven Rostedt
2007-03-17 9:47 ` Rusty Russell
2007-03-01 23:24 ` [patch 06/26] Xen-paravirt_ops: paravirt_ops: allocate a fixmap slot Jeremy Fitzhardinge
2007-03-16 9:31 ` Ingo Molnar
2007-03-01 23:24 ` [patch 07/26] Xen-paravirt_ops: Allow paravirt backend to choose kernel PMD sharing Jeremy Fitzhardinge
2007-03-16 9:31 ` Ingo Molnar
2007-03-01 23:24 ` [patch 08/26] Xen-paravirt_ops: add hooks to intercept mm creation and destruction Jeremy Fitzhardinge
2007-03-16 9:30 ` Ingo Molnar
2007-03-16 17:38 ` Jeremy Fitzhardinge
2007-03-01 23:24 ` [patch 09/26] Xen-paravirt_ops: remove HAVE_ARCH_MM_LIFETIME, define no-op architecture implementations Jeremy Fitzhardinge
2007-03-16 9:27 ` Ingo Molnar
2007-03-01 23:24 ` [patch 10/26] Xen-paravirt_ops: rename struct paravirt_patch to paravirt_patch_site for clarity Jeremy Fitzhardinge
2007-03-01 23:24 ` Jeremy Fitzhardinge [this message]
2007-03-01 23:24 ` [patch 12/26] Xen-paravirt_ops: Fix patch site clobbers to include return register Jeremy Fitzhardinge
2007-03-02 0:45 ` Zachary Amsden
2007-03-02 0:49 ` Jeremy Fitzhardinge
2007-03-02 0:52 ` Zachary Amsden
2007-03-02 0:58 ` Jeremy Fitzhardinge
2007-03-02 1:18 ` Zachary Amsden
2007-03-16 9:26 ` Ingo Molnar
2007-03-16 17:37 ` Jeremy Fitzhardinge
2007-03-01 23:24 ` [patch 13/26] Xen-paravirt_ops: Consistently wrap paravirt ops callsites to make them patchable Jeremy Fitzhardinge
2007-03-16 9:24 ` Ingo Molnar
2007-03-16 9:33 ` David Miller
2007-03-16 9:57 ` Ingo Molnar
2007-03-16 19:16 ` Jeremy Fitzhardinge
2007-03-16 20:38 ` Jeremy Fitzhardinge
2007-03-17 10:33 ` Rusty Russell
2007-03-18 7:33 ` David Miller
2007-03-18 7:59 ` Jeremy Fitzhardinge
2007-03-18 12:08 ` Andi Kleen
2007-03-18 15:58 ` Jeremy Fitzhardinge
2007-03-18 17:04 ` Andi Kleen
2007-03-18 17:29 ` Jeremy Fitzhardinge
2007-03-18 19:30 ` Andi Kleen
2007-03-18 23:46 ` Jeremy Fitzhardinge
2007-03-19 10:57 ` Andi Kleen
2007-03-19 17:58 ` Jeremy Fitzhardinge
2007-03-19 19:08 ` David Miller
2007-03-19 20:59 ` Andi Kleen
2007-03-20 3:18 ` Linus Torvalds
2007-03-20 3:47 ` David Miller
2007-03-20 4:19 ` Eric W. Biederman
2007-03-20 13:28 ` Andi Kleen
2007-03-20 16:25 ` Eric W. Biederman
2007-03-20 17:42 ` Andi Kleen
2007-03-20 16:52 ` Linus Torvalds
2007-03-20 18:03 ` Andi Kleen
2007-03-20 17:27 ` Linus Torvalds
2007-03-20 19:21 ` Andi Kleen
2007-03-20 18:49 ` Linus Torvalds
2007-03-20 20:23 ` Andi Kleen
2007-03-20 21:39 ` Alan Cox
2007-03-20 21:49 ` [Xen-devel] " Andi Kleen
2007-03-20 23:51 ` Linus Torvalds
2007-03-20 23:43 ` Linus Torvalds
2007-03-21 6:08 ` Andrew Morton
2007-03-20 16:12 ` Chuck Ebbert
2007-03-20 1:23 ` Zachary Amsden
2007-03-20 1:45 ` Jeremy Fitzhardinge
2007-03-19 2:47 ` Rusty Russell
2007-03-19 18:25 ` Eric W. Biederman
2007-03-19 18:38 ` Linus Torvalds
2007-03-19 18:44 ` Linus Torvalds
2007-03-19 19:33 ` Jeremy Fitzhardinge
2007-03-20 0:01 ` Rusty Russell
2007-03-20 2:00 ` Zachary Amsden
2007-03-20 4:20 ` Rusty Russell
2007-03-20 5:54 ` Jeremy Fitzhardinge
2007-03-20 11:33 ` Andreas Kleen
2007-03-20 15:09 ` Linus Torvalds
2007-03-20 15:58 ` Eric W. Biederman
2007-03-20 16:06 ` Linus Torvalds
2007-03-20 16:31 ` Jeremy Fitzhardinge
2007-03-20 22:09 ` Zachary Amsden
2007-03-21 0:24 ` Linus Torvalds
2007-03-21 2:53 ` Zachary Amsden
2007-03-21 2:15 ` Linus Torvalds
2007-03-21 3:43 ` Zachary Amsden
2007-03-20 22:43 ` Matt Mackall
2007-03-20 23:08 ` Zachary Amsden
2007-03-20 23:33 ` Jeremy Fitzhardinge
2007-03-21 1:14 ` Zachary Amsden
2007-03-20 23:41 ` Matt Mackall
2007-03-21 0:20 ` Jeremy Fitzhardinge
2007-03-20 19:28 ` Andi Kleen
2007-03-20 19:54 ` Zachary Amsden
2007-03-20 20:02 ` Andi Kleen
2007-03-20 16:26 ` Jeremy Fitzhardinge
2007-03-20 22:41 ` Rusty Russell
2007-03-20 17:00 ` Ingo Molnar
2007-03-21 0:03 ` Paul Mackerras
2007-04-12 23:16 ` David Miller
2007-03-19 18:41 ` Chris Wright
2007-03-19 19:10 ` Jeremy Fitzhardinge
2007-03-19 19:46 ` David Miller
2007-03-19 20:06 ` Jeremy Fitzhardinge
2007-03-19 23:42 ` Andi Kleen
2007-03-16 17:36 ` Jeremy Fitzhardinge
2007-03-16 23:29 ` Zachary Amsden
2007-03-17 0:40 ` Jeremy Fitzhardinge
2007-03-17 9:10 ` Zachary Amsden
2007-03-17 9:26 ` Rusty Russell
2007-03-01 23:24 ` [patch 14/26] Xen-paravirt_ops: add common patching machinery Jeremy Fitzhardinge
2007-03-16 9:20 ` Ingo Molnar
2007-03-17 9:15 ` Rusty Russell
2007-03-01 23:24 ` [patch 15/26] Xen-paravirt_ops: Add apply_to_page_range() which applies a function to a pte range Jeremy Fitzhardinge
2007-03-16 9:19 ` Ingo Molnar
2007-03-16 16:47 ` Chris Wright
2007-03-16 17:08 ` Jeremy Fitzhardinge
2007-03-01 23:24 ` [patch 16/26] Xen-paravirt_ops: Allocate and free vmalloc areas Jeremy Fitzhardinge
2007-03-16 9:16 ` Ingo Molnar
2007-03-16 17:05 ` Jeremy Fitzhardinge
2007-03-01 23:25 ` [patch 17/26] Xen-paravirt_ops: Add nosegneg capability to the vsyscall page notes Jeremy Fitzhardinge
2007-03-16 9:15 ` Ingo Molnar
2007-03-16 21:26 ` Roland McGrath
2007-03-16 21:56 ` Jeremy Fitzhardinge
2007-03-16 22:20 ` Roland McGrath
2007-03-01 23:25 ` [patch 18/26] Xen-paravirt_ops: Add XEN config options Jeremy Fitzhardinge
2007-03-16 9:14 ` Ingo Molnar
2007-03-16 17:04 ` Jeremy Fitzhardinge
2007-03-01 23:25 ` [patch 19/26] Xen-paravirt_ops: Add Xen interface header files Jeremy Fitzhardinge
2007-03-01 23:25 ` [patch 20/26] Xen-paravirt_ops: Core Xen implementation Jeremy Fitzhardinge
2007-03-16 9:14 ` Ingo Molnar
2007-03-16 12:00 ` Christoph Hellwig
2007-03-16 16:33 ` Chris Wright
2007-03-16 16:44 ` Jeremy Fitzhardinge
2007-03-16 16:57 ` Chris Wright
2007-03-16 17:12 ` Chris Wright
2007-03-19 18:05 ` Eric W. Biederman
2007-03-19 18:13 ` Jeremy Fitzhardinge
2007-03-19 18:15 ` Chris Wright
2007-03-17 9:13 ` Rusty Russell
2007-03-18 7:03 ` [Xen-devel] " Jeremy Fitzhardinge
2007-03-01 23:25 ` [patch 21/26] Xen-paravirt_ops: Use the hvc console infrastructure for Xen console Jeremy Fitzhardinge
2007-03-16 8:54 ` Ingo Molnar
2007-03-16 9:28 ` [Xen-devel] " Keir Fraser
[not found] ` <C22013C9.B9E6%keir@xensource.com>
2007-03-16 9:58 ` Ingo Molnar
2007-03-16 10:31 ` [Xen-devel] " Keir Fraser
2007-03-16 10:31 ` Keir Fraser
[not found] ` <C2202295.BA49%keir@xensource.com>
2007-03-16 11:41 ` Andrew Morton
2007-03-16 11:58 ` Keir Fraser
2007-03-16 11:58 ` Keir Fraser
2007-03-16 17:02 ` Jeremy Fitzhardinge
2007-03-01 23:25 ` [patch 22/26] Xen-paravirt_ops: Add early printk support via hvc console Jeremy Fitzhardinge
2007-03-16 8:52 ` Ingo Molnar
2007-03-01 23:25 ` [patch 23/26] Xen-paravirt_ops: Add Xen grant table support Jeremy Fitzhardinge
2007-03-16 8:51 ` Ingo Molnar
2007-03-16 17:00 ` Jeremy Fitzhardinge
2007-03-01 23:25 ` [patch 24/26] Xen-paravirt_ops: Add the Xenbus sysfs and virtual device hotplug driver Jeremy Fitzhardinge
2007-03-16 8:47 ` Ingo Molnar
2007-03-16 16:18 ` Chris Wright
2007-03-16 16:19 ` Ingo Molnar
2007-03-16 16:40 ` Chris Wright
2007-03-16 17:53 ` Greg KH
2007-03-16 16:57 ` Jeremy Fitzhardinge
2007-03-01 23:25 ` [patch 25/26] Xen-paravirt_ops: Add Xen virtual block device driver Jeremy Fitzhardinge
2007-03-01 23:25 ` [patch 26/26] Xen-paravirt_ops: Add the Xen virtual network " Jeremy Fitzhardinge
2007-03-02 0:42 ` Stephen Hemminger
2007-03-02 0:56 ` Jeremy Fitzhardinge
2007-03-02 1:30 ` [RFC] Arp announce (for Xen) Stephen Hemminger
2007-03-02 8:46 ` Keir Fraser
2007-03-02 12:54 ` Andi Kleen
2007-03-02 14:08 ` jamal
2007-03-02 18:08 ` Chris Wright
2007-03-06 4:35 ` David Miller
2007-03-06 18:51 ` [RFC] ARP notify option Stephen Hemminger
2007-03-06 19:04 ` Jeremy Fitzhardinge
2007-03-06 19:07 ` Chris Wright
2007-03-06 21:18 ` Chris Friesen
2007-03-06 22:52 ` Stephen Hemminger
2007-03-07 6:42 ` Pekka Savola
2007-03-07 17:00 ` Stephen Hemminger
2007-03-02 1:21 ` [patch 26/26] Xen-paravirt_ops: Add the Xen virtual network device driver Christoph Hellwig
2007-03-02 1:26 ` Chris Wright
2007-03-16 8:42 ` [patch 00/26] Xen-paravirt_ops: Xen guest implementation for paravirt_ops interface Ingo Molnar
2007-03-16 16:55 ` Jeremy Fitzhardinge
2007-03-16 9:21 ` Ingo Molnar
2007-03-16 17:26 ` Jeremy Fitzhardinge
2007-03-16 18:59 ` Christoph Hellwig
2007-03-16 19:26 ` Jeremy Fitzhardinge
-- strict thread matches above, loose matches on Subject: below --
2007-02-27 8:13 Jeremy Fitzhardinge
2007-02-27 8:13 ` [patch 11/26] Xen-paravirt_ops: Use patch site IDs computed from offset in paravirt_ops structure Jeremy Fitzhardinge
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070301232527.638508535@goop.org \
--to=jeremy@goop.org \
--cc=ak@muc.de \
--cc=akpm@linux-foundation.org \
--cc=chrisw@sous-sol.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rusty@rustcorp.com.au \
--cc=virtualization@lists.osdl.org \
--cc=xen-devel@lists.xensource.com \
--cc=zach@vmware.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).