Yesterday I posted the initial Radeon RX 580 Linux benchmarks while now with having more time with this "Polaris Evolved" card I've been able to try out a bit more, like the AMDGPU Linux overclocking support. Here are the ups and downs of overclocking the Radeon graphics card under Linux.
Since last year there has been basic overclocking support in the AMDGPU DRM driver that's the kernel driver to all newer Radeon GPUs -- GCN 1.2+ and optionally the experimental GCN 1.0/1.1 support. With there not yet being a "Catalyst Control Center" / "Radeon Software Settings" area for the modern AMD Linux graphics driver, the overclocking needs to be done from the command-line.
The way the current AMDGPU overclocking works for the core frequency is by writing an integer value between 0 and 20 to /sys/class/drm/card0/device/pp_sclk_od. That value represents an overclock of 0~20% above the GPU's core frequency. Similarly, writing a value to /sys/class/drm/card0/device/pp_mclk_od represents a percentage-based overclock to the memory frequency.
With the MSI Radeon RX 580 8GB graphics card, a 6% overclock on the core frequency was the maximum I could obtain... 7% or higher would end up hanging the system when running any modern OpenGL/Vulkan workload. Memory overclocking was a different story entirely...