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");