diff --git a/src/backend/executor/execParallel.c b/src/backend/executor/execParallel.c
index 558cb08..da43896 100644
--- a/src/backend/executor/execParallel.c
+++ b/src/backend/executor/execParallel.c
@@ -819,19 +819,6 @@ ExecParallelReinitialize(PlanState *planstate,
 	/* Old workers must already be shut down */
 	Assert(pei->finished);
 
-	/* Clear the instrumentation space from the last round. */
-	if (pei->instrumentation)
-	{
-		Instrumentation *instrument;
-		SharedExecutorInstrumentation *sh_instr;
-		int			i;
-
-		sh_instr = pei->instrumentation;
-		instrument = GetInstrumentationArray(sh_instr);
-		for (i = 0; i < sh_instr->num_workers * sh_instr->num_plan_nodes; ++i)
-			InstrInit(&instrument[i], pei->planstate->state->es_instrument);
-	}
-
 	/* Force parameters we're going to pass to workers to be evaluated. */
 	ExecEvalParamExecParams(sendParams, estate);
 
@@ -909,14 +896,6 @@ ExecParallelReInitializeDSM(PlanState *planstate,
 				ExecBitmapHeapReInitializeDSM((BitmapHeapScanState *) planstate,
 											  pcxt);
 			break;
-		case T_HashState:
-			/* even when not parallel-aware, for EXPLAIN ANALYZE */
-			ExecHashReInitializeDSM((HashState *) planstate, pcxt);
-			break;
-		case T_SortState:
-			/* even when not parallel-aware, for EXPLAIN ANALYZE */
-			ExecSortReInitializeDSM((SortState *) planstate, pcxt);
-			break;
 
 		default:
 			break;
@@ -1046,11 +1025,6 @@ ExecParallelFinish(ParallelExecutorInfo *pei)
 	for (i = 0; i < nworkers; i++)
 		InstrAccumParallelQuery(&pei->buffer_usage[i]);
 
-	/* Finally, accumulate instrumentation, if any. */
-	if (pei->instrumentation)
-		ExecParallelRetrieveInstrumentation(pei->planstate,
-											pei->instrumentation);
-
 	pei->finished = true;
 }
 
@@ -1063,6 +1037,11 @@ ExecParallelFinish(ParallelExecutorInfo *pei)
 void
 ExecParallelCleanup(ParallelExecutorInfo *pei)
 {
+	/* Accumulate instrumentation, if any. */
+	if (pei->instrumentation)
+		ExecParallelRetrieveInstrumentation(pei->planstate,
+											pei->instrumentation);
+
 	/* Free any serialized parameters. */
 	if (DsaPointerIsValid(pei->param_exec))
 	{
diff --git a/src/backend/executor/nodeHash.c b/src/backend/executor/nodeHash.c
index 6fe5d69..afd7384 100644
--- a/src/backend/executor/nodeHash.c
+++ b/src/backend/executor/nodeHash.c
@@ -1670,19 +1670,6 @@ ExecHashInitializeDSM(HashState *node, ParallelContext *pcxt)
 }
 
 /*
- * Reset shared state before beginning a fresh scan.
- */
-void
-ExecHashReInitializeDSM(HashState *node, ParallelContext *pcxt)
-{
-	if (node->shared_info != NULL)
-	{
-		memset(node->shared_info->hinstrument, 0,
-			   node->shared_info->num_workers * sizeof(HashInstrumentation));
-	}
-}
-
-/*
  * Locate the DSM space for hash table instrumentation data that we'll write
  * to at shutdown time.
  */
diff --git a/src/backend/executor/nodeSort.c b/src/backend/executor/nodeSort.c
index 73aa371..d593378 100644
--- a/src/backend/executor/nodeSort.c
+++ b/src/backend/executor/nodeSort.c
@@ -397,23 +397,6 @@ ExecSortInitializeDSM(SortState *node, ParallelContext *pcxt)
 }
 
 /* ----------------------------------------------------------------
- *		ExecSortReInitializeDSM
- *
- *		Reset shared state before beginning a fresh scan.
- * ----------------------------------------------------------------
- */
-void
-ExecSortReInitializeDSM(SortState *node, ParallelContext *pcxt)
-{
-	/* If there's any instrumentation space, clear it for next time */
-	if (node->shared_info != NULL)
-	{
-		memset(node->shared_info->sinstrument, 0,
-			   node->shared_info->num_workers * sizeof(TuplesortInstrumentation));
-	}
-}
-
-/* ----------------------------------------------------------------
  *		ExecSortInitializeWorker
  *
  *		Attach worker to DSM space for sort statistics.
diff --git a/src/include/executor/nodeHash.h b/src/include/executor/nodeHash.h
index 75d4c70..0974f1e 100644
--- a/src/include/executor/nodeHash.h
+++ b/src/include/executor/nodeHash.h
@@ -52,7 +52,6 @@ extern int	ExecHashGetSkewBucket(HashJoinTable hashtable, uint32 hashvalue);
 extern void ExecHashEstimate(HashState *node, ParallelContext *pcxt);
 extern void ExecHashInitializeDSM(HashState *node, ParallelContext *pcxt);
 extern void ExecHashInitializeWorker(HashState *node, ParallelWorkerContext *pwcxt);
-extern void ExecHashReInitializeDSM(HashState *node, ParallelContext *pcxt);
 extern void ExecHashRetrieveInstrumentation(HashState *node);
 extern void ExecShutdownHash(HashState *node);
 extern void ExecHashGetInstrumentation(HashInstrumentation *instrument,
diff --git a/src/include/executor/nodeSort.h b/src/include/executor/nodeSort.h
index cc61a9d..627a04c 100644
--- a/src/include/executor/nodeSort.h
+++ b/src/include/executor/nodeSort.h
@@ -26,7 +26,6 @@ extern void ExecReScanSort(SortState *node);
 /* parallel instrumentation support */
 extern void ExecSortEstimate(SortState *node, ParallelContext *pcxt);
 extern void ExecSortInitializeDSM(SortState *node, ParallelContext *pcxt);
-extern void ExecSortReInitializeDSM(SortState *node, ParallelContext *pcxt);
 extern void ExecSortInitializeWorker(SortState *node, ParallelWorkerContext *pwcxt);
 extern void ExecSortRetrieveInstrumentation(SortState *node);
 
