From: Chris Wright <chrisw@sous-sol.org>
To: linux-kernel@vger.kernel.org
Cc: virtualization@lists.osdl.org, xen-devel@lists.xensource.com,
Ian Pratt <ian.pratt@xensource.com>,
Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
Subject: [RFC PATCH 10/35] Add a new head.S start-of-day file for booting on Xen.
Date: Tue, 09 May 2006 00:00:10 -0700 [thread overview]
Message-ID: <20060509085152.059741000@sous-sol.org> (raw)
In-Reply-To: 20060509084945.373541000@sous-sol.org
[-- Attachment #1: i386-head.S --]
[-- Type: text/plain, Size: 11471 bytes --]
When running on Xen, the kernel is started with paging enabled. Also
don't check for cpu features which are present on all cpus supported
by Xen.
Don't define segments which are not supported when running on Xen.
Define the __xen_guest section which exports information about the
kernel to the domain builder.
Signed-off-by: Ian Pratt <ian.pratt@xensource.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
---
arch/i386/Makefile | 7 +-
arch/i386/kernel/head-cpu.S | 88 +++++++++++++++++++++++++++++++
arch/i386/kernel/head.S | 69 +-----------------------
arch/i386/mach-xen/Makefile | 2
arch/i386/mach-xen/head.S | 122 ++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 222 insertions(+), 66 deletions(-)
--- linus-2.6.orig/arch/i386/Makefile
+++ linus-2.6/arch/i386/Makefile
@@ -48,6 +48,9 @@ CFLAGS += $(shell if [ $(call cc-vers
CFLAGS += $(cflags-y)
+# Default subarch head files
+head-y := arch/i386/kernel/head.o arch/i386/kernel/init_task.o
+
# Default subarch .c files
mcore-y := mach-default
@@ -74,6 +77,8 @@ mcore-$(CONFIG_X86_SUMMIT) := mach-defa
# Xen subarch support
mflags-$(CONFIG_X86_XEN) := -Iinclude/asm-i386/mach-xen
mcore-$(CONFIG_X86_XEN) := mach-xen
+head-$(CONFIG_X86_XEN) := arch/i386/mach-xen/head.o \
+ arch/i386/kernel/init_task.o
# generic subarchitecture
mflags-$(CONFIG_X86_GENERICARCH) := -Iinclude/asm-i386/mach-generic
@@ -88,8 +93,6 @@ core-$(CONFIG_X86_ES7000) := arch/i386/m
# default subarch .h files
mflags-y += -Iinclude/asm-i386/mach-default
-head-y := arch/i386/kernel/head.o arch/i386/kernel/init_task.o
-
libs-y += arch/i386/lib/
core-y += arch/i386/kernel/ \
arch/i386/mm/ \
--- linus-2.6.orig/arch/i386/kernel/head.S
+++ linus-2.6/arch/i386/kernel/head.S
@@ -20,6 +20,8 @@
#include <asm/asm-offsets.h>
#include <asm/setup.h>
+#include "head-cpu.S"
+
/*
* References to members of the new_cpu_data structure.
*/
@@ -270,28 +272,12 @@ checkCPUtype:
testl $0x200000,%eax # check if ID bit changed
je is486
- /* get vendor info */
- xorl %eax,%eax # call CPUID with 0 -> return vendor ID
- cpuid
- movl %eax,X86_CPUID # save CPUID level
- movl %ebx,X86_VENDOR_ID # lo 4 chars
- movl %edx,X86_VENDOR_ID+4 # next 4 chars
- movl %ecx,X86_VENDOR_ID+8 # last 4 chars
+ CPUID_GET_VENDOR_INFO X86_CPUID, X86_VENDOR_ID
orl %eax,%eax # do we have processor info as well?
je is486
- movl $1,%eax # Use the CPUID instruction to get CPU type
- cpuid
- movb %al,%cl # save reg for future use
- andb $0x0f,%ah # mask processor family
- movb %ah,X86
- andb $0xf0,%al # mask model
- shrb $4,%al
- movb %al,X86_MODEL
- andb $0x0f,%cl # mask mask revision
- movb %cl,X86_MASK
- movl %edx,X86_CAPABILITY
+ CPUID_GET_CPU_TYPE X86, X86_MODEL, X86_MASK, X86_CAPABILITY
is486: movl $0x50022,%ecx # set AM, WP, NE and MP
jmp 2f
@@ -484,50 +470,5 @@ ENTRY(boot_gdt_table)
*/
.align L1_CACHE_BYTES
ENTRY(cpu_gdt_table)
- .quad 0x0000000000000000 /* NULL descriptor */
- .quad 0x0000000000000000 /* 0x0b reserved */
- .quad 0x0000000000000000 /* 0x13 reserved */
- .quad 0x0000000000000000 /* 0x1b reserved */
- .quad 0x0000000000000000 /* 0x20 unused */
- .quad 0x0000000000000000 /* 0x28 unused */
- .quad 0x0000000000000000 /* 0x33 TLS entry 1 */
- .quad 0x0000000000000000 /* 0x3b TLS entry 2 */
- .quad 0x0000000000000000 /* 0x43 TLS entry 3 */
- .quad 0x0000000000000000 /* 0x4b reserved */
- .quad 0x0000000000000000 /* 0x53 reserved */
- .quad 0x0000000000000000 /* 0x5b reserved */
-
- .quad 0x00cf9a000000ffff /* 0x60 kernel 4GB code at 0x00000000 */
- .quad 0x00cf92000000ffff /* 0x68 kernel 4GB data at 0x00000000 */
- .quad 0x00cffa000000ffff /* 0x73 user 4GB code at 0x00000000 */
- .quad 0x00cff2000000ffff /* 0x7b user 4GB data at 0x00000000 */
-
- .quad 0x0000000000000000 /* 0x80 TSS descriptor */
- .quad 0x0000000000000000 /* 0x88 LDT descriptor */
-
- /*
- * Segments used for calling PnP BIOS have byte granularity.
- * They code segments and data segments have fixed 64k limits,
- * the transfer segment sizes are set at run time.
- */
- .quad 0x00409a000000ffff /* 0x90 32-bit code */
- .quad 0x00009a000000ffff /* 0x98 16-bit code */
- .quad 0x000092000000ffff /* 0xa0 16-bit data */
- .quad 0x0000920000000000 /* 0xa8 16-bit data */
- .quad 0x0000920000000000 /* 0xb0 16-bit data */
-
- /*
- * The APM segments have byte granularity and their bases
- * are set at run time. All have 64k limits.
- */
- .quad 0x00409a000000ffff /* 0xb8 APM CS code */
- .quad 0x00009a000000ffff /* 0xc0 APM CS 16 code (16 bit) */
- .quad 0x004092000000ffff /* 0xc8 APM DS data */
-
- .quad 0x0000920000000000 /* 0xd0 - ESPFIX 16-bit SS */
- .quad 0x0000000000000000 /* 0xd8 - unused */
- .quad 0x0000000000000000 /* 0xe0 - unused */
- .quad 0x0000000000000000 /* 0xe8 - unused */
- .quad 0x0000000000000000 /* 0xf0 - unused */
- .quad 0x0000000000000000 /* 0xf8 - GDT entry 31: double-fault TSS */
+ CPU_GDT_TABLE
--- linus-2.6.orig/arch/i386/mach-xen/Makefile
+++ linus-2.6/arch/i386/mach-xen/Makefile
@@ -2,6 +2,8 @@
# Makefile for the linux kernel.
#
+extra-y := head.o
+
obj-y := setup.o
setup-y := ../mach-default/setup.o
--- /dev/null
+++ linus-2.6/arch/i386/kernel/head-cpu.S
@@ -0,0 +1,88 @@
+/* Some macros for head.S */
+
+#include <mach_processor.h>
+
+.macro CPU_GDT_TABLE
+ .quad 0x0000000000000000 /* NULL descriptor */
+ .quad 0x0000000000000000 /* 0x0b reserved */
+ .quad 0x0000000000000000 /* 0x13 reserved */
+ .quad 0x0000000000000000 /* 0x1b reserved */
+ .quad 0x0000000000000000 /* 0x20 unused */
+ .quad 0x0000000000000000 /* 0x28 unused */
+ .quad 0x0000000000000000 /* 0x33 TLS entry 1 */
+ .quad 0x0000000000000000 /* 0x3b TLS entry 2 */
+ .quad 0x0000000000000000 /* 0x43 TLS entry 3 */
+ .quad 0x0000000000000000 /* 0x4b reserved */
+ .quad 0x0000000000000000 /* 0x53 reserved */
+ .quad 0x0000000000000000 /* 0x5b reserved */
+
+ .quad 0x00cf9a000000ffff /* 0x60 kernel 4GB code at 0x00000000 */
+ .quad 0x00cf92000000ffff /* 0x68 kernel 4GB data at 0x00000000 */
+ .quad 0x00cffa000000ffff /* 0x73 user 4GB code at 0x00000000 */
+ .quad 0x00cff2000000ffff /* 0x7b user 4GB data at 0x00000000 */
+
+ .quad 0x0000000000000000 /* 0x80 TSS descriptor */
+ .quad 0x0000000000000000 /* 0x88 LDT descriptor */
+
+ /*
+ * Segments used for calling PnP BIOS have byte granularity.
+ * They code segments and data segments have fixed 64k limits,
+ * the transfer segment sizes are set at run time.
+ */
+ .quad 0x00409a000000ffff /* 0x90 32-bit code */
+ .quad 0x00009a000000ffff /* 0x98 16-bit code */
+ .quad 0x000092000000ffff /* 0xa0 16-bit data */
+ .quad 0x0000920000000000 /* 0xa8 16-bit data */
+ .quad 0x0000920000000000 /* 0xb0 16-bit data */
+
+ /*
+ * The APM segments have byte granularity and their bases
+ * are set at run time. All have 64k limits.
+ */
+ .quad 0x00409a000000ffff /* 0xb8 APM CS code */
+ .quad 0x00009a000000ffff /* 0xc0 APM CS 16 code (16 bit) */
+ .quad 0x004092000000ffff /* 0xc8 APM DS data */
+
+ .quad 0x0000920000000000 /* 0xd0 - ESPFIX 16-bit SS */
+ .quad 0x0000000000000000 /* 0xd8 - unused */
+ .quad 0x0000000000000000 /* 0xe0 - unused */
+ .quad 0x0000000000000000 /* 0xe8 - unused */
+ .quad 0x0000000000000000 /* 0xf0 - unused */
+ .quad 0x0000000000000000 /* 0xf8 - GDT entry 31: double-fault TSS */
+.endm
+
+/**
+ * CPUID_GET_VENDOR_INFO - macro for obtaining cpuid vendor info
+ * @cpuid_level: address to store max basic supported cpuid level
+ * @x86_vendor_id: buffer to store vendor id, must be at least 12 bytes
+ */
+.macro CPUID_GET_VENDOR_INFO cpuid_level, x86_vendor_id
+ /* get vendor info */
+ xorl %eax,%eax # call CPUID with 0 -> return vendor ID
+ cpuid
+ movl %eax,\cpuid_level # save CPUID level
+ movl %ebx,\x86_vendor_id # lo 4 chars
+ movl %edx,\x86_vendor_id+4 # next 4 chars
+ movl %ecx,\x86_vendor_id+8 # last 4 chars
+.endm
+
+/**
+ * CPUID_GET_CPU_TYPE - macro for obtaining cpuid version info
+ * @family: address to store family
+ * @model: address to store model
+ * @mask: address to store mask
+ * @capability: address to store capabilities
+ */
+.macro CPUID_GET_CPU_TYPE family, model, mask, capability
+ movl $1,%eax # Use the CPUID instruction to get CPU type
+ cpuid
+ movb %al,%cl # save reg for future use
+ andb $0x0f,%ah # mask processor family
+ movb %ah,\family
+ andb $0xf0,%al # mask model
+ shrb $4,%al
+ movb %al,\model
+ andb $0x0f,%cl # mask mask revision
+ movb %cl,\mask
+ movl %edx,\capability
+.endm
--- /dev/null
+++ linus-2.6/arch/i386/mach-xen/head.S
@@ -0,0 +1,122 @@
+
+
+.text
+#include <linux/config.h>
+#include <linux/threads.h>
+#include <linux/linkage.h>
+#include <asm/segment.h>
+#include <asm/page.h>
+#include <asm/thread_info.h>
+#include <asm/asm-offsets.h>
+
+#include "../kernel/head-cpu.S"
+
+/*
+ * References to members of the new_cpu_data structure.
+ */
+
+#define X86 new_cpu_data+CPUINFO_x86
+#define X86_VENDOR new_cpu_data+CPUINFO_x86_vendor
+#define X86_MODEL new_cpu_data+CPUINFO_x86_model
+#define X86_MASK new_cpu_data+CPUINFO_x86_mask
+#define X86_HARD_MATH new_cpu_data+CPUINFO_hard_math
+#define X86_CPUID new_cpu_data+CPUINFO_cpuid_level
+#define X86_CAPABILITY new_cpu_data+CPUINFO_x86_capability
+#define X86_VENDOR_ID new_cpu_data+CPUINFO_x86_vendor_id
+
+ENTRY(startup_32)
+ movl %esi,xen_start_info
+ cld
+
+ /* Set up the stack pointer */
+ movl $(init_thread_union+THREAD_SIZE),%esp
+
+ CPUID_GET_VENDOR_INFO X86_CPUID, X86_VENDOR_ID
+ CPUID_GET_CPU_TYPE X86, X86_MODEL, X86_MASK, X86_CAPABILITY
+
+ movb $1,X86_HARD_MATH
+
+ xorl %eax,%eax # Clear FS/GS and LDT
+ movl %eax,%fs
+ movl %eax,%gs
+ cld # gcc2 wants the direction flag cleared at all times
+
+ call start_kernel
+L6:
+ jmp L6 # main should never return here, but
+ # just in case, we know what happens.
+
+#define HYPERCALL_PAGE_OFFSET 0x1000
+.org HYPERCALL_PAGE_OFFSET
+ENTRY(hypercall_page)
+.skip 0x1000
+
+/*
+ * Real beginning of normal "text" segment
+ */
+ENTRY(stext)
+ENTRY(_stext)
+
+/*
+ * BSS section
+ */
+.section ".bss.page_aligned","w"
+ENTRY(swapper_pg_dir)
+ .fill 1024,4,0
+ENTRY(empty_zero_page)
+ .fill 4096,1,0
+
+/*
+ * This starts the data section.
+ */
+.data
+
+ ALIGN
+ .word 0 # 32 bit align gdt_desc.address
+ .globl cpu_gdt_descr
+cpu_gdt_descr:
+ .word GDT_SIZE
+ .long cpu_gdt_table
+
+ .fill NR_CPUS-1,8,0 # space for the other GDT descriptors
+
+/*
+ * The Global Descriptor Table contains 28 quadwords, per-CPU.
+ */
+ .align PAGE_SIZE_asm
+ENTRY(cpu_gdt_table)
+ CPU_GDT_TABLE
+ /* Be sure this is zeroed to avoid false validations in Xen */
+ .fill PAGE_SIZE_asm / 8 - GDT_ENTRIES,8,0
+
+
+/*
+ * __xen_guest information
+ */
+.macro utoa value
+ .if (\value) < 0 || (\value) >= 0x10
+ utoa (((\value)>>4)&0x0fffffff)
+ .endif
+ .if ((\value) & 0xf) < 10
+ .byte '0' + ((\value) & 0xf)
+ .else
+ .byte 'A' + ((\value) & 0xf) - 10
+ .endif
+.endm
+
+.section __xen_guest
+ .ascii "GUEST_OS=linux,GUEST_VER=2.6"
+ .ascii ",XEN_VER=xen-3.0"
+ .ascii ",VIRT_BASE=0x"
+ utoa __PAGE_OFFSET
+ .ascii ",HYPERCALL_PAGE=0x"
+ utoa ((__PHYSICAL_START+HYPERCALL_PAGE_OFFSET)>>PAGE_SHIFT)
+ .ascii ",FEATURES=!writable_page_tables"
+ .ascii "|!auto_translated_physmap"
+#ifdef CONFIG_X86_PAE
+ .ascii ",PAE=yes"
+#else
+ .ascii ",PAE=no"
+#endif
+ .ascii ",LOADER=generic"
+ .byte 0
--
next prev parent reply other threads:[~2006-05-09 8:49 UTC|newest]
Thread overview: 187+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-09 8:49 [RFC PATCH 00/35] Xen i386 paravirtualization support Chris Wright
2006-05-09 7:00 ` [RFC PATCH 01/35] Add XEN config options and disable unsupported config options Chris Wright
2006-05-09 10:05 ` Adrian Bunk
2006-05-09 11:06 ` Ed Tomlinson
2006-05-09 12:45 ` Christian Limpach
2006-05-09 23:23 ` Chris Wright
2006-05-09 14:47 ` Daniel Walker
2006-05-09 15:16 ` Christian Limpach
2006-05-09 16:00 ` Daniel Walker
2006-05-09 23:25 ` Chris Wright
2006-05-09 16:42 ` Andi Kleen
2006-05-10 15:36 ` [Xen-devel] " Alan Cox
2006-05-10 15:48 ` Christian Limpach
2006-05-09 7:00 ` [RFC PATCH 02/35] Makefile support to build Xen subarch Chris Wright
2006-05-09 7:00 ` [RFC PATCH 03/35] Add Xen interface header files Chris Wright
2006-05-09 14:49 ` Martin J. Bligh
2006-05-09 17:54 ` Christian Limpach
2006-05-09 15:15 ` Christoph Hellwig
2006-05-09 19:35 ` Hollis Blanchard
2006-05-09 19:48 ` [Xen-devel] " Anthony Liguori
2006-05-09 22:34 ` Christoph Hellwig
2006-05-09 22:36 ` Ingo Oeser
2006-05-09 16:06 ` Daniel Walker
2006-05-09 16:18 ` Christian Limpach
2006-05-09 16:29 ` Daniel Walker
2006-05-09 7:00 ` [RFC PATCH 04/35] Hypervisor " Chris Wright
2006-05-09 22:43 ` Ingo Oeser
2006-05-09 23:01 ` Chris Wright
2006-05-09 7:00 ` [RFC PATCH 05/35] Add sync bitops Chris Wright
2006-05-09 22:56 ` Christoph Lameter
2006-05-09 23:04 ` Andi Kleen
2006-05-09 23:07 ` Chris Wright
2006-05-09 7:00 ` [RFC PATCH 06/35] Add vmlinuz build target Chris Wright
2006-05-09 7:00 ` [RFC PATCH 07/35] Make LOAD_OFFSET defined by subarch Chris Wright
2006-05-10 23:28 ` Zachary Amsden
2006-05-11 7:47 ` [Xen-devel] " Gerd Hoffmann
2006-05-11 8:51 ` Chris Wright
2006-05-11 9:06 ` Gerd Hoffmann
2006-05-11 16:43 ` Christian Limpach
2006-05-12 6:47 ` [Xen-devel] " Jan Beulich
2006-05-12 8:38 ` Christian Limpach
2006-05-09 7:00 ` [RFC PATCH 08/35] Add Xen-specific memory management definitions Chris Wright
2006-05-09 14:49 ` Martin J. Bligh
2006-05-09 17:44 ` Christian Limpach
2006-05-15 6:44 ` Pete Zaitcev
2006-05-15 7:04 ` Keir Fraser
2006-05-15 8:19 ` Christian Limpach
2006-05-17 16:06 ` Pete Zaitcev
2006-05-18 7:42 ` Chris Wright
2006-05-09 7:00 ` [RFC PATCH 09/35] Change __FIXADDR_TOP to leave room for the hypervisor Chris Wright
2006-05-09 7:00 ` Chris Wright [this message]
2006-05-09 7:00 ` [RFC PATCH 11/35] Add support for Xen to entry.S Chris Wright
2006-05-09 16:51 ` Andi Kleen
2006-05-09 7:00 ` [RFC PATCH 12/35] Add start-of-day setup hooks to subarch Chris Wright
2006-05-09 7:00 ` [RFC PATCH 13/35] Support loading an initrd when running on Xen Chris Wright
2006-05-09 7:00 ` [RFC PATCH 14/35] Subarch support for CPUID instruction Chris Wright
2006-05-09 7:00 ` [RFC PATCH 15/35] subarch support for controlling interrupt delivery Chris Wright
2006-05-09 14:49 ` Martin J. Bligh
2006-05-09 14:55 ` Nick Piggin
2006-05-09 15:51 ` Christian Limpach
2006-05-09 16:02 ` Martin J. Bligh
2006-05-09 16:07 ` Andi Kleen
2006-05-09 16:29 ` Christian Limpach
2006-05-09 16:31 ` Andi Kleen
2006-05-09 20:42 ` Christian Limpach
2006-05-09 21:56 ` Andi Kleen
2006-05-10 10:35 ` Christian Limpach
2006-05-10 10:54 ` Andi Kleen
2006-05-09 21:56 ` Chris Wright
2006-05-09 7:00 ` [RFC PATCH 16/35] subarch support for interrupt and exception gates Chris Wright
2006-05-09 11:09 ` Andi Kleen
2006-05-09 12:55 ` Christian Limpach
2006-05-13 12:27 ` Andrew Morton
2006-05-15 18:30 ` Chris Wright
2006-05-09 7:00 ` [RFC PATCH 17/35] Segment register changes for Xen Chris Wright
2006-05-09 7:16 ` Pavel Machek
2006-05-10 20:09 ` Andi Kleen
2006-05-10 20:30 ` Pavel Machek
2006-05-11 10:34 ` Avi Kivity
2006-05-11 10:41 ` Andi Kleen
2006-05-12 0:28 ` [Xen-devel] " Rusty Russell
2006-05-09 16:44 ` Andi Kleen
2006-05-18 20:20 ` Zachary Amsden
2006-05-18 20:41 ` Keir Fraser
2006-05-18 21:26 ` Chris Wright
2006-05-09 7:00 ` [RFC PATCH 18/35] Support gdt/idt/ldt handling on Xen Chris Wright
2006-05-09 7:21 ` Pavel Machek
2006-05-10 20:23 ` Andi Kleen
2006-05-09 14:49 ` Martin J. Bligh
2006-05-09 18:14 ` Christian Limpach
2006-05-09 18:21 ` Martin Bligh
2006-05-09 7:00 ` [RFC PATCH 19/35] subarch support for control register accesses Chris Wright
2006-05-09 7:00 ` [RFC PATCH 20/35] subarch stack pointer update Chris Wright
2006-05-09 7:00 ` [RFC PATCH 21/35] subarch TLB support Chris Wright
2006-05-09 7:00 ` [RFC PATCH 22/35] subarch suport for idle loop (NO_IDLE_HZ for Xen) Chris Wright
2006-05-09 13:21 ` Andi Kleen
2006-05-09 15:13 ` Christian Limpach
2006-05-09 7:00 ` [RFC PATCH 23/35] Increase x86 interrupt vector range Chris Wright
2006-05-09 7:00 ` [RFC PATCH 24/35] Add support for Xen event channels Chris Wright
2006-05-12 21:41 ` Pavel Machek
2006-05-13 12:27 ` Andrew Morton
2006-05-13 13:02 ` Keir Fraser
2006-05-09 7:00 ` [RFC PATCH 25/35] Add Xen time abstractions Chris Wright
2006-05-09 16:23 ` Daniel Walker
2006-05-09 16:38 ` Christian Limpach
2006-05-09 19:27 ` Adrian Bunk
2006-05-09 21:50 ` Andi Kleen
2006-05-09 23:03 ` Ingo Oeser
2006-05-09 23:09 ` Andi Kleen
2006-05-09 23:13 ` Chris Wright
2006-05-12 21:44 ` Pavel Machek
2006-05-09 7:00 ` [RFC PATCH 26/35] Add Xen subarch reboot support Chris Wright
2006-05-09 17:02 ` Andi Kleen
2006-05-12 21:46 ` Pavel Machek
2006-05-12 21:57 ` Chris Wright
2006-05-09 7:00 ` [RFC PATCH 27/35] Add nosegneg capability to the vsyscall page notes Chris Wright
2006-05-09 7:00 ` [RFC PATCH 28/35] add support for Xen feature queries Chris Wright
2006-05-12 21:56 ` Pavel Machek
2006-05-09 7:00 ` [RFC PATCH 29/35] Add the Xen virtual console driver Chris Wright
2006-05-09 13:26 ` Andi Kleen
2006-05-09 15:03 ` Christian Limpach
2006-05-13 12:27 ` Andrew Morton
2006-05-13 12:51 ` Nick Piggin
2006-05-13 14:29 ` Andrew Morton
2006-05-13 14:43 ` Nick Piggin
2006-05-09 7:00 ` [RFC PATCH 30/35] Add apply_to_page_range() function Chris Wright
2006-05-09 7:00 ` [RFC PATCH 31/35] Add Xen grant table support Chris Wright
2006-05-09 7:00 ` [RFC PATCH 32/35] Add Xen driver utility functions Chris Wright
2006-05-09 19:48 ` Greg KH
2006-05-09 21:50 ` Andi Kleen
2006-05-09 7:00 ` [RFC PATCH 33/35] Add the Xenbus sysfs and virtual device hotplug driver Chris Wright
2006-05-09 16:06 ` Alexey Dobriyan
2006-05-09 16:28 ` Andi Kleen
2006-05-09 19:40 ` Greg KH
2006-05-09 21:53 ` Chris Wright
2006-05-09 22:01 ` Greg KH
2006-05-09 22:50 ` Chris Wright
2006-05-09 23:43 ` Anthony Liguori
2006-05-09 19:49 ` Greg KH
2006-05-09 19:58 ` Chris Wright
2006-05-13 12:28 ` Andrew Morton
2006-05-09 7:00 ` [RFC PATCH 34/35] Add the Xen virtual network device driver Chris Wright
2006-05-09 11:55 ` [Xen-devel] " Herbert Xu
2006-05-09 12:43 ` Christian Limpach
2006-05-09 13:01 ` Herbert Xu
2006-05-09 13:14 ` Andi Kleen
2006-05-09 13:16 ` Christian Limpach
2006-05-09 13:26 ` Herbert Xu
2006-05-09 14:00 ` Christian Limpach
2006-05-09 14:30 ` David Boutcher
2006-05-09 23:35 ` Chris Wright
2006-05-09 11:58 ` Christoph Hellwig
2006-05-09 23:37 ` Chris Wright
2006-05-09 18:56 ` Stephen Hemminger
2006-05-09 23:39 ` Chris Wright
2006-05-09 20:25 ` Stephen Hemminger
2006-05-09 20:26 ` Keir Fraser
2006-05-09 20:39 ` Stephen Hemminger
2006-05-09 20:46 ` Roland Dreier
2006-05-10 18:28 ` Andi Kleen
2006-05-11 0:33 ` Herbert Xu
2006-05-11 7:49 ` Keir Fraser
2006-05-11 8:04 ` Herbert Xu
2006-05-11 9:47 ` Andi Kleen
2006-05-11 16:18 ` Stephen Hemminger
2006-05-11 16:48 ` Rick Jones
2006-05-11 16:55 ` Stephen Hemminger
2006-05-11 17:30 ` Andi Kleen
2006-05-09 20:32 ` Chris Wright
2006-05-09 22:41 ` [Xen-devel] " Herbert Xu
2006-05-09 23:51 ` Chris Wright
2006-05-10 6:36 ` Keir Fraser
2006-05-09 7:00 ` [RFC PATCH 35/35] Add Xen virtual block " Chris Wright
2006-05-09 12:01 ` Christoph Hellwig
2006-05-09 14:49 ` [RFC PATCH 00/35] Xen i386 paravirtualization support Martin J. Bligh
2006-05-09 15:07 ` Christoph Hellwig
2006-05-09 15:12 ` Martin J. Bligh
2006-05-09 15:20 ` Andi Kleen
2006-05-09 15:22 ` Christoph Hellwig
2006-05-09 15:45 ` Pekka Enberg
2006-05-14 1:35 ` Andrew Morton
2006-05-15 21:01 ` Chris Wright
-- strict thread matches above, loose matches on Subject: below --
2006-03-22 6:30 Chris Wright
2006-03-22 6:30 ` [RFC PATCH 10/35] Add a new head.S start-of-day file for booting on Xen Chris Wright
2006-03-22 13:43 ` Andi Kleen
2006-03-22 18:58 ` Chris Wright
2006-03-22 18:45 ` Andi Kleen
2006-03-22 19:26 ` Chris Wright
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=20060509085152.059741000@sous-sol.org \
--to=chrisw@sous-sol.org \
--cc=Christian.Limpach@cl.cam.ac.uk \
--cc=ian.pratt@xensource.com \
--cc=linux-kernel@vger.kernel.org \
--cc=virtualization@lists.osdl.org \
--cc=xen-devel@lists.xensource.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