Use the concept of primary and secondary counters
diff --git a/fuzz.c b/fuzz.c
index b2c7436..1146da1 100644
--- a/fuzz.c
+++ b/fuzz.c
@@ -434,7 +434,12 @@
int64_t diff1 = hfuzz->linux.hwCnts.cpuBranchCnt - fuzzer->linux.hwCnts.cpuBranchCnt;
int64_t diff2 = hfuzz->linux.hwCnts.customCnt - fuzzer->linux.hwCnts.customCnt;
- if (diff0 < 0 || diff1 < 0 || diff2 < 0 || fuzzer->linux.hwCnts.newBBCnt > 0) {
+ /*
+ * Coverage is the primary counter, the rest is secondary, and taken into consideration only
+ * if the coverage counter has not been changed
+ */
+ if (fuzzer->linux.hwCnts.newBBCnt > 0 ||
+ (fuzzer->linux.hwCnts.newBBCnt == 0 && (diff0 < 0 || diff1 < 0 || diff2 < 0))) {
LOG_I
("New file size: %zu, Perf feedback new/cur (instr,branch): %" PRIu64 "/%" PRIu64 ",%"
PRIu64 "/%" PRIu64 ", BBcnt new/total: %" PRIu64 "/%" PRIu64, fuzzer->dynamicFileSz,