@@ -163,8 +163,9 @@ var (
163163 // txpool reorgs.
164164 throttleTxMeter = metrics .NewRegisteredMeter ("txpool/throttle" , nil )
165165 // reorgDurationTimer measures how long time a txpool reorg takes.
166- reorgDurationTimer = metrics .NewRegisteredTimer ("txpool/reorgtime" , nil )
167- resetDurationTimer = metrics .NewRegisteredTimer ("txpool/resettime" , nil )
166+ reorgDurationTimer = metrics .NewRegisteredTimer ("txpool/reorgtime" , nil )
167+ resetDurationTimer = metrics .NewRegisteredTimer ("txpool/resettime" , nil )
168+ demoteDurationTimer = metrics .NewRegisteredTimer ("txpool/demote" , nil )
168169 // dropBetweenReorgHistogram counts how many drops we experience between two reorg runs. It is expected
169170 // that this number is pretty low, since txpool reorgs happen very frequently.
170171 dropBetweenReorgHistogram = metrics .NewRegisteredHistogram ("txpool/dropbetweenreorg" , nil , metrics .NewExpDecaySample (1028 , 0.015 ))
@@ -1449,7 +1450,9 @@ func (pool *LegacyPool) runReorg(done chan struct{}, reset *txpoolResetRequest,
14491450 // remove any transaction that has been included in the block or was invalidated
14501451 // because of another transaction (e.g. higher gas price).
14511452 if reset != nil {
1453+ demoteStart := time .Now ()
14521454 pool .demoteUnexecutables ()
1455+ demoteDurationTimer .UpdateSince (demoteStart )
14531456 if reset .newHead != nil {
14541457 if pool .chainconfig .IsLondon (new (big.Int ).Add (reset .newHead .Number , big .NewInt (1 ))) {
14551458 pendingBaseFee := eip1559 .CalcBaseFee (pool .chainconfig , reset .newHead )
0 commit comments