mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
Call gethrtime() only once per new txg creation
When transitioning current open TXG into QUIESCE state and opening a new one txg_quiesce() calls gethrtime(): - to mark the birth time of the new TXG - to record the SPA txg history kstat - implicitely inside spa_txg_history_add() These timestamps are practically the same, so that the first one can be used instead of the other two. The only visible difference is that inside spa_txg_history_add() the time spent in kmem_zalloc() will be counted towards the opened TXG. Since at this point the new TXG already exists (tx->tx_open_txg has been already incremented) it is actually a correct accounting. In any case this extra work is only happening when spa_txg_history kstat is activated (i.e. zfs_txg_history > 0) and doesn't affect the normal processing in any way. Signed-off-by: Cyril Plisko <cyril.plisko@mountall.com> Issue #2075
This commit is contained in:
committed by
Brian Behlendorf
parent
478d64fdae
commit
01b738f457
+1
-1
@@ -566,7 +566,7 @@ extern void spa_stats_init(spa_t *spa);
|
||||
extern void spa_stats_destroy(spa_t *spa);
|
||||
extern void spa_read_history_add(spa_t *spa, const zbookmark_t *zb,
|
||||
uint32_t aflags);
|
||||
extern void spa_txg_history_add(spa_t *spa, uint64_t txg);
|
||||
extern void spa_txg_history_add(spa_t *spa, uint64_t txg, hrtime_t birth_time);
|
||||
extern int spa_txg_history_set(spa_t *spa, uint64_t txg,
|
||||
txg_state_t completed_state, hrtime_t completed_time);
|
||||
extern int spa_txg_history_set_io(spa_t *spa, uint64_t txg, uint64_t nread,
|
||||
|
||||
Reference in New Issue
Block a user