Roland Scheidegger wrote:
I'm not familiar with Xen, but I heard one of the few drivers which are problematic with it are the agp drivers. This _could_ be such an issue. If so the Xen guys are likely to know more about it. That's really just a guess though.
hi,
yes this is likely to do with Xen, I have sorted a few bugs related to that already. I was just curious if DRI-people might be better at decoding what goes wrong in this specific case.
For now, I went back to the fglrx driver. I got that to work by applying the following diff (which is not a clean patch and not intended for inclusion anywhere before it is cleaned up), to the fglrx open source wrapper.
I now a accellerated OpenGL using the ATI libs, in Xen's domain 0. I will probably revisit r300 in Xen at a later stage.
Jacob
------------------------ agpgart_be.c ------------------
140a141
>
1053c1054
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
1162c1163
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
1167c1168
< agp_bridge.gatt_table = ioremap_nocache(virt_to_phys(table),
---
> agp_bridge.gatt_table = ioremap_nocache(virt_to_bus(table),
1173c1174
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
1248c1249
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
1405c1406
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
1446c1447
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
3179c3180
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
3199c3200
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
3204c3205
< page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real),
---
> page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real),
3209c3210
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
3238c3239
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4407c4408
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4485c4486
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4506c4507
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4600c4601
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4621c4622
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4626c4627
< page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real),
---
> page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real),
4631c4632
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4658c4659
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
------------------------ firegl_public.c ------------------
34a35
> #include <asm/pgtable.h>
41,48c42,49
< #if !defined(CONFIG_X86_PC)
< #if !defined(CONFIG_X86_64)
< #if !defined(CONFIG_X86_VOYAGER)
< #if !defined(CONFIG_X86_NUMAQ)
< #if !defined(CONFIG_X86_SUMMIT)
< #if !defined(CONFIG_X86_BIGSMP)
< #if !defined(CONFIG_X86_VISWS)
< #if !defined(CONFIG_X86_GENERICARCH)
---
> #if !defined(CONFIG_XEN)
> #if !defined(CONFIG_XEN_64)
> #if !defined(CONFIG_XEN_VOYAGER)
> #if !defined(CONFIG_XEN_NUMAQ)
> #if !defined(CONFIG_XEN_SUMMIT)
> #if !defined(CONFIG_XEN_BIGSMP)
> #if !defined(CONFIG_XEN_VISWS)
> #if !defined(CONFIG_XEN_GENERICARCH)
2556a2558
>
2558c2560
< __KE_DEBUG3("start=0x%08lx, "
---
> printk("start=0x%08lx, "
2564a2567,2569
> printk("__ke_vm_map\n");
> //return -EPERM;
>
2589c2594
< if (remap_page_range(FGL_VMA_API_PASS
---
> if (io_remap_page_range(vma,
2595c2600
< __KE_DEBUG("remap_page_range failed\n");
---
> __KE_DEBUG("io_remap_page_range failed\n");
2656c2661
< if (remap_page_range(FGL_VMA_API_PASS
---
> if (io_remap_page_range(vma,
2662c2667
< __KE_DEBUG("remap_page_range failed\n");
---
> __KE_DEBUG("io_remap_page_range
> failed\n");
2693c2698
< if (remap_page_range(FGL_VMA_API_PASS
---
> if (io_remap_page_range(vma,
2699c2704
< __KE_DEBUG("remap_page_range failed\n");
---
> __KE_DEBUG("io_remap_page_range
> failed\n");
