]> granicus.if.org Git - zfs/commit
Call gethrtime() only once per new txg creation
authorCyril Plisko <cyril.plisko@mountall.com>
Wed, 15 Jan 2014 09:26:12 +0000 (11:26 +0200)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 23 Jan 2014 21:31:51 +0000 (13:31 -0800)
commit01b738f457f2a406fb6b4b264fb7a947b9b9989b
tree6b31f68856959d4d499f365114ffdad79c172aeb
parent478d64fdaeb89c8f029f3dd1969447317eedaa6e
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
include/sys/spa.h
module/zfs/spa_stats.c
module/zfs/txg.c