We believe we have found a GCOV regression issue in the 4.4 based kernel.
Our Linaro kernel based on lsk-v4.4-16.09 works after enabling GCOV with following configurations:
CONFIG_GCOV_KERNEL=y
CONFIG_GCOV_PROFILE_ALL=y
CONFIG_GCOV_FORMAT_AUTODETECT=y
After merging in lsk-v4.4-16.11, the kernel with above GCOV configurations does not boot.
We looked at the Linaro commit history and tried gradual merging, and determined the problem happens between these two commits:
aa9b1a6affdc4da75d95d40cf83167351b9848b4 (this is bad)
b67b1ab417fe73a632583cdd7b710e4450c9d4ec (this is good)
There are 12 commits in between. We noticed almost all changes in the commits are in KVM area. So we tried building our kernel with GCOV enabled and with CONFIG_KVM removed. The kernel boots fine.
We think there is an issue with KVM in lsk-v4.4-16.11 if GCOV is enabled. And the issue was probably introduced in the 12 commits. We would be grateful if someone can verify the existence of the issue and provide a fix. We are more than happy to test any patches.
Thank you.
Lixin Yao