diff --git a/src/gausskernel/bootstrap/bootstrap.cpp b/src/gausskernel/bootstrap/bootstrap.cpp index fff1c855ba148deea1646f46ef094e8ff34965c7..2dbaabad659f69c9d26505cbac9ef44adfba1412 100755 --- a/src/gausskernel/bootstrap/bootstrap.cpp +++ b/src/gausskernel/bootstrap/bootstrap.cpp @@ -199,7 +199,7 @@ void BootStrapProcessMain(int argc, char* argv[]) */ srandom((unsigned int)(t_thrd.proc_cxt.MyProcPid ^ (unsigned int)t_thrd.proc_cxt.MyStartTime)); - t_thrd.proc_cxt.MyProgName = "BootStrap"; + knl_thread_set_name("BootStrap"); /* * Fire up essential subsystems: error and memory management * diff --git a/src/gausskernel/cbb/communication/libcomm.cpp b/src/gausskernel/cbb/communication/libcomm.cpp index 834c1d5b33e70a0b3b27cbe68025eff6cb349558..5365cfbf48a353fa29d798ada833a7eca63a4551 100755 --- a/src/gausskernel/cbb/communication/libcomm.cpp +++ b/src/gausskernel/cbb/communication/libcomm.cpp @@ -9529,13 +9529,13 @@ void commSenderFlowMain() /* reset MyProcPid */ t_thrd.proc_cxt.MyProcPid = gs_thread_self(); - t_thrd.proc_cxt.MyProgName = "CommSenderFlowerWorker"; + knl_thread_set_name("CommSendStream"); /* record Start Time for logging */ t_thrd.proc_cxt.MyStartTime = time(NULL); /* Identify myself via ps */ - init_ps_display("comm sender flower worker process", "", "", ""); + init_ps_display("CommSendStream worker process", "", "", ""); /* setup signal process hook */ SetupCommSignalHook(); @@ -9548,7 +9548,7 @@ void commSenderFlowMain() t_thrd.comm_cxt.g_libcomm_poller_list = g_instance.comm_cxt.pollers_cxt.g_s_poller_list->get_poller(); // get poller for monitoring network events - LIBCOMM_ELOG(LOG, "Sender flow control thread is initialized."); + LIBCOMM_ELOG(LOG, "CommSendStream thread is initialized."); sigjmp_buf local_sigjmp_buf; int curTryCounter; @@ -9613,13 +9613,13 @@ void commReceiverFlowMain() /* reset MyProcPid */ t_thrd.proc_cxt.MyProcPid = gs_thread_self(); - t_thrd.proc_cxt.MyProgName = "CommReceiverFlowerWorker"; + knl_thread_set_name("CommRcvStream"); /* record Start Time for logging */ t_thrd.proc_cxt.MyStartTime = time(NULL); /* Identify myself via ps */ - init_ps_display("comm receiver flower worker process", "", "", ""); + init_ps_display("CommRcvStream worker process", "", "", ""); /* setup signal process hook */ SetupCommSignalHook(); @@ -9651,7 +9651,7 @@ void commReceiverFlowMain() } LIBCOMM_PTHREAD_MUTEX_UNLOCK(g_instance.comm_cxt.pollers_cxt.g_r_poller_list_lock); - LIBCOMM_ELOG(LOG, "Receiver flow control thread is initialized, ready to accept on socket[%d].", ltk); + LIBCOMM_ELOG(LOG, "CommRcvStream thread is initialized, ready to accept on socket[%d].", ltk); sigjmp_buf local_sigjmp_buf; int curTryCounter; @@ -9712,13 +9712,13 @@ void commAuxiliaryMain() /* reset MyProcPid */ t_thrd.proc_cxt.MyProcPid = gs_thread_self(); - t_thrd.proc_cxt.MyProgName = "CommAuxiliaryFlowerWorker"; + knl_thread_set_name("CommAuxStream"); /* record Start Time for logging */ t_thrd.proc_cxt.MyStartTime = time(NULL); /* Identify myself via ps */ - init_ps_display("comm auxiliary worker process", "", "", ""); + init_ps_display("CommAuxStream worker process", "", "", ""); /* setup signal process hook */ SetupCommSignalHook(); @@ -9732,7 +9732,7 @@ void commAuxiliaryMain() uint64 last_print_time; last_print_time = mc_timers_ms(); - LIBCOMM_ELOG(LOG, "Receiver flow control auxiliary thread is initialized."); + LIBCOMM_ELOG(LOG, "CommAuxStream thread is initialized."); sigjmp_buf local_sigjmp_buf; int curTryCounter; @@ -9792,13 +9792,13 @@ void init_clean_pooler_idle_connections() /* reset t_thrd.proc_cxt.MyProcPid */ t_thrd.proc_cxt.MyProcPid = gs_thread_self(); - t_thrd.proc_cxt.MyProgName = "commPoolerCleaner"; + knl_thread_set_name("CommPoolCleaner"); /* record Start Time for logging */ t_thrd.proc_cxt.MyStartTime = time(NULL); /* Identify myself via ps */ - init_ps_display("pooler cleaner process", "", "", ""); + init_ps_display("CommPoolCleaner process", "", "", ""); /* set processing mode */ SetProcessingMode(InitProcessing); @@ -9933,13 +9933,13 @@ void commReceiverMain(void* tid_callback) /* reset MyProcPid */ t_thrd.proc_cxt.MyProcPid = gs_thread_self(); - t_thrd.proc_cxt.MyProgName = "CommReceiverWorker"; + knl_thread_set_name("CommRcvWorker"); /* record Start Time for logging */ t_thrd.proc_cxt.MyStartTime = time(NULL); /* Identify myself via ps */ - init_ps_display("comm receiver worker process", "", "", ""); + init_ps_display("CommRcvWorker process", "", "", ""); /* setup signal process hook */ SetupCommSignalHook(); @@ -9960,7 +9960,7 @@ void commReceiverMain(void* tid_callback) &g_instance.comm_cxt.pollers_cxt.g_libcomm_receiver_poller_list[selfid]; LIBCOMM_PTHREAD_MUTEX_UNLOCK(g_instance.comm_cxt.pollers_cxt.g_r_libcomm_poller_list_lock); - LIBCOMM_ELOG(LOG, "Receiver data receiving thread[%d] is initialized.", selfid + 1); + LIBCOMM_ELOG(LOG, "CommRcvWorker thread[%d] is initialized.", selfid + 1); sigjmp_buf local_sigjmp_buf; int curTryCounter; diff --git a/src/gausskernel/cbb/instruments/percentile/percentile.cpp b/src/gausskernel/cbb/instruments/percentile/percentile.cpp index eb1659960f071fcbbc097eb0f6e861c664018b9d..8aa6fb3af2d0d7972379f1783eb4e25616aaf900 100644 --- a/src/gausskernel/cbb/instruments/percentile/percentile.cpp +++ b/src/gausskernel/cbb/instruments/percentile/percentile.cpp @@ -154,14 +154,14 @@ NON_EXEC_STATIC void PercentileMain() t_thrd.proc_cxt.MyProcPid = gs_thread_self(); /* record Start Time for logging */ t_thrd.proc_cxt.MyStartTime = time(NULL); - t_thrd.proc_cxt.MyProgName = "getpercentile"; + knl_thread_set_name("PercentileJob"); if (u_sess->proc_cxt.MyProcPort->remote_host) { pfree(u_sess->proc_cxt.MyProcPort->remote_host); } u_sess->proc_cxt.MyProcPort->remote_host = pstrdup("localhost"); u_sess->attr.attr_common.application_name = pstrdup("PercentileJob"); /* Identify myself via ps */ - init_ps_display("instrumention percentile process", "", "", ""); + init_ps_display("PercentileJob process", "", "", ""); SetProcessingMode(InitProcessing); PercentileSpace::init_gspqsignal(); /* Early initialization */ diff --git a/src/gausskernel/cbb/instruments/wdr/snapshot.cpp b/src/gausskernel/cbb/instruments/wdr/snapshot.cpp index 67a30616b665d831cda708ec1fdf9f9f5cf3a640..3cc66a4c1ba52f24b831fc08dac4d8c8619cf075 100644 --- a/src/gausskernel/cbb/instruments/wdr/snapshot.cpp +++ b/src/gausskernel/cbb/instruments/wdr/snapshot.cpp @@ -1334,7 +1334,7 @@ static void SetMyproc() /* record Start Time for logging */ t_thrd.proc_cxt.MyStartTime = time(NULL); - t_thrd.proc_cxt.MyProgName = "WDRSnapshot"; + knl_thread_set_name("WDRSnapshot"); u_sess->attr.attr_common.application_name = pstrdup("WDRSnapshot"); } /* diff --git a/src/gausskernel/cbb/workload/cpwlm.cpp b/src/gausskernel/cbb/workload/cpwlm.cpp index 3c9faeb4fe04750b6fca115473e2f06c990bdf44..4c947b4250bae4bebedbc3b5a08504de5267b446 100755 --- a/src/gausskernel/cbb/workload/cpwlm.cpp +++ b/src/gausskernel/cbb/workload/cpwlm.cpp @@ -1795,7 +1795,7 @@ static void NormalBackendInit() /* record Start Time for logging */ t_thrd.proc_cxt.MyStartTime = time(NULL); - t_thrd.proc_cxt.MyProgName = "CPmonitor"; + knl_thread_set_name("CpMonitor"); if (u_sess->proc_cxt.MyProcPort->remote_host) { pfree(u_sess->proc_cxt.MyProcPort->remote_host); @@ -1804,7 +1804,7 @@ static void NormalBackendInit() u_sess->proc_cxt.MyProcPort->remote_host = pstrdup("localhost"); /* Identify myself via ps */ - init_ps_display("compute pool monitor process", "", "", ""); + init_ps_display("CpMonitor process", "", "", ""); /* release all connections on exit. */ if (IS_PGXC_COORDINATOR && IsPostmasterEnvironment) { diff --git a/src/gausskernel/cbb/workload/ioschdl.cpp b/src/gausskernel/cbb/workload/ioschdl.cpp index 7e48d0215ff46fba0f85bf873a668287d31c9b5a..a9e51ea52dd9e5fcf7d6a99df60ef4be9b07a806 100644 --- a/src/gausskernel/cbb/workload/ioschdl.cpp +++ b/src/gausskernel/cbb/workload/ioschdl.cpp @@ -1104,7 +1104,7 @@ NON_EXEC_STATIC void WLMmonitorMain(void) /* record Start Time for logging */ t_thrd.proc_cxt.MyStartTime = time(NULL); - t_thrd.proc_cxt.MyProgName = "WLMmonitor"; + knl_thread_set_name("WlmMonitor"); if (u_sess->proc_cxt.MyProcPort->remote_host) { pfree(u_sess->proc_cxt.MyProcPort->remote_host); @@ -1113,7 +1113,7 @@ NON_EXEC_STATIC void WLMmonitorMain(void) u_sess->proc_cxt.MyProcPort->remote_host = pstrdup("localhost"); /* Identify myself via ps */ - init_ps_display("wlm monitor worker process", "", "", ""); + init_ps_display("WlmMonitor worker process", "", "", ""); SetProcessingMode(InitProcessing); @@ -1278,7 +1278,7 @@ NON_EXEC_STATIC void WLMmonitorMain(void) /* wait until g_statManager is available */ while (!WLMIsInfoInit()) { if (t_thrd.wlm_cxt.wlm_got_sigterm) { - ereport(LOG, (errmsg("WLMmonitor thread exit!"))); + ereport(LOG, (errmsg("WlmMonitor thread exit!"))); t_thrd.wlm_cxt.wlm_got_sigterm = false; proc_exit(0); } @@ -1288,7 +1288,7 @@ NON_EXEC_STATIC void WLMmonitorMain(void) /* * Identify myself via ps */ - ereport(LOG, (errmsg("WLMmonitor thread is starting up."))); + ereport(LOG, (errmsg("WlmMonitor thread is starting up."))); // initialize thread WLMmonitor_init(); @@ -1411,7 +1411,7 @@ NON_EXEC_STATIC void WLMarbiterMain(void) /* record Start Time for logging */ t_thrd.proc_cxt.MyStartTime = time(NULL); - t_thrd.proc_cxt.MyProgName = "WLMarbiter"; + knl_thread_set_name("WlmArbiter"); if (u_sess->proc_cxt.MyProcPort->remote_host != NULL) { pfree(u_sess->proc_cxt.MyProcPort->remote_host); @@ -1420,7 +1420,7 @@ NON_EXEC_STATIC void WLMarbiterMain(void) u_sess->proc_cxt.MyProcPort->remote_host = pstrdup("localhost"); /* Identify myself via ps */ - init_ps_display("wlm arbiter worker process", "", "", ""); + init_ps_display("WlmArbiter worker process", "", "", ""); SetProcessingMode(InitProcessing); @@ -1586,7 +1586,7 @@ NON_EXEC_STATIC void WLMarbiterMain(void) /* wait until g_statManager is available */ while (!WLMIsInfoInit()) { if (t_thrd.wlm_cxt.wlm_got_sigterm) { - ereport(LOG, (errmsg("WLMarbiter thread exit!"))); + ereport(LOG, (errmsg("WlmArbiter thread exit!"))); t_thrd.wlm_cxt.wlm_got_sigterm = false; proc_exit(0); } @@ -1596,7 +1596,7 @@ NON_EXEC_STATIC void WLMarbiterMain(void) /* * Identify myself via ps */ - ereport(LOG, (errmsg("WLMarbiter thread is starting up."))); + ereport(LOG, (errmsg("WlmArbiter thread is starting up."))); // main loop of the thread WLMarbiter_MainLoop(); diff --git a/src/gausskernel/cbb/workload/statctl.cpp b/src/gausskernel/cbb/workload/statctl.cpp index 600ac790bc5e4fd82613ab9b08adcad155043052..0264017be91717b4f7d3fb7df18580275662cf25 100644 --- a/src/gausskernel/cbb/workload/statctl.cpp +++ b/src/gausskernel/cbb/workload/statctl.cpp @@ -7495,7 +7495,7 @@ int WLMProcessThreadMain(void) /* record Start Time for logging */ t_thrd.proc_cxt.MyStartTime = time(NULL); - t_thrd.proc_cxt.MyProgName = "WLMCollectWorker"; + knl_thread_set_name("WlmCollector"); if (u_sess->proc_cxt.MyProcPort->remote_host) { pfree(u_sess->proc_cxt.MyProcPort->remote_host); @@ -7504,7 +7504,7 @@ int WLMProcessThreadMain(void) u_sess->proc_cxt.MyProcPort->remote_host = pstrdup("localhost"); /* Identify myself via ps */ - init_ps_display("wlm collect worker process", "", "", ""); + init_ps_display("WlmCollector worker process", "", "", ""); SetProcessingMode(InitProcessing); @@ -7665,7 +7665,7 @@ int WLMProcessThreadMain(void) /* init transaction to execute query */ WLMInitTransaction(&backinit); - ereport(LOG, (errmsg("process wlm thread starting up."))); + ereport(LOG, (errmsg("WlmCollector thread starting up."))); /* build user info and resource pool hash table if does not exist */ if (!g_instance.wlm_cxt->stat_manager.infoinit) { @@ -7891,7 +7891,7 @@ int WLMProcessThreadMain(void) backinit = false; - ereport(DEBUG1, (errmsg("exit wlm worker thread!"))); + ereport(DEBUG1, (errmsg("exit WlmCollector thread!"))); return 0; } diff --git a/src/gausskernel/process/job/job_scheduler.cpp b/src/gausskernel/process/job/job_scheduler.cpp index c74f55423a7a6de84cc445eb84a769aa0b6ac502..71f142f2ac69a8cf084476aa75a1e41fadf60376 100644 --- a/src/gausskernel/process/job/job_scheduler.cpp +++ b/src/gausskernel/process/job/job_scheduler.cpp @@ -122,14 +122,14 @@ NON_EXEC_STATIC void JobScheduleMain() /* reset t_thrd.proc_cxt.MyProcPid */ t_thrd.proc_cxt.MyProcPid = gs_thread_self(); - t_thrd.proc_cxt.MyProgName = "JobScheduler"; + knl_thread_set_name("JobScheduler"); u_sess->attr.attr_common.application_name = pstrdup("JobScheduler"); /* record Start Time for logging */ t_thrd.proc_cxt.MyStartTime = time(NULL); /* Identify myself via ps */ - init_ps_display("job scheduler process", "", "", ""); + init_ps_display("JobScheduler process", "", "", ""); elog(LOG, "job scheduler started"); @@ -303,7 +303,7 @@ NON_EXEC_STATIC void JobScheduleMain() if (t_thrd.job_cxt.got_SIGTERM) { /* Normal exit */ - ereport(LOG, (errmsg("job scheduler is shutting down"))); + ereport(LOG, (errmsg("JobScheduler is shutting down"))); t_thrd.job_cxt.JobScheduleShmem->jsch_pid = 0; @@ -359,7 +359,7 @@ NON_EXEC_STATIC void JobScheduleMain() * necessity for manual cleanup of all postmaster children. */ if ((unsigned int)ret & WL_POSTMASTER_DEATH) { - elog(LOG, "Job scheduler shutting down with exit code 1"); + elog(LOG, "JobScheduler shutting down with exit code 1"); proc_exit(1); } @@ -463,7 +463,7 @@ NON_EXEC_STATIC void JobScheduleMain() } /* Normal exit */ - ereport(LOG, (errmsg("job scheduler is shutting down"))); + ereport(LOG, (errmsg("JobScheduler is shutting down"))); t_thrd.job_cxt.JobScheduleShmem->jsch_pid = 0; diff --git a/src/gausskernel/process/job/job_worker.cpp b/src/gausskernel/process/job/job_worker.cpp index 561708e1379ee939ed1b476bfd402e564c92e3bd..abda51d5800a865f25956998427974bf114f92eb 100644 --- a/src/gausskernel/process/job/job_worker.cpp +++ b/src/gausskernel/process/job/job_worker.cpp @@ -161,13 +161,13 @@ void JobExecuteWorkerMain() /* reset t_thrd.proc_cxt.MyProcPid */ t_thrd.proc_cxt.MyProcPid = gs_thread_self(); - t_thrd.proc_cxt.MyProgName = "JobExecuteWorker"; + knl_thread_set_name("JobExecutor"); /* record Start Time for logging */ t_thrd.proc_cxt.MyStartTime = time(NULL); /* Identify myself via ps */ - init_ps_display("Job worker process", "", "", ""); + init_ps_display("JobExecutor worker process", "", "", ""); /* set processing mode */ SetProcessingMode(InitProcessing); @@ -220,7 +220,7 @@ void JobExecuteWorkerMain() EmitErrorReport(); if (job_id > 0) { - ereport(LOG, (errmsg("job worker with job id %d shutdown abnormaly", job_id))); + ereport(LOG, (errmsg("JobExecutor with job id %d shutdown abnormaly", job_id))); } (void)MemoryContextSwitchTo(t_thrd.mem_cxt.msg_mem_cxt); @@ -269,12 +269,12 @@ void JobExecuteWorkerMain() /* setup shared memory hook */ on_shmem_exit(FreeJobWorkerInfo, 0); on_shmem_exit(PGXCNodeCleanAndRelease, 0); - ereport(LOG, (errmsg("job worker started with job id: %d", job_id))); + ereport(LOG, (errmsg("JobExecutor started with job id: %d", job_id))); } else { LWLockRelease(JobShmemLock); /* no worker entry for me, go away */ - ereport(WARNING, (errmsg("job worker started wihtout worker entry"))); + ereport(WARNING, (errmsg("JobExecutor started wihtout worker entry"))); proc_exit(0); } @@ -326,7 +326,7 @@ void JobExecuteWorkerMain() /* execute job procedure */ elog(LOG, "Job is running, worker: %lu, job id: %d", t_thrd.proc_cxt.MyProcPid, job_id); execute_job(job_id); - elog(LOG, "Job worker is shutdown normal."); + elog(LOG, "JobExecutor is shutdown normal."); MemoryContextResetAndDeleteChildren(t_thrd.mem_cxt.msg_mem_cxt); diff --git a/src/gausskernel/process/postmaster/aiocompleter.cpp b/src/gausskernel/process/postmaster/aiocompleter.cpp index 6eb825c229e0ac66ad14aca50cade1f9673d69cc..437da15b6d5a73ec98c6c7b0187c6273d903fe7c 100755 --- a/src/gausskernel/process/postmaster/aiocompleter.cpp +++ b/src/gausskernel/process/postmaster/aiocompleter.cpp @@ -467,6 +467,8 @@ void AioCompltrMain(int ac, char** av) /* compltrIdx identifies this thread. */ int compltrIdx = atoi(av[3]); + knl_thread_set_name("AioWorker"); + /* * Global thread local shortcuts to the completer descriptor * in the compltrArray, these are assigned on entry. @@ -528,7 +530,7 @@ void AioCompltrMain(int ac, char** av) (void)gs_signal_unblock_sigusr2(); /* Announce that the Completer has been started */ - ereport(LOG, (errmsg("AIO Completer %d STARTED.", compltrIdx))); + ereport(LOG, (errmsg("AioWorker %d STARTED.", compltrIdx))); for (;;) { int eventsReceived; @@ -551,7 +553,7 @@ void AioCompltrMain(int ac, char** av) if (t_thrd.aio_cxt.shutdown_requested) { timeout = shutdown_timeout; - ereport(LOG, (errmsg("AIO Completer %d EXITED.", compltrIdx))); + ereport(LOG, (errmsg("AioWorker %d EXITED.", compltrIdx))); proc_exit(0); } @@ -575,7 +577,7 @@ void AioCompltrMain(int ac, char** av) */ if (eventsReceived < 0) { /* Report error */ - ereport(PANIC, (errmsg("AIO Completer io_getevents() failed: error %d .", eventsReceived))); + ereport(PANIC, (errmsg("AioWorker io_getevents() failed: error %d .", eventsReceived))); } Assert(eventsReceived <= max_nr); @@ -590,7 +592,7 @@ void AioCompltrMain(int ac, char** av) } } - ereport(LOG, (errmsg("AIO Completer %d EXITED.", compltrIdx))); + ereport(LOG, (errmsg("AioWorker %d EXITED.", compltrIdx))); exit(0); } diff --git a/src/gausskernel/process/postmaster/alarmchecker.cpp b/src/gausskernel/process/postmaster/alarmchecker.cpp index 4c3e2dc541f0db3ca439df2348f3c0777f74539d..55d849325c93419e4ef6bb8029a4bb9ac3044e53 100755 --- a/src/gausskernel/process/postmaster/alarmchecker.cpp +++ b/src/gausskernel/process/postmaster/alarmchecker.cpp @@ -119,12 +119,12 @@ NON_EXEC_STATIC void AlarmCheckerMain() t_thrd.proc_cxt.MyStartTime = time(NULL); /* reord my name */ - t_thrd.proc_cxt.MyProgName = "AlarmChecker"; + knl_thread_set_name("AlarmChecker"); /* Identify myself via ps */ init_ps_display("AlarmChecker", "", "", ""); - AlarmLog(ALM_LOG, "alarm checker started."); + AlarmLog(ALM_LOG, "AlarmChecker started."); InitializeLatchSupport(); /* needed for latch waits */ @@ -189,7 +189,7 @@ NON_EXEC_STATIC void AlarmCheckerMain() (void)WaitLatch(&t_thrd.alarm_cxt.AlarmCheckerLatch, WL_LATCH_SET | WL_TIMEOUT, AlarmCheckInterval * 1000); } - AlarmLog(ALM_LOG, "alarm checker shutting down..."); + AlarmLog(ALM_LOG, "AlarmChecker shutting down..."); proc_exit(0); } diff --git a/src/gausskernel/process/postmaster/autovacuum.cpp b/src/gausskernel/process/postmaster/autovacuum.cpp index d7e4a5ef848636e21b625d710053384e1665e5bc..458bc4933b180fccce08e4ff6d00bd1396fd15c7 100755 --- a/src/gausskernel/process/postmaster/autovacuum.cpp +++ b/src/gausskernel/process/postmaster/autovacuum.cpp @@ -356,12 +356,12 @@ NON_EXEC_STATIC void AutoVacLauncherMain() /* record Start Time for logging */ t_thrd.proc_cxt.MyStartTime = time(NULL); - t_thrd.proc_cxt.MyProgName = "AutoVacLauncher"; + knl_thread_set_name("AutoVacLauncher"); /* Identify myself via ps */ - init_ps_display("autovacuum launcher process", "", "", ""); + init_ps_display("AutoVacLauncher process", "", "", ""); - ereport(LOG, (errmsg("autovacuum launcher started"))); + ereport(LOG, (errmsg("AutoVacLauncher started"))); if (u_sess->attr.attr_security.PostAuthDelay) pg_usleep(u_sess->attr.attr_security.PostAuthDelay * 1000000L); @@ -708,7 +708,7 @@ NON_EXEC_STATIC void AutoVacLauncherMain() /* Normal exit from the autovac launcher is here */ shutdown: - ereport(LOG, (errmsg("autovacuum launcher shutting down"))); + ereport(LOG, (errmsg("AutoVacLauncher shutting down"))); t_thrd.autovacuum_cxt.AutoVacuumShmem->av_launcherpid = 0; proc_exit(0); /* done */ @@ -1299,10 +1299,10 @@ NON_EXEC_STATIC void AutoVacWorkerMain() /* record Start Time for logging */ t_thrd.proc_cxt.MyStartTime = time(NULL); - t_thrd.proc_cxt.MyProgName = "AutoVacWorker"; + knl_thread_set_name("AutoVacWorker"); /* Identify myself via ps */ - init_ps_display("autovacuum worker process", "", "", ""); + init_ps_display("AutoVacWorker process", "", "", ""); SetProcessingMode(InitProcessing); @@ -1431,7 +1431,7 @@ NON_EXEC_STATIC void AutoVacWorkerMain() gs_signal_send(t_thrd.autovacuum_cxt.AutoVacuumShmem->av_launcherpid, SIGUSR2); } else { /* no worker entry for me, go away */ - ereport(WARNING, (errmsg("autovacuum worker started without a worker entry"))); + ereport(WARNING, (errmsg("AutoVacWorker started without a worker entry"))); dbid = InvalidOid; LWLockRelease(AutovacuumLock); } diff --git a/src/gausskernel/process/postmaster/bgwriter.cpp b/src/gausskernel/process/postmaster/bgwriter.cpp index c490f95a6ff7bc80852e3e272701903d84ea756a..722520bbdb229bbf733409989a06dd3f7322c106 100755 --- a/src/gausskernel/process/postmaster/bgwriter.cpp +++ b/src/gausskernel/process/postmaster/bgwriter.cpp @@ -104,7 +104,9 @@ void BackgroundWriterMain(void) t_thrd.role = BGWRITER; - ereport(LOG, (errmsg("bgwriter started"))); + knl_thread_set_name("BgWriter"); + + ereport(LOG, (errmsg("BgWriter started"))); /* * Properly accept or ignore signals the postmaster might send us. diff --git a/src/gausskernel/process/postmaster/cbmwriter.cpp b/src/gausskernel/process/postmaster/cbmwriter.cpp index f434ca52b46ca3a2706b05205fbaf5a13f997bc5..45ea2365f25322d3cb7afc679cf5d8ecead7e860 100755 --- a/src/gausskernel/process/postmaster/cbmwriter.cpp +++ b/src/gausskernel/process/postmaster/cbmwriter.cpp @@ -61,7 +61,9 @@ void CBMWriterMain(void) sigjmp_buf local_sigjmp_buf; ResourceOwner cbmwriter_resourceOwner; - ereport(LOG, (errmsg("cbm writer started"))); + knl_thread_set_name("CBMWriter"); + + ereport(LOG, (errmsg("CBMWriter started"))); u_sess->attr.attr_storage.CheckPointTimeout = g_instance.attr.attr_storage.enableIncrementalCheckpoint ? u_sess->attr.attr_storage.incrCheckPointTimeout : u_sess->attr.attr_storage.fullCheckPointTimeout; diff --git a/src/gausskernel/process/postmaster/checkpointer.cpp b/src/gausskernel/process/postmaster/checkpointer.cpp index cd2c2e1b6a96057ef3d6ae65a4df14d823e320e4..9c5c0668a2f64f2358785bf11eba4a9708412770 100755 --- a/src/gausskernel/process/postmaster/checkpointer.cpp +++ b/src/gausskernel/process/postmaster/checkpointer.cpp @@ -184,8 +184,11 @@ void CheckpointerMain(void) u_sess->attr.attr_storage.CheckPointTimeout = g_instance.attr.attr_storage.enableIncrementalCheckpoint ? u_sess->attr.attr_storage.incrCheckPointTimeout : u_sess->attr.attr_storage.fullCheckPointTimeout; + + knl_thread_set_name("Checkpointer"); + ereport( - LOG, (errmsg("checkpointer started, CheckPointTimeout is %d", u_sess->attr.attr_storage.CheckPointTimeout))); + LOG, (errmsg("Checkpointer started, CheckPointTimeout is %d", u_sess->attr.attr_storage.CheckPointTimeout))); /* * Properly accept or ignore signals the postmaster might send us diff --git a/src/gausskernel/process/postmaster/fencedudf.cpp b/src/gausskernel/process/postmaster/fencedudf.cpp index 513ed8640066f6c26be8c2d9afdd4d8f144a6e17..e8cf7bb6cda85953004864c1b17932f3ed798c6d 100755 --- a/src/gausskernel/process/postmaster/fencedudf.cpp +++ b/src/gausskernel/process/postmaster/fencedudf.cpp @@ -224,6 +224,8 @@ void FencedUDFMasterMain(int argc, char* argv[]) u_sess->attr.attr_common.update_process_title = true; set_ps_display("gaussdb fenced UDF master process", true); + knl_thread_set_name("FencedUDFMaster"); + /* Step 1: Initialize envrionment: signal handle, display info */ gs_signal_setmask(&t_thrd.libpq_cxt.BlockSig, NULL); gs_signal_block_sigusr2(); @@ -272,7 +274,7 @@ void FencedUDFMasterMain(int argc, char* argv[]) ereport(FATAL, (errmodule(MOD_UDF), errmsg("listen socket failed: %m"))); } - ereport(LOG, (errmodule(MOD_UDF), errmsg("Fenced master process start OK."))); + ereport(LOG, (errmodule(MOD_UDF), errmsg("FencedUDFMaster process start OK."))); /* Step 3: ServerLoop for accept connection and start worker process */ UDFMasterServerLoop(); diff --git a/src/gausskernel/process/postmaster/lwlockmonitor.cpp b/src/gausskernel/process/postmaster/lwlockmonitor.cpp index f05dccae5c44dae224561fece3dd1c499ca530c4..8608f5eed0201a9ed365307e9f87331eb0d5c5ec 100755 --- a/src/gausskernel/process/postmaster/lwlockmonitor.cpp +++ b/src/gausskernel/process/postmaster/lwlockmonitor.cpp @@ -609,7 +609,9 @@ NON_EXEC_STATIC void FaultMonitorMain() t_thrd.proc_cxt.MyProcPid = gs_thread_self(); - ereport(DEBUG5, (errmsg("lwlockmonitor process is started: %lu", t_thrd.proc_cxt.MyProcPid))); + knl_thread_set_name("LWLockMonitor"); + + ereport(DEBUG5, (errmsg("LWLockMonitor process is started: %lu", t_thrd.proc_cxt.MyProcPid))); (void)gspqsignal(SIGHUP, LWLockMonitorSigHupHandler); /* set flag to read config file */ (void)gspqsignal(SIGINT, LWLockMonitorShutdownHandler); /* request shutdown */ diff --git a/src/gausskernel/process/postmaster/pagewriter.cpp b/src/gausskernel/process/postmaster/pagewriter.cpp index 555a5c56ad2d30ad53a58340a6299ad2c1d3ce29..fa8feb17f358817100b4ddeae4742fc1be010c29 100644 --- a/src/gausskernel/process/postmaster/pagewriter.cpp +++ b/src/gausskernel/process/postmaster/pagewriter.cpp @@ -885,9 +885,11 @@ void ckpt_pagewriter_main(void) /* We allow SIGQUIT (quickdie) at all times */ (void)sigdelset(&t_thrd.libpq_cxt.BlockSig, SIGQUIT); + knl_thread_set_name("PageWriter"); + ereport(LOG, (errmodule(MOD_INCRE_CKPT), - errmsg("pagewriter started, thread id is %d", t_thrd.pagewriter_cxt.pagewriter_id))); + errmsg("PageWriter started, thread id is %d", t_thrd.pagewriter_cxt.pagewriter_id))); /* * Create a resource owner to keep track of our resources (currently only diff --git a/src/gausskernel/process/postmaster/pgarch.cpp b/src/gausskernel/process/postmaster/pgarch.cpp index 25a2c9bc0fea12308da26b05dcde7b87ad49e282..1a4770a5b52041350012f99160875ebb7dedf8da 100755 --- a/src/gausskernel/process/postmaster/pgarch.cpp +++ b/src/gausskernel/process/postmaster/pgarch.cpp @@ -168,11 +168,11 @@ NON_EXEC_STATIC void PgArchiverMain() t_thrd.proc_cxt.MyStartTime = time(NULL); /* record Start Time for logging */ - t_thrd.proc_cxt.MyProgName = "PgArchiver"; + knl_thread_set_name("Archiver"); t_thrd.myLogicTid = noProcLogicTid + PGARCH_LID; - ereport(LOG, (errmsg("PgArchiver started"))); + ereport(LOG, (errmsg("Archiver started"))); InitializeLatchSupport(); /* needed for latch waits */ @@ -202,7 +202,7 @@ NON_EXEC_STATIC void PgArchiverMain() /* * Identify myself via ps */ - init_ps_display("archiver process", "", "", ""); + init_ps_display("Archiver process", "", "", ""); pgarch_MainLoop(); diff --git a/src/gausskernel/process/postmaster/pgaudit.cpp b/src/gausskernel/process/postmaster/pgaudit.cpp index 3e46526072280e28b6a1b2e8a4ff5a3fe8253ab9..1f799e4415ccd559e82ffdcc8345ee40edc64d94 100755 --- a/src/gausskernel/process/postmaster/pgaudit.cpp +++ b/src/gausskernel/process/postmaster/pgaudit.cpp @@ -374,7 +374,9 @@ NON_EXEC_STATIC void PgAuditorMain() t_thrd.role = AUDIT; - init_ps_display("auditor process", "", "", ""); + knl_thread_set_name("Auditor"); + + init_ps_display("Auditor process", "", "", ""); /* * Also close our copy of the write end of the pipe. This is needed to @@ -600,7 +602,7 @@ NON_EXEC_STATIC void PgAuditorMain() * seeing this message on the real stderr is annoying - so we make * it DEBUG1 to suppress in normal use. */ - ereport(DEBUG1, (errmsg("auditor shutting down"))); + ereport(DEBUG1, (errmsg("Auditor shutting down"))); pgaudit_cleanup(); pgaudit_update_indexfile(PG_BINARY_W, true); diff --git a/src/gausskernel/process/postmaster/pgstat.cpp b/src/gausskernel/process/postmaster/pgstat.cpp index 561b7636e95f1015a8b10b73ccda27ab7e3d927e..5bd2b9535d23d016393fc56bdc7c50a005c258af 100644 --- a/src/gausskernel/process/postmaster/pgstat.cpp +++ b/src/gausskernel/process/postmaster/pgstat.cpp @@ -4928,7 +4928,7 @@ void PgstatCollectorMain() t_thrd.proc_cxt.MyStartTime = time(NULL); /* record Start Time for logging */ - t_thrd.proc_cxt.MyProgName = "PgstatCollector"; + knl_thread_set_name("StatCollector"); t_thrd.myLogicTid = noProcLogicTid + PGSTAT_LID; @@ -4960,7 +4960,7 @@ void PgstatCollectorMain() /* * Identify myself via ps */ - init_ps_display("stats collector process", "", "", ""); + init_ps_display("StatCollector process", "", "", ""); /* * Arrange to write the initial status file right away diff --git a/src/gausskernel/process/postmaster/postmaster.cpp b/src/gausskernel/process/postmaster/postmaster.cpp index 95dcfea0e005dbd1d9fdd740f0aa9a7d682c116b..d01e8fcd51532e8732e82214dac7a7f054de7004 100755 --- a/src/gausskernel/process/postmaster/postmaster.cpp +++ b/src/gausskernel/process/postmaster/postmaster.cpp @@ -1092,7 +1092,7 @@ int PostmasterMain(int argc, char* argv[]) IsPostmasterEnvironment = true; - t_thrd.proc_cxt.MyProgName = "gaussmaster"; + knl_thread_set_name("GaussMaster"); /* * for security, no dir or file created can be group or other accessible @@ -7346,12 +7346,12 @@ void ReaperBackendMain() t_thrd.proc_cxt.MyStartTime = time(NULL); /* reord my name */ - t_thrd.proc_cxt.MyProgName = "ReaperBackend"; + knl_thread_set_name("Reaper"); /* Identify myself via ps */ - init_ps_display("ReaperBackend", "", "", ""); + init_ps_display("Reaper", "", "", ""); - ereport(LOG, (errmsg("reaper backend started."))); + ereport(LOG, (errmsg("Reaper backend started."))); InitializeLatchSupport(); /* needed for latch waits */ @@ -9400,10 +9400,10 @@ int GaussDbAuxiliaryThreadMain(knl_thread_arg* arg) * can occur here. */ srandom((unsigned int)(t_thrd.proc_cxt.MyProcPid ^ (unsigned int)t_thrd.proc_cxt.MyStartTime)); - t_thrd.proc_cxt.MyProgName = "Auxiliary"; + knl_thread_set_name("AuxMain"); /* register thread information to PGPROC structure */ - init_ps_display("Auxiliary", "", "", ""); + init_ps_display("AuxMain", "", "", ""); /* Validate we have been given a reasonable-looking t_thrd.proc_cxt.DataDir */ Assert(t_thrd.proc_cxt.DataDir); diff --git a/src/gausskernel/process/postmaster/remoteservice.cpp b/src/gausskernel/process/postmaster/remoteservice.cpp index b0e158a6f15be7670e60a511a7a9afdc877d70b5..0f1c7f4f679d28cc5577163b4f1e519219f79d94 100755 --- a/src/gausskernel/process/postmaster/remoteservice.cpp +++ b/src/gausskernel/process/postmaster/remoteservice.cpp @@ -93,7 +93,9 @@ void RemoteServiceMain(void) MemoryContext remote_service_context; long cur_timeout_ms = 0; - ereport(LOG, (errmsg("remote service is starting..."))); + knl_thread_set_name("RemoteSrv"); + + ereport(LOG, (errmsg("RemoteSrv is starting..."))); /* * Properly accept or ignore signals the postmaster might send us. @@ -221,7 +223,7 @@ void RemoteServiceMain(void) /* Exit before call RunServer() */ if (t_thrd.rs_cxt.shutdown_requested) { - ereport(LOG, (errmodule(MOD_REMOTE), errmsg("remote service is closing..."))); + ereport(LOG, (errmodule(MOD_REMOTE), errmsg("RemoteSrv is closing..."))); GRPC_TRY() { ShutdownAndReleaseServer(t_thrd.rs_cxt.server_context); t_thrd.rs_cxt.server_context = NULL; diff --git a/src/gausskernel/process/postmaster/startup.cpp b/src/gausskernel/process/postmaster/startup.cpp index 8ad8110dee3128a95fad00b1dc23f5b0a27bebf1..0f1631a805a6bab76633e2cbee2604bf4729fa10 100755 --- a/src/gausskernel/process/postmaster/startup.cpp +++ b/src/gausskernel/process/postmaster/startup.cpp @@ -196,6 +196,8 @@ static void StartupReleaseAllLocks(int code, Datum arg) */ void StartupProcessMain(void) { + knl_thread_set_name("StartupProcess"); + /* * Properly accept or ignore signals the postmaster might send us. * diff --git a/src/gausskernel/process/postmaster/syslogger.cpp b/src/gausskernel/process/postmaster/syslogger.cpp index 7de07fe1206d798004b883254287119281f0e5ff..f976d46f356c2c6307601e6c33580d5f9b603d06 100755 --- a/src/gausskernel/process/postmaster/syslogger.cpp +++ b/src/gausskernel/process/postmaster/syslogger.cpp @@ -220,7 +220,7 @@ NON_EXEC_STATIC void SysLoggerMain(int fd) t_thrd.proc_cxt.MyStartTime = time(NULL); /* set our start time in case we call elog */ now = t_thrd.proc_cxt.MyStartTime; - t_thrd.proc_cxt.MyProgName = "syslogger"; + knl_thread_set_name("SysLogger"); t_thrd.myLogicTid = noProcLogicTid + SYSLOGGER_LID; @@ -228,7 +228,7 @@ NON_EXEC_STATIC void SysLoggerMain(int fd) t_thrd.role = SYSLOGGER; - init_ps_display("logger process", "", "", ""); + init_ps_display("SysLogger process", "", "", ""); /* * If we restarted, our stderr is already redirected into our own input @@ -567,7 +567,7 @@ NON_EXEC_STATIC void SysLoggerMain(int fd) * seeing this message on the real stderr is annoying - so we make * it DEBUG1 to suppress in normal use. */ - ereport(DEBUG1, (errmsg("logger shutting down"))); + ereport(DEBUG1, (errmsg("SysLogger shutting down"))); /* * Normal exit from the syslogger is here. Note that we diff --git a/src/gausskernel/process/postmaster/twophasecleaner.cpp b/src/gausskernel/process/postmaster/twophasecleaner.cpp index cb6ef4f6d7edbd2d6ab43942d37e08a3e0166241..903981c4c3ba1ab4d76aa45d2f9568764a9e82a1 100755 --- a/src/gausskernel/process/postmaster/twophasecleaner.cpp +++ b/src/gausskernel/process/postmaster/twophasecleaner.cpp @@ -71,9 +71,11 @@ NON_EXEC_STATIC void TwoPhaseCleanerMain() t_thrd.proc_cxt.MyProcPid = gs_thread_self(); + knl_thread_set_name("TwoPhaseCleaner"); + twoPhaseCleanerProc = t_thrd.proc; - ereport(DEBUG5, (errmsg("twophasecleaner process is started: %lu", t_thrd.proc_cxt.MyProcPid))); + ereport(DEBUG5, (errmsg("TwoPhaseCleaner process is started: %lu", t_thrd.proc_cxt.MyProcPid))); (void)gspqsignal(SIGHUP, TwoPCSigHupHandler); /* set flag to read config file */ (void)gspqsignal(SIGINT, TwoPCShutdownHandler); /* request shutdown */ diff --git a/src/gausskernel/process/postmaster/walwriter.cpp b/src/gausskernel/process/postmaster/walwriter.cpp index 09f85370a454b0ddd706ab8af621813caead350c..e66f1a80c6cf3bb66d4d5b52588f06923f6ecc17 100644 --- a/src/gausskernel/process/postmaster/walwriter.cpp +++ b/src/gausskernel/process/postmaster/walwriter.cpp @@ -99,7 +99,9 @@ void WalWriterMain(void) bool hibernating = false; sigset_t oldSigMask; - ereport(LOG, (errmsg("walwriter started"))); + knl_thread_set_name("WalWriter"); + + ereport(LOG, (errmsg("WalWriter started"))); /* * Properly accept or ignore signals the postmaster might send us diff --git a/src/gausskernel/process/tcop/postgres.cpp b/src/gausskernel/process/tcop/postgres.cpp index b5f166f158df1b5c9231cfe2ffe17c6a3c7703c0..5a44b28e69a1166b5fc49dd3f6098c45662b135e 100755 --- a/src/gausskernel/process/tcop/postgres.cpp +++ b/src/gausskernel/process/tcop/postgres.cpp @@ -6429,6 +6429,8 @@ int StreamMain(void* arg) t_thrd.proc_cxt.MyProcPid = gs_thread_self(); + knl_thread_set_name("Stream"); + /* * Rebind stream thread to instance bind CPU in thread pool mode. * Otherwise the stream thread will follow its parent thread's bind CPU, @@ -6948,7 +6950,7 @@ int PostgresMain(int argc, char* argv[], const char* dbname, const char* usernam t_thrd.proc_cxt.MyStartTime = time(NULL); - t_thrd.proc_cxt.MyProgName = "gaussdb"; + knl_thread_set_name("BackendMode"); /* * Initialize random() for the first time, like PostmasterMain() @@ -6958,7 +6960,7 @@ int PostgresMain(int argc, char* argv[], const char* dbname, const char* usernam */ srandom((unsigned int)(t_thrd.proc_cxt.MyProcPid ^ (unsigned int)t_thrd.proc_cxt.MyStartTime)); } else { - t_thrd.proc_cxt.MyProgName = "postgres"; + knl_thread_set_name("gaussdb"); } /* diff --git a/src/gausskernel/process/threadpool/knl_session.cpp b/src/gausskernel/process/threadpool/knl_session.cpp index fb7b013b88bdc7df99468cb051a12ecf8a5b8646..57c6b57a0067ff0df96769b6f406c3eca0029978 100755 --- a/src/gausskernel/process/threadpool/knl_session.cpp +++ b/src/gausskernel/process/threadpool/knl_session.cpp @@ -1122,3 +1122,8 @@ knl_session_context* create_session_context(MemoryContext parent, uint64 id) MemoryContextSwitchTo(old_cxt); return sess; } + +__attribute__ ((__used__)) knl_session_context *get_current_session() +{ + return u_sess; +} diff --git a/src/gausskernel/process/threadpool/knl_thread.cpp b/src/gausskernel/process/threadpool/knl_thread.cpp index 878ba9e9d61401e735e243358cccdfa9610436c9..f0e78be20f81f53087860ea6b4c4758846cfcf45 100755 --- a/src/gausskernel/process/threadpool/knl_thread.cpp +++ b/src/gausskernel/process/threadpool/knl_thread.cpp @@ -1502,3 +1502,19 @@ void knl_thread_init(knl_thread_role role) knl_t_poolcleaner_init(&t_thrd.poolcleaner_cxt); knl_t_mot_init(&t_thrd.mot_cxt); } + +void knl_thread_set_name(const char* name) +{ + t_thrd.proc_cxt.MyProgName = (char*)name; + /* + * The length of thread name is restricted to 16 characters, + * including the terminating null byte ('\0'). + */ + Assert(strlen(name) < MAX_THREAD_NAME_LENGTH); + pthread_setname_np(pthread_self(), name); +} + +__attribute__ ((__used__)) knl_thrd_context *get_current_thread() +{ + return &t_thrd; +} diff --git a/src/gausskernel/process/threadpool/threadpool_listener.cpp b/src/gausskernel/process/threadpool/threadpool_listener.cpp index 78a36e9e96619f306ff5bf8556b995af42bf5f3a..cf89ffc16cb4835b1bc8b0a8353affeca39f1efb 100755 --- a/src/gausskernel/process/threadpool/threadpool_listener.cpp +++ b/src/gausskernel/process/threadpool/threadpool_listener.cpp @@ -59,7 +59,7 @@ static void listener_sigusrl_handler(SIGNAL_ARGS) void TpoolListenerMain(ThreadPoolListener* listener) { - t_thrd.proc_cxt.MyProgName = "ThreadPoolListener"; + knl_thread_set_name("ThdPoolListener"); pgstat_report_appname("ThreadPoolListener"); (void)gspqsignal(SIGHUP, SIG_IGN); diff --git a/src/gausskernel/storage/access/transam/extreme_rto/page_redo.cpp b/src/gausskernel/storage/access/transam/extreme_rto/page_redo.cpp index 5dbcde04d0b964fa89b3cd5ad0499ec8a2c93a39..f8584b9755f597430eeb9280d96a2b1f2242184b 100644 --- a/src/gausskernel/storage/access/transam/extreme_rto/page_redo.cpp +++ b/src/gausskernel/storage/access/transam/extreme_rto/page_redo.cpp @@ -492,6 +492,9 @@ void BatchRedoMain() { void** eleArry; uint32 eleNum; + + knl_thread_set_name("RedoBatch"); + XLogParseBufferInitFunc(MAX_PARSE_BUFF_NUM, &recordRefOperate); while (SPSCBlockingQueueGetAll(g_redoWorker->queue, &eleArry, &eleNum)) { bool isEnd = BatchRedoDistributeItems(eleArry, eleNum); @@ -762,6 +765,9 @@ void RedoPageManagerMain() { void** eleArry; uint32 eleNum; + + knl_thread_set_name("RedoPageMgr"); + XLogParseBufferInitFunc(MAX_PARSE_BUFF_NUM, &recordRefOperate); while (SPSCBlockingQueueGetAll(g_redoWorker->queue, &eleArry, &eleNum)) { bool isEnd = PageManagerRedoDistributeItems(eleArry, eleNum); @@ -857,6 +863,8 @@ void WaitLsnUpdate(bool force) void TrxnManagerMain() { + knl_thread_set_name("RedoTxnMgr"); + XLogParseBufferInitFunc(MAX_PARSE_BUFF_NUM, &recordRefOperate); while (true) { HandlePageRedoInterrupts(); @@ -892,6 +900,8 @@ void TrxnWorkerProcLsnForwarder(RedoItem* lsnForwarder) void TrxnWorkMain() { + knl_thread_set_name("RedoTxnWorker"); + RedoItem* item = nullptr; MOTBeginRedoRecovery(); if (ParseStateWithoutCache()) @@ -997,6 +1007,8 @@ void RedoPageWorkerRedoBcmBlock(XLogRecParseState* procState) void RedoPageWorkerMain() { + knl_thread_set_name("RedoPageWorker"); + XLogRecParseState* redoblockstateHead = nullptr; if (ParseStateWithoutCache()) XLogRedoBufferInitFunc(MAX_LOCAL_BUFF_NUM, &recordRefOperate); @@ -1306,6 +1318,8 @@ void XLogReadManagerMain() XLogReaderState* xlogreader = nullptr; XLogReaderState* newxlogreader = nullptr; + knl_thread_set_name("RedoReadMgr"); + g_recordbuffer = &g_dispatcher->recordstate; GetRecoveryLatch(); /* init readstate */ @@ -1362,6 +1376,8 @@ void XLogReadWorkerMain() uint32 waitcount = 0; const uint32 sleepTime = 50; /* 50 us */ + knl_thread_set_name("RedoReadWorker"); + g_recordbuffer = &g_dispatcher->recordstate; startreadworker = pg_atomic_read_u32(&(g_recordbuffer->startreadworker)); while (startreadworker != READ_NOTIFY_EXIT) { @@ -1538,9 +1554,11 @@ void WaitStateNormal() /* Run from the worker thread. */ void ParallelRedoThreadMain() { + knl_thread_set_name("ExtremeRTO"); + ParallelRedoThreadRegister(); ereport(LOG, - (errmsg("Page-redo-worker thread %u started, role:%u, slotId:%u.", + (errmsg("ExtremeRTO thread %u started, role:%u, slotId:%u.", g_redoWorker->id, g_redoWorker->role, g_redoWorker->slotId))); @@ -1554,7 +1572,7 @@ void ParallelRedoThreadMain() int retCode = RedoMainLoop(); ResourceManagerStop(); ereport(LOG, - (errmsg("Page-redo-worker thread %u terminated, role:%u, slotId:%u, retcode %u.", + (errmsg("ExtremeRTO thread %u terminated, role:%u, slotId:%u, retcode %u.", g_redoWorker->id, g_redoWorker->role, g_redoWorker->slotId, diff --git a/src/gausskernel/storage/access/transam/parallel_recovery/page_redo.cpp b/src/gausskernel/storage/access/transam/parallel_recovery/page_redo.cpp index 236d9e5287c2fd7819d83dc9243f21922798ee91..57bc979310a55348b45c9b0f101abf14acdd3403 100755 --- a/src/gausskernel/storage/access/transam/parallel_recovery/page_redo.cpp +++ b/src/gausskernel/storage/access/transam/parallel_recovery/page_redo.cpp @@ -247,6 +247,8 @@ void HandlePageRedoInterrupts() /* Run from the worker thread. */ void PageRedoWorkerMain() { + knl_thread_set_name("ParallelRecov"); + bool isWorkerStarting = false; SpinLockAcquire(&(g_instance.comm_cxt.predo_cxt.rwlock)); isWorkerStarting = ((g_instance.comm_cxt.predo_cxt.state == REDO_STARTING_BEGIN) ? true : false); @@ -257,11 +259,11 @@ void PageRedoWorkerMain() } SpinLockRelease(&(g_instance.comm_cxt.predo_cxt.rwlock)); if (!isWorkerStarting) { - ereport(WARNING, (errmsg("PageRedoWorkerMain Page-redo-worker %u exit.", (uint32)isWorkerStarting))); + ereport(WARNING, (errmsg("PageRedoWorkerMain ParallelRecov %u exit.", (uint32)isWorkerStarting))); SetPageWorkStateByThreadId(PAGE_REDO_WORKER_EXIT); proc_exit(0); } - ereport(LOG, (errmsg("Page-redo-worker thread %u started.", g_redoWorker->id))); + ereport(LOG, (errmsg("ParallelRecov thread %u started.", g_redoWorker->id))); SetupSignalHandlers(); InitGlobals(); @@ -274,7 +276,7 @@ void PageRedoWorkerMain() (void)MemoryContextSwitchTo(g_redoWorker->oldCtx); ResourceManagerStop(); - ereport(LOG, (errmsg("Page-redo-worker thread %u terminated, retcode %d.", g_redoWorker->id, retCode))); + ereport(LOG, (errmsg("ParallelRecov thread %u terminated, retcode %d.", g_redoWorker->id, retCode))); LastMarkReached(); pg_atomic_write_u32(&(g_instance.comm_cxt.predo_cxt.pageRedoThreadStatusList[g_redoWorker->originId].threadState), PAGE_REDO_WORKER_EXIT); diff --git a/src/gausskernel/storage/replication/catchup.cpp b/src/gausskernel/storage/replication/catchup.cpp index 519ab50bc3e266160a4cfcb8f35ac69244b975c8..8a31c5489f7111fb50dc855c2b2251604788c547 100755 --- a/src/gausskernel/storage/replication/catchup.cpp +++ b/src/gausskernel/storage/replication/catchup.cpp @@ -199,10 +199,10 @@ NON_EXEC_STATIC void CatchupMain() /* record Start Time for logging */ t_thrd.proc_cxt.MyStartTime = time(NULL); - t_thrd.proc_cxt.MyProgName = "Catchup"; + knl_thread_set_name("Catchup"); /* Identify myself via ps */ - init_ps_display("catchup process", "", "", ""); + init_ps_display("Catchup process", "", "", ""); SetProcessingMode(InitProcessing); diff --git a/src/gausskernel/storage/replication/datarcvwriter.cpp b/src/gausskernel/storage/replication/datarcvwriter.cpp index b071c6393f6399e867cd42b515996a9b04f49eab..1a9d09b14b39c17422f8f902d05eb359133ba56e 100755 --- a/src/gausskernel/storage/replication/datarcvwriter.cpp +++ b/src/gausskernel/storage/replication/datarcvwriter.cpp @@ -96,7 +96,9 @@ void DataRcvWriterMain(void) MemoryContext datarcvWriterContext; t_thrd.xlog_cxt.InRecovery = true; - ereport(LOG, (errmsg("datarcvwriter thread started"))); + knl_thread_set_name("DataRcvWriter"); + + ereport(LOG, (errmsg("DataRcvWriter thread started"))); /* * Reset some signals that are accepted by postmaster but not here */ @@ -268,7 +270,7 @@ void DataRcvWriterMain(void) ; if (t_thrd.datarcvwriter_cxt.shutdownRequested) { - ereport(LOG, (errmsg("datarcvwriter thread shut down"))); + ereport(LOG, (errmsg("DataRcvWriter thread shut down"))); /* * From here on, elog(ERROR) should end with exit(1), not send * control back to the sigsetjmp block above @@ -280,7 +282,7 @@ void DataRcvWriterMain(void) rc = WaitLatch(&t_thrd.proc->procLatch, WL_LATCH_SET | WL_TIMEOUT | WL_POSTMASTER_DEATH, (long)1000 /* ms */); if (rc & WL_POSTMASTER_DEATH) { - ereport(LOG, (errmsg("datarcvwriter thread shut down with exit code 1"))); + ereport(LOG, (errmsg("DataRcvWriter thread shut down with exit code 1"))); gs_thread_exit(1); } } diff --git a/src/gausskernel/storage/replication/datareceiver.cpp b/src/gausskernel/storage/replication/datareceiver.cpp index 7ee2137211031c802f9a3db02327af03596b320c..7d928362507db8889709402a2276fff173dedfe0 100755 --- a/src/gausskernel/storage/replication/datareceiver.cpp +++ b/src/gausskernel/storage/replication/datareceiver.cpp @@ -204,7 +204,9 @@ void DataReceiverMain(void) AssertEreport(datarcv != nullptr, MOD_FUNCTION, "datarcv should not be null"); - ereport(LOG, (errmsg("datareceiver thread started"))); + knl_thread_set_name("DataReceiver"); + + ereport(LOG, (errmsg("DataReceiver thread started"))); /* * Mark datareceiver as running in shared memory. * diff --git a/src/gausskernel/storage/replication/datasender.cpp b/src/gausskernel/storage/replication/datasender.cpp index 15d1c31e834874c6e34114c612e4ee9cdadb4281..c45fbf434702a13f18b5b8189481bff64ee54740 100755 --- a/src/gausskernel/storage/replication/datasender.cpp +++ b/src/gausskernel/storage/replication/datasender.cpp @@ -133,13 +133,13 @@ int DataSenderMain(void) { MemoryContext datasnd_context; - t_thrd.proc_cxt.MyProgName = "DataSender"; + knl_thread_set_name("DataSender"); /* Create a per-datasender data structure in shared memory */ InitDataSnd(); catchupDone = false; - ereport(LOG, (errmsg("datasender thread started"))); + ereport(LOG, (errmsg("DataSender thread started"))); /* * Create a memory context that we will do all our work in. We do this so * that we can reset the context during error recovery and thereby avoid diff --git a/src/gausskernel/storage/replication/heartbeat.cpp b/src/gausskernel/storage/replication/heartbeat.cpp index 5476003aa27c0393b64b6478736be060d8e7a3fb..3de40016b0827cfbd42bb4ddd2cbf66cb9ca3d00 100644 --- a/src/gausskernel/storage/replication/heartbeat.cpp +++ b/src/gausskernel/storage/replication/heartbeat.cpp @@ -269,7 +269,7 @@ void heartbeat_main(void) MemoryContext heartbeat_context; t_thrd.role = HEARTBEAT; - t_thrd.proc_cxt.MyProgName = "Heartbeat"; + knl_thread_set_name("Heartbeater"); heartbeat_init(); @@ -333,7 +333,7 @@ void heartbeat_main(void) gs_signal_setmask(&t_thrd.libpq_cxt.UnBlockSig, NULL); (void)gs_signal_unblock_sigusr2(); - ereport(LOG, (errmsg("heartbeat thread started"))); + ereport(LOG, (errmsg("Heartbeater thread started"))); proc_exit(server_loop()); } diff --git a/src/gausskernel/storage/replication/walrcvwriter.cpp b/src/gausskernel/storage/replication/walrcvwriter.cpp index 263d63fcc330f4d5ab222bac796ea2b6a880d87d..49112163e8b49d25212d8b96c470e1fd564d82cc 100755 --- a/src/gausskernel/storage/replication/walrcvwriter.cpp +++ b/src/gausskernel/storage/replication/walrcvwriter.cpp @@ -702,7 +702,9 @@ void walrcvWriterMain(void) sigset_t oldSigMask; MemoryContext walrcvWriterContext; - ereport(LOG, (errmsg("walrcvwriter thread started"))); + knl_thread_set_name("WalRcvWriter"); + + ereport(LOG, (errmsg("WalRcvWriter thread started"))); /* * Reset some signals that are accepted by postmaster but not here */ @@ -867,7 +869,7 @@ void walrcvWriterMain(void) ; if (t_thrd.walrcvwriter_cxt.shutdownRequested) { - ereport(LOG, (errmsg("walrcvwriter thread shut down"))); + ereport(LOG, (errmsg("WalRcvWriter thread shut down"))); /* * From here on, elog(ERROR) should end with exit(1), not send * control back to the sigsetjmp block above @@ -879,7 +881,7 @@ void walrcvWriterMain(void) rc = WaitLatch(&t_thrd.proc->procLatch, WL_LATCH_SET | WL_TIMEOUT | WL_POSTMASTER_DEATH, (long)1000 /* ms */); if (rc & WL_POSTMASTER_DEATH) { - ereport(LOG, (errmsg("walrcvwriter thread shut down with code 1"))); + ereport(LOG, (errmsg("WalRcvWriter thread shut down with code 1"))); gs_thread_exit(1); } } diff --git a/src/gausskernel/storage/replication/walreceiver.cpp b/src/gausskernel/storage/replication/walreceiver.cpp index 4db61e6f4fee5380d3ce0df8325a78cfd9f6efd1..ef626a9e7d28139e201123576a43afb5c3d937ca 100755 --- a/src/gausskernel/storage/replication/walreceiver.cpp +++ b/src/gausskernel/storage/replication/walreceiver.cpp @@ -306,7 +306,9 @@ void WalReceiverMain(void) */ Assert(walrcv != NULL); - ereport(LOG, (errmsg("walreceiver thread started"))); + knl_thread_set_name("WalReceiver"); + + ereport(LOG, (errmsg("WalReceiver thread started"))); /* Initialize walrcv buffer for walreceive optimization */ walRcvCtlBlockInit(); diff --git a/src/gausskernel/storage/replication/walsender.cpp b/src/gausskernel/storage/replication/walsender.cpp index ed3ba47a58d3d9a701f1a1a5bfac28297f0927fd..69b2938cf359d4ffcdc53c8dab536eacf79eee12 100755 --- a/src/gausskernel/storage/replication/walsender.cpp +++ b/src/gausskernel/storage/replication/walsender.cpp @@ -212,7 +212,7 @@ int WalSenderMain(void) MemoryContext walsnd_context; int nRet = 0; - t_thrd.proc_cxt.MyProgName = "WalSender"; + knl_thread_set_name("WalSender"); if (RecoveryInProgress()) { t_thrd.role = WAL_STANDBY_SENDER; } @@ -225,7 +225,7 @@ int WalSenderMain(void) /* Create a per-walsender data structure in shared memory */ InitWalSnd(); - ereport(LOG, (errmsg("walsender thread started"))); + ereport(LOG, (errmsg("WalSender thread started"))); /* * Create a memory context that we will do all our work in. We do this so * that we can reset the context during error recovery and thereby avoid diff --git a/src/include/knl/knl_thread.h b/src/include/knl/knl_thread.h index 9ae6fc788fc741bfa8ae843daede3895f2854a17..73cfcfc064387dc27407d9a819578378360cd2ac 100644 --- a/src/include/knl/knl_thread.h +++ b/src/include/knl/knl_thread.h @@ -74,6 +74,8 @@ #define RESERVE_SIZE 32 +#define MAX_THREAD_NAME_LENGTH 16 + typedef struct ResourceOwnerData* ResourceOwner; typedef struct knl_t_codegen_context { @@ -2812,5 +2814,6 @@ typedef struct knl_thrd_context { extern void knl_thread_mot_init(); extern void knl_thread_init(knl_thread_role role); extern THR_LOCAL knl_thrd_context t_thrd; +extern void knl_thread_set_name(const char* name); #endif /* SRC_INCLUDE_KNL_KNL_THRD_H_ */