diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
index 10f5e0a2f4b..3eca6a420ff 100644
--- a/storage/innobase/handler/ha_innodb.cc
+++ b/storage/innobase/handler/ha_innodb.cc
@@ -452,7 +452,6 @@ sensible to call srv_active_wake_master_thread after each
 operation, we only do it every INNOBASE_WAKE_INTERVAL'th step. */
 
 #define INNOBASE_WAKE_INTERVAL	32
-static ulong	innobase_active_counter	= 0;
 
 /** Allowed values of innodb_change_buffering */
 static const char* innobase_change_buffering_values[IBUF_USE_COUNT] = {
@@ -1906,23 +1905,6 @@ thd_to_trx_id(
 }
 #endif /* WITH_WSREP */
 
-/********************************************************************//**
-Increments innobase_active_counter and every INNOBASE_WAKE_INTERVALth
-time calls srv_active_wake_master_thread. This function should be used
-when a single database operation may introduce a small need for
-server utility activity, like checkpointing. */
-inline
-void
-innobase_active_small(void)
-/*=======================*/
-{
-	innobase_active_counter++;
-
-	if ((innobase_active_counter % INNOBASE_WAKE_INTERVAL) == 0) {
-		srv_active_wake_master_thread();
-	}
-}
-
 /********************************************************************//**
 Converts an InnoDB error code to a MySQL error code and also tells to MySQL
 about a possible transaction rollback inside InnoDB caused by a lock wait
@@ -6653,11 +6635,6 @@ ha_innobase::close()
 
 	MONITOR_INC(MONITOR_TABLE_CLOSE);
 
-	/* Tell InnoDB server that there might be work for
-	utility threads: */
-
-	srv_active_wake_master_thread();
-
 	DBUG_RETURN(0);
 }
 
@@ -8375,8 +8352,6 @@ ha_innobase::write_row(
 	}
 
 func_exit:
-	innobase_active_small();
-
 	DBUG_RETURN(error_result);
 }
 
@@ -9045,11 +9020,6 @@ ha_innobase::update_row(
 			error, m_prebuilt->table->flags, m_user_thd);
 	}
 
