Commit a483b654b5663ee506b6ecb1fa4561d5f4a31e4b

Authored by bellard
1 parent 6a78ece5

updated guest kernel patch for qemu-fast (Martin Koniczek)


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1170 c046a42c-6fe2-441c-8c8c-71466251a162
linux-2.6-qemu-fast.patch deleted 100644 → 0
1   -diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .32324-linux-2.6.0/arch/i386/Kconfig .32324-linux-2.6.0.updated/arch/i386/Kconfig
2   ---- .32324-linux-2.6.0/arch/i386/Kconfig 2003-10-09 18:02:48.000000000 +1000
3   -+++ .32324-linux-2.6.0.updated/arch/i386/Kconfig 2003-12-26 16:46:49.000000000 +1100
4   -@@ -307,6 +307,14 @@ config X86_GENERIC
5   - when it has moderate overhead. This is intended for generic
6   - distributions kernels.
7   -
8   -+config QEMU
9   -+ bool "Kernel to run under QEMU"
10   -+ depends on EXPERIMENTAL
11   -+ help
12   -+ Select this if you want to boot the kernel inside qemu-fast,
13   -+ the non-mmu version of the x86 emulator. See
14   -+ <http://fabrice.bellard.free.fr/qemu/>. Say N.
15   -+
16   - #
17   - # Define implied options from the CPU selection here
18   - #
19   -diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .32324-linux-2.6.0/arch/i386/kernel/Makefile .32324-linux-2.6.0.updated/arch/i386/kernel/Makefile
20   ---- .32324-linux-2.6.0/arch/i386/kernel/Makefile 2003-09-29 10:25:15.000000000 +1000
21   -+++ .32324-linux-2.6.0.updated/arch/i386/kernel/Makefile 2003-12-26 16:46:49.000000000 +1100
22   -@@ -46,12 +46,14 @@ quiet_cmd_syscall = SYSCALL $@
23   - cmd_syscall = $(CC) -nostdlib $(SYSCFLAGS_$(@F)) \
24   - -Wl,-T,$(filter-out FORCE,$^) -o $@
25   -
26   -+export AFLAGS_vsyscall.lds.o += -P -C -U$(ARCH)
27   -+
28   - vsyscall-flags = -shared -s -Wl,-soname=linux-gate.so.1
29   - SYSCFLAGS_vsyscall-sysenter.so = $(vsyscall-flags)
30   - SYSCFLAGS_vsyscall-int80.so = $(vsyscall-flags)
31   -
32   - $(obj)/vsyscall-int80.so $(obj)/vsyscall-sysenter.so: \
33   --$(obj)/vsyscall-%.so: $(src)/vsyscall.lds $(obj)/vsyscall-%.o FORCE
34   -+$(obj)/vsyscall-%.so: $(src)/vsyscall.lds.s $(obj)/vsyscall-%.o FORCE
35   - $(call if_changed,syscall)
36   -
37   - # We also create a special relocatable object that should mirror the symbol
38   -@@ -62,5 +64,5 @@ $(obj)/built-in.o: $(obj)/vsyscall-syms.
39   - $(obj)/built-in.o: ld_flags += -R $(obj)/vsyscall-syms.o
40   -
41   - SYSCFLAGS_vsyscall-syms.o = -r
42   --$(obj)/vsyscall-syms.o: $(src)/vsyscall.lds $(obj)/vsyscall-sysenter.o FORCE
43   -+$(obj)/vsyscall-syms.o: $(src)/vsyscall.lds.s $(obj)/vsyscall-sysenter.o FORCE
44   - $(call if_changed,syscall)
45   -diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .32324-linux-2.6.0/arch/i386/kernel/vmlinux.lds.S .32324-linux-2.6.0.updated/arch/i386/kernel/vmlinux.lds.S
46   ---- .32324-linux-2.6.0/arch/i386/kernel/vmlinux.lds.S 2003-09-22 10:27:28.000000000 +1000
47   -+++ .32324-linux-2.6.0.updated/arch/i386/kernel/vmlinux.lds.S 2003-12-26 16:46:49.000000000 +1100
48   -@@ -3,6 +3,7 @@
49   - */
50   -
51   - #include <asm-generic/vmlinux.lds.h>
52   -+#include <asm/page.h>
53   -
54   - OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
55   - OUTPUT_ARCH(i386)
56   -@@ -10,7 +11,7 @@ ENTRY(startup_32)
57   - jiffies = jiffies_64;
58   - SECTIONS
59   - {
60   -- . = 0xC0000000 + 0x100000;
61   -+ . = __PAGE_OFFSET + 0x100000;
62   - /* read-only */
63   - _text = .; /* Text and read-only data */
64   - .text : {
65   -diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .32324-linux-2.6.0/arch/i386/kernel/vsyscall.lds .32324-linux-2.6.0.updated/arch/i386/kernel/vsyscall.lds
66   ---- .32324-linux-2.6.0/arch/i386/kernel/vsyscall.lds 2003-09-22 10:07:26.000000000 +1000
67   -+++ .32324-linux-2.6.0.updated/arch/i386/kernel/vsyscall.lds 1970-01-01 10:00:00.000000000 +1000
68   -@@ -1,67 +0,0 @@
69   --/*
70   -- * Linker script for vsyscall DSO. The vsyscall page is an ELF shared
71   -- * object prelinked to its virtual address, and with only one read-only
72   -- * segment (that fits in one page). This script controls its layout.
73   -- */
74   --
75   --/* This must match <asm/fixmap.h>. */
76   --VSYSCALL_BASE = 0xffffe000;
77   --
78   --SECTIONS
79   --{
80   -- . = VSYSCALL_BASE + SIZEOF_HEADERS;
81   --
82   -- .hash : { *(.hash) } :text
83   -- .dynsym : { *(.dynsym) }
84   -- .dynstr : { *(.dynstr) }
85   -- .gnu.version : { *(.gnu.version) }
86   -- .gnu.version_d : { *(.gnu.version_d) }
87   -- .gnu.version_r : { *(.gnu.version_r) }
88   --
89   -- /* This linker script is used both with -r and with -shared.
90   -- For the layouts to match, we need to skip more than enough
91   -- space for the dynamic symbol table et al. If this amount
92   -- is insufficient, ld -shared will barf. Just increase it here. */
93   -- . = VSYSCALL_BASE + 0x400;
94   --
95   -- .text : { *(.text) } :text =0x90909090
96   --
97   -- .eh_frame_hdr : { *(.eh_frame_hdr) } :text :eh_frame_hdr
98   -- .eh_frame : { KEEP (*(.eh_frame)) } :text
99   -- .dynamic : { *(.dynamic) } :text :dynamic
100   -- .useless : {
101   -- *(.got.plt) *(.got)
102   -- *(.data .data.* .gnu.linkonce.d.*)
103   -- *(.dynbss)
104   -- *(.bss .bss.* .gnu.linkonce.b.*)
105   -- } :text
106   --}
107   --
108   --/*
109   -- * We must supply the ELF program headers explicitly to get just one
110   -- * PT_LOAD segment, and set the flags explicitly to make segments read-only.
111   -- */
112   --PHDRS
113   --{
114   -- text PT_LOAD FILEHDR PHDRS FLAGS(5); /* PF_R|PF_X */
115   -- dynamic PT_DYNAMIC FLAGS(4); /* PF_R */
116   -- eh_frame_hdr 0x6474e550; /* PT_GNU_EH_FRAME, but ld doesn't match the name */
117   --}
118   --
119   --/*
120   -- * This controls what symbols we export from the DSO.
121   -- */
122   --VERSION
123   --{
124   -- LINUX_2.5 {
125   -- global:
126   -- __kernel_vsyscall;
127   -- __kernel_sigreturn;
128   -- __kernel_rt_sigreturn;
129   --
130   -- local: *;
131   -- };
132   --}
133   --
134   --/* The ELF entry point can be used to set the AT_SYSINFO value. */
135   --ENTRY(__kernel_vsyscall);
136   -diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .32324-linux-2.6.0/arch/i386/kernel/vsyscall.lds.S .32324-linux-2.6.0.updated/arch/i386/kernel/vsyscall.lds.S
137   ---- .32324-linux-2.6.0/arch/i386/kernel/vsyscall.lds.S 1970-01-01 10:00:00.000000000 +1000
138   -+++ .32324-linux-2.6.0.updated/arch/i386/kernel/vsyscall.lds.S 2003-12-26 16:46:49.000000000 +1100
139   -@@ -0,0 +1,67 @@
140   -+/*
141   -+ * Linker script for vsyscall DSO. The vsyscall page is an ELF shared
142   -+ * object prelinked to its virtual address, and with only one read-only
143   -+ * segment (that fits in one page). This script controls its layout.
144   -+ */
145   -+#include <asm/fixmap.h>
146   -+
147   -+VSYSCALL_BASE = __FIXADDR_TOP - 0x1000;
148   -+
149   -+SECTIONS
150   -+{
151   -+ . = VSYSCALL_BASE + SIZEOF_HEADERS;
152   -+
153   -+ .hash : { *(.hash) } :text
154   -+ .dynsym : { *(.dynsym) }
155   -+ .dynstr : { *(.dynstr) }
156   -+ .gnu.version : { *(.gnu.version) }
157   -+ .gnu.version_d : { *(.gnu.version_d) }
158   -+ .gnu.version_r : { *(.gnu.version_r) }
159   -+
160   -+ /* This linker script is used both with -r and with -shared.
161   -+ For the layouts to match, we need to skip more than enough
162   -+ space for the dynamic symbol table et al. If this amount
163   -+ is insufficient, ld -shared will barf. Just increase it here. */
164   -+ . = VSYSCALL_BASE + 0x400;
165   -+
166   -+ .text : { *(.text) } :text =0x90909090
167   -+
168   -+ .eh_frame_hdr : { *(.eh_frame_hdr) } :text :eh_frame_hdr
169   -+ .eh_frame : { KEEP (*(.eh_frame)) } :text
170   -+ .dynamic : { *(.dynamic) } :text :dynamic
171   -+ .useless : {
172   -+ *(.got.plt) *(.got)
173   -+ *(.data .data.* .gnu.linkonce.d.*)
174   -+ *(.dynbss)
175   -+ *(.bss .bss.* .gnu.linkonce.b.*)
176   -+ } :text
177   -+}
178   -+
179   -+/*
180   -+ * We must supply the ELF program headers explicitly to get just one
181   -+ * PT_LOAD segment, and set the flags explicitly to make segments read-only.
182   -+ */
183   -+PHDRS
184   -+{
185   -+ text PT_LOAD FILEHDR PHDRS FLAGS(5); /* PF_R|PF_X */
186   -+ dynamic PT_DYNAMIC FLAGS(4); /* PF_R */
187   -+ eh_frame_hdr 0x6474e550; /* PT_GNU_EH_FRAME, but ld doesn't match the name */
188   -+}
189   -+
190   -+/*
191   -+ * This controls what symbols we export from the DSO.
192   -+ */
193   -+VERSION
194   -+{
195   -+ LINUX_2.5 {
196   -+ global:
197   -+ __kernel_vsyscall;
198   -+ __kernel_sigreturn;
199   -+ __kernel_rt_sigreturn;
200   -+
201   -+ local: *;
202   -+ };
203   -+}
204   -+
205   -+/* The ELF entry point can be used to set the AT_SYSINFO value. */
206   -+ENTRY(__kernel_vsyscall);
207   -diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .32324-linux-2.6.0/include/asm-i386/fixmap.h .32324-linux-2.6.0.updated/include/asm-i386/fixmap.h
208   ---- .32324-linux-2.6.0/include/asm-i386/fixmap.h 2003-09-22 10:09:12.000000000 +1000
209   -+++ .32324-linux-2.6.0.updated/include/asm-i386/fixmap.h 2003-12-26 16:46:49.000000000 +1100
210   -@@ -14,6 +14,19 @@
211   - #define _ASM_FIXMAP_H
212   -
213   - #include <linux/config.h>
214   -+
215   -+/* used by vmalloc.c, vsyscall.lds.S.
216   -+ *
217   -+ * Leave one empty page between vmalloc'ed areas and
218   -+ * the start of the fixmap.
219   -+ */
220   -+#ifdef CONFIG_QEMU
221   -+#define __FIXADDR_TOP 0xa7fff000
222   -+#else
223   -+#define __FIXADDR_TOP 0xfffff000
224   -+#endif
225   -+
226   -+#ifndef __ASSEMBLY__
227   - #include <linux/kernel.h>
228   - #include <asm/acpi.h>
229   - #include <asm/apicdef.h>
230   -@@ -94,13 +107,8 @@ extern void __set_fixmap (enum fixed_add
231   - #define clear_fixmap(idx) \
232   - __set_fixmap(idx, 0, __pgprot(0))
233   -
234   --/*
235   -- * used by vmalloc.c.
236   -- *
237   -- * Leave one empty page between vmalloc'ed areas and
238   -- * the start of the fixmap.
239   -- */
240   --#define FIXADDR_TOP (0xfffff000UL)
241   -+#define FIXADDR_TOP ((unsigned long)__FIXADDR_TOP)
242   -+
243   - #define __FIXADDR_SIZE (__end_of_permanent_fixed_addresses << PAGE_SHIFT)
244   - #define FIXADDR_START (FIXADDR_TOP - __FIXADDR_SIZE)
245   -
246   -@@ -145,4 +153,5 @@ static inline unsigned long virt_to_fix(
247   - return __virt_to_fix(vaddr);
248   - }
249   -
250   -+#endif /* !__ASSEMBLY__ */
251   - #endif
252   -diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .32324-linux-2.6.0/include/asm-i386/page.h .32324-linux-2.6.0.updated/include/asm-i386/page.h
253   ---- .32324-linux-2.6.0/include/asm-i386/page.h 2003-09-22 10:06:42.000000000 +1000
254   -+++ .32324-linux-2.6.0.updated/include/asm-i386/page.h 2003-12-26 16:46:49.000000000 +1100
255   -@@ -10,10 +10,10 @@
256   - #define LARGE_PAGE_SIZE (1UL << PMD_SHIFT)
257   -
258   - #ifdef __KERNEL__
259   --#ifndef __ASSEMBLY__
260   --
261   - #include <linux/config.h>
262   -
263   -+#ifndef __ASSEMBLY__
264   -+
265   - #ifdef CONFIG_X86_USE_3DNOW
266   -
267   - #include <asm/mmx.h>
268   -@@ -115,12 +115,19 @@ static __inline__ int get_order(unsigned
269   - #endif /* __ASSEMBLY__ */
270   -
271   - #ifdef __ASSEMBLY__
272   -+#ifdef CONFIG_QEMU
273   -+#define __PAGE_OFFSET (0x90000000)
274   -+#else
275   - #define __PAGE_OFFSET (0xC0000000)
276   -+#endif /* QEMU */
277   -+#else
278   -+#ifdef CONFIG_QEMU
279   -+#define __PAGE_OFFSET (0x90000000UL)
280   - #else
281   - #define __PAGE_OFFSET (0xC0000000UL)
282   -+#endif /* QEMU */
283   - #endif
284   -
285   --
286   - #define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
287   - #define VMALLOC_RESERVE ((unsigned long)__VMALLOC_RESERVE)
288   - #define MAXMEM (-__PAGE_OFFSET-__VMALLOC_RESERVE)
289   -diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .32324-linux-2.6.0/include/asm-i386/param.h .32324-linux-2.6.0.updated/include/asm-i386/param.h
290   ---- .32324-linux-2.6.0/include/asm-i386/param.h 2003-09-21 17:26:06.000000000 +1000
291   -+++ .32324-linux-2.6.0.updated/include/asm-i386/param.h 2003-12-26 16:46:49.000000000 +1100
292   -@@ -2,7 +2,12 @@
293   - #define _ASMi386_PARAM_H
294   -
295   - #ifdef __KERNEL__
296   --# define HZ 1000 /* Internal kernel timer frequency */
297   -+# include <linux/config.h>
298   -+# ifdef CONFIG_QEMU
299   -+# define HZ 100
300   -+# else
301   -+# define HZ 1000 /* Internal kernel timer frequency */
302   -+# endif
303   - # define USER_HZ 100 /* .. some user interfaces are in "ticks" */
304   - # define CLOCKS_PER_SEC (USER_HZ) /* like times() */
305   - #endif
linux-2.6.9-qemu-fast.patch 0 → 100644
  1 +--- linux-2.6.9/arch/i386/Kconfig 2004-10-18 23:53:22.000000000 +0200
  2 ++++ linux-2.6.9-qemu/arch/i386/Kconfig 2004-12-07 21:56:49.000000000 +0100
  3 +@@ -337,6 +337,14 @@ config X86_GENERIC
  4 +
  5 + endif
  6 +
  7 ++config QEMU
  8 ++ bool "Kernel to run under QEMU"
  9 ++ depends on EXPERIMENTAL
  10 ++ help
  11 ++ Select this if you want to boot the kernel inside qemu-fast,
  12 ++ the non-mmu version of the x86 emulator. See
  13 ++ <http://fabrice.bellard.free.fr/qemu/>. Say N.
  14 ++
  15 + #
  16 + # Define implied options from the CPU selection here
  17 + #
  18 +--- linux-2.6.9/include/asm-i386/fixmap.h 2004-10-18 23:53:08.000000000 +0200
  19 ++++ linux-2.6.9-qemu/include/asm-i386/fixmap.h 2004-12-07 23:16:11.000000000 +0100
  20 +@@ -20,7 +20,11 @@
  21 + * Leave one empty page between vmalloc'ed areas and
  22 + * the start of the fixmap.
  23 + */
  24 ++#ifdef CONFIG_QEMU
  25 ++#define __FIXADDR_TOP 0xa7fff000
  26 ++#else
  27 + #define __FIXADDR_TOP 0xfffff000
  28 ++#endif
  29 +
  30 + #ifndef __ASSEMBLY__
  31 + #include <linux/kernel.h>
  32 +--- linux-2.6.9/include/asm-i386/page.h 2004-10-18 23:53:22.000000000 +0200
  33 ++++ linux-2.6.9-qemu/include/asm-i386/page.h 2004-12-07 21:56:49.000000000 +0100
  34 +@@ -121,12 +121,19 @@ extern int sysctl_legacy_va_layout;
  35 + #endif /* __ASSEMBLY__ */
  36 +
  37 + #ifdef __ASSEMBLY__
  38 ++#ifdef CONFIG_QEMU
  39 ++#define __PAGE_OFFSET (0x90000000)
  40 ++#else
  41 + #define __PAGE_OFFSET (0xC0000000)
  42 ++#endif /* QEMU */
  43 ++#else
  44 ++#ifdef CONFIG_QEMU
  45 ++#define __PAGE_OFFSET (0x90000000UL)
  46 + #else
  47 + #define __PAGE_OFFSET (0xC0000000UL)
  48 ++#endif /* QEMU */
  49 + #endif
  50 +
  51 +-
  52 + #define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
  53 + #define VMALLOC_RESERVE ((unsigned long)__VMALLOC_RESERVE)
  54 + #define MAXMEM (-__PAGE_OFFSET-__VMALLOC_RESERVE)
  55 +--- linux-2.6.9/include/asm-i386/param.h 2004-10-18 23:53:24.000000000 +0200
  56 ++++ linux-2.6.9-qemu/include/asm-i386/param.h 2004-12-07 21:56:49.000000000 +0100
  57 +@@ -2,7 +2,12 @@
  58 + #define _ASMi386_PARAM_H
  59 +
  60 + #ifdef __KERNEL__
  61 +-# define HZ 1000 /* Internal kernel timer frequency */
  62 ++# include <linux/config.h>
  63 ++# ifdef CONFIG_QEMU
  64 ++# define HZ 100
  65 ++# else
  66 ++# define HZ 1000 /* Internal kernel timer frequency */
  67 ++# endif
  68 + # define USER_HZ 100 /* .. some user interfaces are in "ticks" */
  69 + # define CLOCKS_PER_SEC (USER_HZ) /* like times() */
  70 + #endif
... ...