]> granicus.if.org Git - zfs/commit
Add additional state TXG_STATE_WAIT_FOR_SYNC for txg.
authorIgor Lvovsky <ilvovsky@gmail.com>
Thu, 16 Jan 2014 09:41:27 +0000 (11:41 +0200)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 23 Jan 2014 21:31:51 +0000 (13:31 -0800)
commit478d64fdaeb89c8f029f3dd1969447317eedaa6e
tree8ab0284645a34b1d1b14d5ae544e290c2b6355fd
parent93292b308178cb885e1b11ca1a270c36f5b08a23
Add additional state TXG_STATE_WAIT_FOR_SYNC for txg.

In several cases when digging into kstats we can found two txgs
in SYNC state, e.g.

txg     birth            state  nreserved  nread      nwritten ...
985452  258127184872561  C      0          373948416  2376272384 ...
985453  258129016180616  C      0          378173440  28793344 ...
985454  258129016271523  S      0          0          0 ...
985455  258130864245986  S      0          0          0 ...
985456  258130867458851  O      0          0          0 ...

However only first txg (985454) is really syncing at this moment.
The other one (985455) marked as SYNCED is actually in a post-QUIESCED
state and waiting to start sync.   So, the new TXG_STATE_WAIT_FOR_SYNC
state between TXG_STATE_QUIESCED and TXG_STATE_SYNCED was added to
reveal this situation.

txg     birth            state  nreserved  nread      nwritten ...
1086896 235261068743969  C      0          163577856  8437248 ...
1086897 235262870830801  C      0          280625152  822594048 ...
1086898 235264172219064  S      0          0          0 ...
1086899 235264936134407  W      0          0          0 ...
1086900 235264936296156  O      0          0          0 ...

Signed-off-by: Igor Lvovsky <ilvovsky@gmail.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #2075
include/sys/spa.h
module/zfs/spa_stats.c
module/zfs/txg.c