Public bug reported:

The following patch against fglrx makes it function correctly in dom0,
opengl and all. I'm currently running this patched fglrx with xen dom0,
beryl/xgl and it feels basically native performance!

Please include in feisty :)

diff -Naru build_mod/firegl_public.c build_mod.xen/firegl_public.c
--- build_mod/firegl_public.c   2006-10-26 22:39:30.000000000 +0900
+++ build_mod.xen/firegl_public.c       2006-11-16 22:47:57.000000000 +0900
@@ -36,6 +36,7 @@

 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,71)
 #if !defined(CONFIG_X86_PC)
+#if !defined(CONFIG_X86_XEN)
 #if !defined(CONFIG_X86_64)
 #if !defined(CONFIG_X86_VOYAGER)
 #if !defined(CONFIG_X86_NUMAQ)
@@ -52,6 +53,7 @@
 #endif
 #endif
 #endif
+#endif
 #endif /* LINUX_VERSION_CODE */

 /* The dirty-page-tracking patch included in NLD 9 SMP kernels defines
diff -Naru build_mod/firegl_public.h build_mod.xen/firegl_public.h
--- build_mod/firegl_public.h   2006-10-26 22:39:30.000000000 +0900
+++ build_mod.xen/firegl_public.h       2006-11-16 22:48:06.000000000 +0900
@@ -32,8 +32,13 @@

 #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,9)

+#ifdef CONFIG_XEN
+#define REMAP_PAGE_RANGE_FN io_remap_pfn_range
+#define REMAP_PAGE_RANGE_STR "io_remap_pfn_range"
+#else
 #define REMAP_PAGE_RANGE_FN remap_pfn_range
 #define REMAP_PAGE_RANGE_STR "remap_pfn_range"
+#endif
 #define REMAP_PAGE_RANGE_OFF(offset) ((offset) >> PAGE_SHIFT)

 #else /* LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,9) */
@@ -44,12 +49,21 @@

 #endif /* LINUX_VERSION_CODE > KERNEL_VERSION(2,6,9) */

+#ifdef CONFIG_XEN
+#define REMAP_PAGE_RANGE(vma,offset) \
+    REMAP_PAGE_RANGE_FN((vma), \
+                        (vma)->vm_start,       \
+                        REMAP_PAGE_RANGE_OFF(offset), \
+                        (vma)->vm_end - (vma)->vm_start, \
+                        (vma)->vm_page_prot)
+#else
 #define REMAP_PAGE_RANGE(vma,offset) \
     REMAP_PAGE_RANGE_FN(FGL_VMA_API_PASS \
                         (vma)->vm_start,       \
                         REMAP_PAGE_RANGE_OFF(offset), \
                         (vma)->vm_end - (vma)->vm_start, \
                         (vma)->vm_page_prot)
+#endif


 /* Page table macros */
diff -Naru build_mod/make.sh build_mod.xen/make.sh
--- build_mod/make.sh   2006-10-26 22:39:30.000000000 +0900
+++ build_mod.xen/make.sh       2006-11-16 22:47:57.000000000 +0900
@@ -788,10 +788,15 @@
   pgprot_t prot;

   return (
+#ifdef CONFIG_X86_XEN
+    io_remap_page_range(
+      vma,
+#else
     remap_page_range(
 #ifdef FGL_LINUX253P1_VMA_API
       vma,
 #endif
+#endif
       from, to, size, prot)
     );
 }

** Affects: xen-restricted-modules-2.6.17 (Ubuntu)
     Importance: Undecided
         Status: Unconfirmed

-- 
[patch] fglrx under xen dom0
https://launchpad.net/bugs/73067

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to