diff --git a/common/utils/itti/intertask_interface.c b/common/utils/itti/intertask_interface.c index adea1fe7996ef355564a226faa27643f57ede25b..d86f7315814bc57301ec95a0751aacbf7aefdd01 100644 --- a/common/utils/itti/intertask_interface.c +++ b/common/utils/itti/intertask_interface.c @@ -709,6 +709,9 @@ int itti_create_task(task_id_t task_id, void *(*start_routine)(void *), void *ar result = pthread_create (&itti_desc.threads[thread_id].task_thread, NULL, start_routine, args_p); AssertFatal (result >= 0, "Thread creation for task %d, thread %d failed (%d)!\n", task_id, thread_id, result); + char name[16]; + snprintf( name, sizeof(name), "ITTI %d", thread_id ); + pthread_setname_np( itti_desc.threads[thread_id].task_thread, name ); itti_desc.created_tasks ++; diff --git a/common/utils/itti/intertask_interface_dump.c b/common/utils/itti/intertask_interface_dump.c index 4c4905db9fccdafd4f697603d414b684ca937f79..7775cb6fd96907c59b24bb27a6fc2269cd9462bc 100644 --- a/common/utils/itti/intertask_interface_dump.c +++ b/common/utils/itti/intertask_interface_dump.c @@ -34,6 +34,7 @@ * @author Sebastien Roux <sebastien.roux@eurecom.fr> */ +#define _GNU_SOURCE // required for pthread_setname_np() #include <pthread.h> #include <stdio.h> #include <stdlib.h> @@ -845,6 +846,7 @@ int itti_dump_init(const char * const messages_definition_xml, const char * cons if (ret < 0) { AssertFatal (0, "pthread_create failed (%d:%s)!\n", errno, strerror(errno)); } + pthread_setname_np( itti_dump_queue.itti_acceptor_thread, "ITTI acceptor" ); return 0; } diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c index 2200c953fbb38b8d3aadde9fdb6f766ea20a01a4..7e8360c61b6b8d7cc46578baf77b20c81bdb0da5 100644 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c @@ -38,6 +38,7 @@ * @ingroup pdcp */ +#define _GNU_SOURCE // required for pthread_setname_np() #include <pthread.h> #include <stdio.h> #include <stdlib.h> @@ -160,6 +161,7 @@ int pdcp_netlink_init(void) { errno, strerror(errno)); exit(EXIT_FAILURE); } + pthread_setname_np( pdcp_netlink_thread, "PDCP netlink" ); } return 0; } diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c index 7248be01eb43905f471646fa99aa7d5aeb4483df..455e0ded4ada93f06f07ce695a3f3007a89cf2ba 100644 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c @@ -133,6 +133,7 @@ int init_pdcp_thread(void) { } else { LOG_I(PDCP,"Allocate PDCP thread successful\n"); + pthread_setname_np( pdcp_thread, "PDCP" ); } return(0); } diff --git a/openair2/RRM_4_RRC_LITE/src/com/rrc/RRCMessageHandler.cpp b/openair2/RRM_4_RRC_LITE/src/com/rrc/RRCMessageHandler.cpp index 64add3536ff405ee5164fa7b18a4b53a10f22493..60cf352a9a96a2bd7e7b14312680f8a16ae765a5 100755 --- a/openair2/RRM_4_RRC_LITE/src/com/rrc/RRCMessageHandler.cpp +++ b/openair2/RRM_4_RRC_LITE/src/com/rrc/RRCMessageHandler.cpp @@ -41,6 +41,8 @@ RRCMessageHandler::RRCMessageHandler() if (pthread_create(&m_thread, NULL, RRCMessageHandlerThreadLoop, (void *) NULL) != 0) { fprintf(stderr, "\nRRCMessageHandler::RRCMessageHandler() ERROR pthread_create...\n"); + } else { + pthread_setname_np( m_thread, "RRCMsgHandler" ); } } //---------------------------------------------------------------------------- diff --git a/openair2/RRM_4_RRC_LITE/src/com/rrm/RRMMessageHandler.cpp b/openair2/RRM_4_RRC_LITE/src/com/rrm/RRMMessageHandler.cpp index 98b44d50b18a9506b53dfe67530eda8a16489f36..48a3a7732067dc74a71d7001328619f4d6e0b300 100755 --- a/openair2/RRM_4_RRC_LITE/src/com/rrm/RRMMessageHandler.cpp +++ b/openair2/RRM_4_RRC_LITE/src/com/rrm/RRMMessageHandler.cpp @@ -41,6 +41,8 @@ RRMMessageHandler::RRMMessageHandler() if (pthread_create(&m_thread, NULL, RRMMessageHandlerThreadLoop, (void *) NULL) != 0) { fprintf(stderr, "\nRRMMessageHandler::RRMMessageHandler() ERROR pthread_create...\n"); + } else { + pthread_setname_np( m_thread, "RRMMsgHandler" ); } } //---------------------------------------------------------------------------- diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c index b6452bc221085c141c3d6f326c5294263c8d3113..b9ea96e43beba2ec6190e8f4d92647d18e3d4c37 100644 --- a/targets/RT/USER/lte-softmodem.c +++ b/targets/RT/USER/lte-softmodem.c @@ -1241,6 +1241,11 @@ void init_eNB_proc(void) pthread_cond_init( &PHY_vars_eNB_g[0][CC_id]->proc[i].cond_rx, NULL); pthread_create( &PHY_vars_eNB_g[0][CC_id]->proc[i].pthread_tx, NULL, eNB_thread_tx, &PHY_vars_eNB_g[0][CC_id]->proc[i] ); pthread_create( &PHY_vars_eNB_g[0][CC_id]->proc[i].pthread_rx, NULL, eNB_thread_rx, &PHY_vars_eNB_g[0][CC_id]->proc[i] ); + char name[16]; + snprintf( name, sizeof(name), "TX %d", i ); + pthread_setname_np( PHY_vars_eNB_g[0][CC_id]->proc[i].pthread_tx, name ); + snprintf( name, sizeof(name), "RX %d", i ); + pthread_setname_np( PHY_vars_eNB_g[0][CC_id]->proc[i].pthread_rx, name ); PHY_vars_eNB_g[0][CC_id]->proc[i].frame_tx = 0; PHY_vars_eNB_g[0][CC_id]->proc[i].frame_rx = 0; #ifdef EXMIMO @@ -2800,6 +2805,8 @@ int main( int argc, char **argv ) } ret = pthread_create(&forms_thread, NULL, scope_thread, NULL); + if (ret == 0) + pthread_setname_np( forms_thread, "xforms" ); printf("Scope thread created, ret=%d\n",ret); } #endif @@ -2850,7 +2857,8 @@ int main( int argc, char **argv ) return(error_code); } else { - LOG_D(HW,"[lte-softmodem.c] Allocate UE_thread successful\n"); + LOG_D( HW, "[lte-softmodem.c] Allocate UE_thread successful\n" ); + pthread_setname_np( main_ue_thread, "main UE" ); } #endif printf("UE threads created\n"); @@ -2872,7 +2880,8 @@ int main( int argc, char **argv ) return(error_code); } else { - LOG_D(HW,"[lte-softmodem.c] Allocate eNB_thread successful\n"); + LOG_D( HW, "[lte-softmodem.c] Allocate eNB_thread successful\n" ); + pthread_setname_np( main_eNB_thread, "main eNB" ); } #endif }