-	/* Tell InnoDB server that there might be work for
-	utility threads: */
-
-	innobase_active_small();
-
 #ifdef WITH_WSREP
 	if (error == DB_SUCCESS                            &&
 	    wsrep_thd_exec_mode(m_user_thd) == LOCAL_STATE &&
@@ -9109,11 +9079,6 @@ ha_innobase::delete_row(
 
 	innobase_srv_conc_exit_innodb(m_prebuilt);
 
-	/* Tell the InnoDB server that there might be work for
-	utility threads: */
-
-	innobase_active_small();
-
 #ifdef WITH_WSREP
 	if (error == DB_SUCCESS
 	    && wsrep_thd_exec_mode(m_user_thd) == LOCAL_STATE
@@ -13000,7 +12965,6 @@ create_table_info_t::create_table_update_dict()
 	if (m_flags2 & DICT_TF2_FTS) {
 		if (!innobase_fts_load_stopword(innobase_table, NULL, m_thd)) {
 			dict_table_close(innobase_table, FALSE, FALSE);
-			srv_active_wake_master_thread();
 			trx_free_for_mysql(m_trx);
 			DBUG_RETURN(-1);
 		}
@@ -13146,11 +13110,6 @@ ha_innobase::create(
 
 	error = info.create_table_update_dict();
 
-	/* Tell the InnoDB server that there might be work for
-	utility threads: */
-
-	srv_active_wake_master_thread();
-
 	DBUG_RETURN(error);
 }
 
diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc
index eee0e43d73f..0bab2bea16f 100644
--- a/storage/innobase/handler/handler0alter.cc
+++ b/storage/innobase/handler/handler0alter.cc
@@ -8636,11 +8636,6 @@ ha_innobase::commit_inplace_alter_table(
 
 	log_append_on_checkpoint(NULL);
 
-	/* Tell the InnoDB server that there might be work for
-	utility threads: */
-
-	srv_active_wake_master_thread();
-
 	if (fail) {
 		for (inplace_alter_handler_ctx** pctx = ctx_array;
 		     *pctx; pctx++) {
diff --git a/storage/innobase/include/srv0srv.h b/storage/innobase/include/srv0srv.h
index 767e24e9265..b68506b76fe 100644
--- a/storage/innobase/include/srv0srv.h
+++ b/storage/innobase/include/srv0srv.h
@@ -809,16 +809,7 @@ srv_reset_io_thread_op_info();
 /** Wake up the purge threads if there is work to do. */
 void
 srv_wake_purge_thread_if_not_active();
-/** Wake up the InnoDB master thread if it was suspended (not sleeping). */
-void
-srv_active_wake_master_thread_low();
-
-#define srv_active_wake_master_thread()					\
-	do {								\
-		if (!srv_read_only_mode) {				\
-			srv_active_wake_master_thread_low();		\
-		}							\
-	} while (0)
+
 /** Wake up the master thread if it is suspended or being suspended. */
 void
 srv_wake_master_thread();
diff --git a/storage/innobase/srv/srv0srv.cc b/storage/innobase/srv/srv0srv.cc
index 44c07693e6a..a19dd1cb425 100644
--- a/storage/innobase/srv/srv0srv.cc
+++ b/storage/innobase/srv/srv0srv.cc
@@ -1980,33 +1980,6 @@ srv_get_active_thread_type(void)
 	return(ret);
 }
 
-/** Wake up the InnoDB master thread if it was suspended (not sleeping). */
-void
-srv_active_wake_master_thread_low()
-{
-	ut_ad(!srv_read_only_mode);
-	ut_ad(!srv_sys_mutex_own());
-
-	srv_inc_activity_count();
-
-	if (my_atomic_loadlint(&srv_sys.n_threads_active[SRV_MASTER]) == 0) {
-		srv_slot_t*	slot;
-
-		srv_sys_mutex_enter();
-
-		slot = &srv_sys.sys_threads[SRV_MASTER_SLOT];
-
-		/* Only if the master thread has been started. */
-
-		if (slot->in_use) {
-			ut_a(srv_slot_get_type(slot) == SRV_MASTER);
-			os_event_set(slot->event);
-		}
-
-		srv_sys_mutex_exit();
-	}
-}
-
 /** Wake up the purge threads if there is work to do. */
 void
 srv_wake_purge_thread_if_not_active()
@@ -2451,7 +2424,6 @@ DECLARE_THREAD(srv_master_thread)(
 	slot = srv_reserve_slot(SRV_MASTER);
 	ut_a(slot == srv_sys.sys_threads);
 
-loop:
 	while (srv_shutdown_state == SRV_SHUTDOWN_NONE) {
 
 		srv_master_sleep();
@@ -2484,19 +2456,7 @@ DECLARE_THREAD(srv_master_thread)(
 		my_thread_end();
 		os_thread_exit();
 	}
-
-	srv_main_thread_op_info = "suspending";
-
-	srv_suspend_thread(slot);
-
-	/* DO NOT CHANGE THIS STRING. innobase_start_or_create_for_mysql()
-	waits for database activity to die down when converting < 4.1.x
-	databases, and relies on this string being exactly as it is. InnoDB
-	manual also mentions this string in several places. */
-	srv_main_thread_op_info = "waiting for server activity";
-
-	srv_resume_thread(slot);
-	goto loop;
+	OS_THREAD_DUMMY_RETURN;
 }
 
 /** Check if purge should stop.
diff --git a/storage/innobase/trx/trx0roll.cc b/storage/innobase/trx/trx0roll.cc
index b6d7aa9f380..e03b5577116 100644
--- a/storage/innobase/trx/trx0roll.cc
+++ b/storage/innobase/trx/trx0roll.cc
@@ -124,9 +124,6 @@ trx_rollback_to_savepoint_low(
 
 	mem_heap_free(heap);
 
-	/* There might be work for utility threads.*/
-	srv_active_wake_master_thread();
-
 	MONITOR_DEC(MONITOR_TRX_ACTIVE);
 }
 
diff --git a/storage/innobase/trx/trx0trx.cc b/storage/innobase/trx/trx0trx.cc
index 458165a3816..177969a5b48 100644
--- a/storage/innobase/trx/trx0trx.cc
+++ b/storage/innobase/trx/trx0trx.cc
@@ -1793,12 +1793,6 @@ trx_commit_in_memory(
 		}
 
 		trx->commit_lsn = lsn;
-
-		/* Tell server some activity has happened, since the trx
-		does changes something. Background utility threads like
-		master thread, purge thread or page_cleaner thread might
-		have some work to do. */
-		srv_active_wake_master_thread();
 	}
 
 	ut_ad(!trx->rsegs.m_noredo.undo);
