Although AMDGPU-Pro 16.40 with kernel 4.8 has been working fine for me, I decided to try 16.60 with kernel 4.10. After my problems with 16.60 on 4.8, I read a few reports claiming it works well with kernel 4.10.
I started with a fresh Ubuntu desktop 16.04.2 install, and then installed 4.10.5 from the Ubuntu ppa. Although the process is not very complicated, I wrote a small script which downloads the files and installs them. After rebooting, I downloaded and installed the AMDGPU-Pro 16.60 drivers according to the instructions. Finally, I installed ROC-smi, a utility which simplifies clock control using the sysfs interface. To test the install, run "rocm-smi -a" which will show all info for any amdgpu cards installed.
Unfortunately, the new drivers no longer work with my ethminer fork, but sgminer-gm 5.5.5 works as was well as it did with 4.8/16.40. On GCN3 and newer cards like Tonga and Polaris, the optimal core clock for mining ETH is often between 55% and 56% of the memory clock. On my Sapphire Rx470 I have the memory overclocked to 2100Mhz, so dpm 6 at 1169Mhz is a perfect fit:
./rocm-smi -d 0 --setsclk 6
Once sgminer was running for a couple minutes, the speed settled at about 29.1Mh/s. Note that the clock setting is only temporary for the next opencl program to run. Just run the rocm-smi command each time.
4.10.9 was uploaded to the Ubuntu ppa today, so I would recommend it instead of 4.10.5.