Open-Source Radeon Tries Again For PCI-E 2.0
As shown in multiple Phoronix articles, PCI Express 2.0 speeds can really boost the Radeon driver performance. With the additional bandwidth provided by PCI-E 2.0, the open-source AMD driver sees a much-needed performance boost. While the PCI Express 2.0 specification was ratified in 2007 and has been supported by most motherboard chipsets and graphics cards since then (on the Radeon side, it's been supported going back to the R600 days), it hasn't been enabled by default with the open-source Radeon driver due to alleged bugs for a small minority of users. The performance meanwhile has been painful for a majority of the ATI/AMD customers sticking to open-source code.
David Airlie began today's patch work by submitting a DRM core patch that allows for checking to see if PCI Express 2.0 5GT link speeds are supported for a given device. There is a special case within this function that explictly disables the PCI Express 2.0 checking for root ports from VIA and Serverworks since they're reportedly known to cause issues.
A second patch allows for PCI Express 2.0 to be supported by the Radeon HD 7000 "Southern Islands" graphics cards, but that patch comes down to just calling the same PCI-E 2.0 initialization path as is used by the HD 6000 "Northern Islands" series, which in turn is the HD 5000 "Evergreen" PCI-E 2.0 code-path.
The third and final patch attempts to enable PCI Express 2.0 support where possible, which comes down to using the new PCI-E 2.0 checker function along the Evergreen (the code-path that's shared with the HD 6000 and HD 7000 series too) and R600 paths. With this patch applied, PCI Express 2.0 should be on-by-default for the Radeon HD 2000 series and newer on a patched Linux kernel in conjunction with a supported PCI-E Gen2 motherboard. If there's bugs, falling back to PCI Express 1.0 is possible via the radeon.pcie_gen2=0 parameter.
Intel's PCI Express 2.0 launch party back in 2007 at IDF Fall prior to the Phoronix computer beer opening event.