mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 14:21:25 +02:00
MINOR: threads/debug: only report lock stats for used operations
In addition to the previous simplification, most locks don't use the seek or read lock (e.g. spinlocks etc) so let's split the dump into distinct operations (write/seek/read) and only report those which were used. Now the output size is roughly divided by 5 compared to previous ones.
This commit is contained in:
parent
23d3b00bdd
commit
de785f04e1
@ -464,31 +464,39 @@ static inline void show_lock_stats()
|
|||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"Stats about Lock %s: \n"
|
"Stats about Lock %s: \n",
|
||||||
|
lock_label(lbl));
|
||||||
|
|
||||||
|
if (lock_stats[lbl].num_write_locked)
|
||||||
|
fprintf(stderr,
|
||||||
"\t # write lock : %lu\n"
|
"\t # write lock : %lu\n"
|
||||||
"\t # write unlock: %lu (%ld)\n"
|
"\t # write unlock: %lu (%ld)\n"
|
||||||
"\t # wait time for write : %.3f msec\n"
|
"\t # wait time for write : %.3f msec\n"
|
||||||
"\t # wait time for write/lock: %.3f nsec\n"
|
"\t # wait time for write/lock: %.3f nsec\n",
|
||||||
"\t # seek lock : %lu\n"
|
|
||||||
"\t # seek unlock : %lu (%ld)\n"
|
|
||||||
"\t # wait time for seek : %.3f msec\n"
|
|
||||||
"\t # wait time for seek/lock : %.3f nsec\n"
|
|
||||||
"\t # read lock : %lu\n"
|
|
||||||
"\t # read unlock : %lu (%ld)\n"
|
|
||||||
"\t # wait time for read : %.3f msec\n"
|
|
||||||
"\t # wait time for read/lock : %.3f nsec\n",
|
|
||||||
|
|
||||||
lock_label(lbl),
|
|
||||||
lock_stats[lbl].num_write_locked,
|
lock_stats[lbl].num_write_locked,
|
||||||
lock_stats[lbl].num_write_unlocked,
|
lock_stats[lbl].num_write_unlocked,
|
||||||
lock_stats[lbl].num_write_unlocked - lock_stats[lbl].num_write_locked,
|
lock_stats[lbl].num_write_unlocked - lock_stats[lbl].num_write_locked,
|
||||||
(double)lock_stats[lbl].nsec_wait_for_write / 1000000.0,
|
(double)lock_stats[lbl].nsec_wait_for_write / 1000000.0,
|
||||||
lock_stats[lbl].num_write_locked ? ((double)lock_stats[lbl].nsec_wait_for_write / (double)lock_stats[lbl].num_write_locked) : 0,
|
lock_stats[lbl].num_write_locked ? ((double)lock_stats[lbl].nsec_wait_for_write / (double)lock_stats[lbl].num_write_locked) : 0);
|
||||||
|
|
||||||
|
if (lock_stats[lbl].num_seek_locked)
|
||||||
|
fprintf(stderr,
|
||||||
|
"\t # seek lock : %lu\n"
|
||||||
|
"\t # seek unlock : %lu (%ld)\n"
|
||||||
|
"\t # wait time for seek : %.3f msec\n"
|
||||||
|
"\t # wait time for seek/lock : %.3f nsec\n",
|
||||||
lock_stats[lbl].num_seek_locked,
|
lock_stats[lbl].num_seek_locked,
|
||||||
lock_stats[lbl].num_seek_unlocked,
|
lock_stats[lbl].num_seek_unlocked,
|
||||||
lock_stats[lbl].num_seek_unlocked - lock_stats[lbl].num_seek_locked,
|
lock_stats[lbl].num_seek_unlocked - lock_stats[lbl].num_seek_locked,
|
||||||
(double)lock_stats[lbl].nsec_wait_for_seek / 1000000.0,
|
(double)lock_stats[lbl].nsec_wait_for_seek / 1000000.0,
|
||||||
lock_stats[lbl].num_seek_locked ? ((double)lock_stats[lbl].nsec_wait_for_seek / (double)lock_stats[lbl].num_seek_locked) : 0,
|
lock_stats[lbl].num_seek_locked ? ((double)lock_stats[lbl].nsec_wait_for_seek / (double)lock_stats[lbl].num_seek_locked) : 0);
|
||||||
|
|
||||||
|
if (lock_stats[lbl].num_read_locked)
|
||||||
|
fprintf(stderr,
|
||||||
|
"\t # read lock : %lu\n"
|
||||||
|
"\t # read unlock : %lu (%ld)\n"
|
||||||
|
"\t # wait time for read : %.3f msec\n"
|
||||||
|
"\t # wait time for read/lock : %.3f nsec\n",
|
||||||
lock_stats[lbl].num_read_locked,
|
lock_stats[lbl].num_read_locked,
|
||||||
lock_stats[lbl].num_read_unlocked,
|
lock_stats[lbl].num_read_unlocked,
|
||||||
lock_stats[lbl].num_read_unlocked - lock_stats[lbl].num_read_locked,
|
lock_stats[lbl].num_read_unlocked - lock_stats[lbl].num_read_locked,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user