2006-03-22 06:39:11

by Chris Wright

[permalink] [raw]
Subject: [RFC PATCH 09/35] Change __FIXADDR_TOP to leave room for the hypervisor.

Move the definition of __FIXADDR_TOP into a subarch include file so
that it can be overridden for subarch xen -- the hypervisor needs
about 64MB at the top of the address space.

Signed-off-by: Ian Pratt <[email protected]>
Signed-off-by: Christian Limpach <[email protected]>
Signed-off-by: Chris Wright <[email protected]>
---
include/asm-i386/fixmap.h | 8 +-------
include/asm-i386/mach-default/mach_fixmap.h | 11 +++++++++++
include/asm-i386/mach-xen/mach_fixmap.h | 11 +++++++++++
3 files changed, 23 insertions(+), 7 deletions(-)

--- xen-subarch-2.6.orig/include/asm-i386/fixmap.h
+++ xen-subarch-2.6/include/asm-i386/fixmap.h
@@ -14,13 +14,7 @@
#define _ASM_FIXMAP_H

#include <linux/config.h>
-
-/* used by vmalloc.c, vsyscall.lds.S.
- *
- * Leave one empty page between vmalloc'ed areas and
- * the start of the fixmap.
- */
-#define __FIXADDR_TOP 0xfffff000
+#include <mach_fixmap.h>

#ifndef __ASSEMBLY__
#include <linux/kernel.h>
--- /dev/null
+++ xen-subarch-2.6/include/asm-i386/mach-default/mach_fixmap.h
@@ -0,0 +1,11 @@
+#ifndef __ASM_MACH_FIXMAP_H
+#define __ASM_MACH_FIXMAP_H
+
+/* used by vmalloc.c, vsyscall.lds.S.
+ *
+ * Leave one empty page between vmalloc'ed areas and
+ * the start of the fixmap.
+ */
+#define __FIXADDR_TOP 0xfffff000
+
+#endif /* __ASM_MACH_FIXMAP_H */
--- /dev/null
+++ xen-subarch-2.6/include/asm-i386/mach-xen/mach_fixmap.h
@@ -0,0 +1,11 @@
+#ifndef __ASM_MACH_FIXMAP_H
+#define __ASM_MACH_FIXMAP_H
+
+/* used by vmalloc.c, vsyscall.lds.S.
+ *
+ * Leave one empty page between vmalloc'ed areas and
+ * the start of the fixmap.
+ */
+#define __FIXADDR_TOP (HYPERVISOR_VIRT_START - 2 * PAGE_SIZE)
+
+#endif /* __ASM_MACH_FIXMAP_H */

--


2006-03-22 17:28:16

by Anthony Liguori

[permalink] [raw]
Subject: Re: [RFC PATCH 09/35] Change __FIXADDR_TOP to leave room for the hypervisor.

Chris Wright wrote:
> Move the definition of __FIXADDR_TOP into a subarch include file so
> that it can be overridden for subarch xen -- the hypervisor needs
> about 64MB at the top of the address space.
>

I think this is more generally useful if it's actually a CONFIG option
(as it was in the VMI patches) instead of subarch specific. Qemu has
had a "fast" patch for a while that pretty much just increases the size
of the memory hole and changes ___PAGE_OFFSET to be lower in memory.
There are a number of interesting things one can do once there's an
adequately sized hole too (assuming you're doing full-virtualization).

Regards,

Anthony Liguori

> Signed-off-by: Ian Pratt <[email protected]>
> Signed-off-by: Christian Limpach <[email protected]>
> Signed-off-by: Chris Wright <[email protected]>
> ---
> include/asm-i386/fixmap.h | 8 +-------
> include/asm-i386/mach-default/mach_fixmap.h | 11 +++++++++++
> include/asm-i386/mach-xen/mach_fixmap.h | 11 +++++++++++
> 3 files changed, 23 insertions(+), 7 deletions(-)
>
> --- xen-subarch-2.6.orig/include/asm-i386/fixmap.h
> +++ xen-subarch-2.6/include/asm-i386/fixmap.h
> @@ -14,13 +14,7 @@
> #define _ASM_FIXMAP_H
>
> #include <linux/config.h>
> -
> -/* used by vmalloc.c, vsyscall.lds.S.
> - *
> - * Leave one empty page between vmalloc'ed areas and
> - * the start of the fixmap.
> - */
> -#define __FIXADDR_TOP 0xfffff000
> +#include <mach_fixmap.h>
>
> #ifndef __ASSEMBLY__
> #include <linux/kernel.h>
> --- /dev/null
> +++ xen-subarch-2.6/include/asm-i386/mach-default/mach_fixmap.h
> @@ -0,0 +1,11 @@
> +#ifndef __ASM_MACH_FIXMAP_H
> +#define __ASM_MACH_FIXMAP_H
> +
> +/* used by vmalloc.c, vsyscall.lds.S.
> + *
> + * Leave one empty page between vmalloc'ed areas and
> + * the start of the fixmap.
> + */
> +#define __FIXADDR_TOP 0xfffff000
> +
> +#endif /* __ASM_MACH_FIXMAP_H */
> --- /dev/null
> +++ xen-subarch-2.6/include/asm-i386/mach-xen/mach_fixmap.h
> @@ -0,0 +1,11 @@
> +#ifndef __ASM_MACH_FIXMAP_H
> +#define __ASM_MACH_FIXMAP_H
> +
> +/* used by vmalloc.c, vsyscall.lds.S.
> + *
> + * Leave one empty page between vmalloc'ed areas and
> + * the start of the fixmap.
> + */
> +#define __FIXADDR_TOP (HYPERVISOR_VIRT_START - 2 * PAGE_SIZE)
> +
> +#endif /* __ASM_MACH_FIXMAP_H */
>
> --
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Virtualization mailing list
> [email protected]
> https://lists.osdl.org/mailman/listinfo/virtualization
>

2006-03-22 17:32:12

by Chris Wright

[permalink] [raw]
Subject: Re: [RFC PATCH 09/35] Change __FIXADDR_TOP to leave room for the hypervisor.

* Anthony Liguori ([email protected]) wrote:
> I think this is more generally useful if it's actually a CONFIG option
> (as it was in the VMI patches) instead of subarch specific. Qemu has
> had a "fast" patch for a while that pretty much just increases the size
> of the memory hole and changes ___PAGE_OFFSET to be lower in memory.
> There are a number of interesting things one can do once there's an
> adequately sized hole too (assuming you're doing full-virtualization).

Good point, easy to change. Although I think dynamic may be the better
approach.

thanks,
-chris