uint64_t ret = 0;
uint bucket;
- for (bucket = 0; bucket < 32; bucket++)
+ for (bucket = 0; bucket < 30; bucket++)
ret += _HA_ATOMIC_LOAD(&lock_stats_rd[lbl].buckets[bucket]);
return ret;
}
uint64_t ret = 0;
uint bucket;
- for (bucket = 0; bucket < 32; bucket++)
+ for (bucket = 0; bucket < 30; bucket++)
ret += _HA_ATOMIC_LOAD(&lock_stats_sk[lbl].buckets[bucket]);
return ret;
}
uint64_t ret = 0;
uint bucket;
- for (bucket = 0; bucket < 32; bucket++)
+ for (bucket = 0; bucket < 30; bucket++)
ret += _HA_ATOMIC_LOAD(&lock_stats_wr[lbl].buckets[bucket]);
return ret;
}
(double)lock_stats_wr[lbl].nsec_wait / 1000000.0,
num_write_locked ? ((double)lock_stats_wr[lbl].nsec_wait / (double)num_write_locked) : 0);
- for (bucket = 0; bucket < 32; bucket++)
+ for (bucket = 0; bucket < 30; bucket++)
if (lock_stats_wr[lbl].buckets[bucket])
fprintf(stderr, " %u:%llu", bucket, (ullong)lock_stats_wr[lbl].buckets[bucket]);
fprintf(stderr, "\n");
(double)lock_stats_sk[lbl].nsec_wait / 1000000.0,
num_seek_locked ? ((double)lock_stats_sk[lbl].nsec_wait / (double)num_seek_locked) : 0);
- for (bucket = 0; bucket < 32; bucket++)
+ for (bucket = 0; bucket < 30; bucket++)
if (lock_stats_sk[lbl].buckets[bucket])
fprintf(stderr, " %u:%llu", bucket, (ullong)lock_stats_sk[lbl].buckets[bucket]);
fprintf(stderr, "\n");
(double)lock_stats_rd[lbl].nsec_wait / 1000000.0,
num_read_locked ? ((double)lock_stats_rd[lbl].nsec_wait / (double)num_read_locked) : 0);
- for (bucket = 0; bucket < 32; bucket++)
+ for (bucket = 0; bucket < 30; bucket++)
if (lock_stats_rd[lbl].buckets[bucket])
fprintf(stderr, " %u:%llu", bucket, (ullong)lock_stats_rd[lbl].buckets[bucket]);
fprintf(stderr, "\n");
start_time += now_mono_time();
HA_ATOMIC_ADD(&lock_stats_wr[lbl].nsec_wait, start_time);
+ start_time &= 0x3fffffff; // keep values below 1 billion only
bucket = flsnz((uint32_t)start_time + 1) - 1;
HA_ATOMIC_INC(&lock_stats_wr[lbl].buckets[bucket]);
}
HA_ATOMIC_ADD(&lock_stats_wr[lbl].nsec_wait, start_time);
+ start_time &= 0x3fffffff; // keep values below 1 billion only
bucket = flsnz((uint32_t)start_time ? (uint32_t)start_time : 1) - 1;
HA_ATOMIC_INC(&lock_stats_wr[lbl].buckets[bucket]);
start_time += now_mono_time();
HA_ATOMIC_ADD(&lock_stats_rd[lbl].nsec_wait, start_time);
+ start_time &= 0x3fffffff; // keep values below 1 billion only
bucket = flsnz((uint32_t)start_time ? (uint32_t)start_time : 1) - 1;
HA_ATOMIC_INC(&lock_stats_rd[lbl].buckets[bucket]);
HA_ATOMIC_ADD(&lock_stats_rd[lbl].nsec_wait, start_time);
+ start_time &= 0x3fffffff; // keep values below 1 billion only
bucket = flsnz((uint32_t)start_time ? (uint32_t)start_time : 1) - 1;
HA_ATOMIC_INC(&lock_stats_rd[lbl].buckets[bucket]);
start_time += now_mono_time();
HA_ATOMIC_ADD(&lock_stats_rd[lbl].nsec_wait, start_time);
+ start_time &= 0x3fffffff; // keep values below 1 billion only
bucket = flsnz((uint32_t)start_time ? (uint32_t)start_time : 1) - 1;
HA_ATOMIC_INC(&lock_stats_rd[lbl].buckets[bucket]);
start_time += now_mono_time();
HA_ATOMIC_ADD(&lock_stats_sk[lbl].nsec_wait, start_time);
+ start_time &= 0x3fffffff; // keep values below 1 billion only
bucket = flsnz((uint32_t)start_time ? (uint32_t)start_time : 1) - 1;
HA_ATOMIC_INC(&lock_stats_sk[lbl].buckets[bucket]);
start_time += now_mono_time();
HA_ATOMIC_ADD(&lock_stats_sk[lbl].nsec_wait, start_time);
+ start_time &= 0x3fffffff; // keep values below 1 billion only
bucket = flsnz((uint32_t)start_time ? (uint32_t)start_time : 1) - 1;
HA_ATOMIC_INC(&lock_stats_sk[lbl].buckets[bucket]);
start_time += now_mono_time();
HA_ATOMIC_ADD(&lock_stats_wr[lbl].nsec_wait, start_time);
+ start_time &= 0x3fffffff; // keep values below 1 billion only
bucket = flsnz((uint32_t)start_time ? (uint32_t)start_time : 1) - 1;
HA_ATOMIC_INC(&lock_stats_wr[lbl].buckets[bucket]);
start_time += now_mono_time();
HA_ATOMIC_ADD(&lock_stats_rd[lbl].nsec_wait, start_time);
+ start_time &= 0x3fffffff; // keep values below 1 billion only
bucket = flsnz((uint32_t)start_time ? (uint32_t)start_time : 1) - 1;
HA_ATOMIC_INC(&lock_stats_rd[lbl].buckets[bucket]);
/* got the lock ! */
HA_ATOMIC_ADD(&lock_stats_sk[lbl].nsec_wait, start_time);
+ start_time &= 0x3fffffff; // keep values below 1 billion only
bucket = flsnz((uint32_t)start_time ? (uint32_t)start_time : 1) - 1;
HA_ATOMIC_INC(&lock_stats_sk[lbl].buckets[bucket]);
HA_ATOMIC_OR(&st->cur_seeker, tbit);
/* got the lock ! */
HA_ATOMIC_ADD(&lock_stats_sk[lbl].nsec_wait, start_time);
+ start_time &= 0x3fffffff; // keep values below 1 billion only
bucket = flsnz((uint32_t)start_time ? (uint32_t)start_time : 1) - 1;
HA_ATOMIC_INC(&lock_stats_sk[lbl].buckets[bucket]);
HA_ATOMIC_OR(&st->cur_seeker, tbit);
start_time += now_mono_time();
HA_ATOMIC_ADD(&lock_stats_sk[lbl].nsec_wait, start_time);
+ start_time &= 0x3fffffff; // keep values below 1 billion only
bucket = flsnz((uint32_t)start_time ? (uint32_t)start_time : 1) - 1;
HA_ATOMIC_INC(&lock_stats_sk[lbl].buckets[bucket]);
HA_ATOMIC_ADD(&lock_stats_sk[lbl].nsec_wait, start_time);
+ start_time &= 0x3fffffff; // keep values below 1 billion only
bucket = flsnz((uint32_t)start_time ? (uint32_t)start_time : 1) - 1;
HA_ATOMIC_INC(&lock_stats_sk[lbl].buckets[bucket]);