gluster / project-infrastructure

Issues related to GlusterFs infrastructure components.
0 stars 0 forks source link

Upgrade to newer line coverage tool - 1.15 #158

Open mykaul opened 2 years ago

mykaul commented 2 years ago

We are using 1.14, which sometimes seem to give some odd results. Either it's an optimization I don't fully understand or some of the numbers make little sense. 1.15 is available - https://github.com/linux-test-project/lcov/releases/tag/v1.15 - it'd be great if we can upgrade to it.

mscherer commented 2 years ago

Given that we use Centos Stream 8 for the coverage, that would requires a specific backport of the package. That's doable for something critical, but I am not keen on adding the maintenance of a specific package for that.

However, I guess we can do a test run to see if that fix the issue, do you have a link to the build giving odd results (and a bit more information on those odd results ?

mykaul commented 2 years ago

I see numbers I can't explain - code B that comes after A has more 'hits', or there are missing 'hits'. Random example:

233  5337465360 :     ret = per_dentry_fn(dentry, data);
234  5337465359 :     if (ret) {

Where's one missing hit? What happened?

Another one:

247 13401367424 :     list_for_each_entry(each, &parent->dentry_list, inode_list)
248             :     {
249  5337458353 :         ret = __foreach_ancestor_dentry(each, per_dentry_fn, data);
250  8063902065 :         if (ret)

How is line 250 getting so many more hits than 249?

Could be some compiler optimizations of course, macro expansion, etc. :-/