The offending code is in pci_device_linux_sysfs_map_range(): /* For WC mappings, try sysfs resourceN_wc file first */ if ((map->flags & PCI_DEV_MAP_FLAG_WRITE_COMBINE) && !pci_device_linux_sysfs_map_range_wc(dev, map)) return 0; pci_device_linux_sysfs_map_range_wc() does not set up the MTRR, and when the user later unmaps the memory, libpciaccess complains: error setting MTRR (base = 0xXXX, size = 0xYYY, type = 1) Invalid argument (22) Does the kernel set up the MTRR (or PAT in newer kernls) when libpciaccess maps from the resourceN_wc file? Or is the mapping uncached because libpciaccess fails to set up the MTRR? I'm just wondering if the missing MTRR entry might explain the awfully slow opengl I get with xorg from git master.
Fixed in newer libpciaccess, i believe.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.