Commit cbdfc1c9 authored by frtabu's avatar frtabu

add tpool thread name parameter, fi init

parent 58309dd7
...@@ -92,7 +92,7 @@ void *one_thread(void *arg) { ...@@ -92,7 +92,7 @@ void *one_thread(void *arg) {
} while (true); } while (true);
} }
void initTpool(char *params,tpool_t *pool, bool performanceMeas) { void initNamedTpool(char *params,tpool_t *pool, bool performanceMeas, char *name) {
memset(pool,0,sizeof(*pool)); memset(pool,0,sizeof(*pool));
char *measr=getenv("threadPoolMeasurements"); char *measr=getenv("threadPoolMeasurements");
pool->measurePerf=performanceMeas; pool->measurePerf=performanceMeas;
...@@ -116,6 +116,7 @@ void initTpool(char *params,tpool_t *pool, bool performanceMeas) { ...@@ -116,6 +116,7 @@ void initTpool(char *params,tpool_t *pool, bool performanceMeas) {
pool->restrictRNTI=false; pool->restrictRNTI=false;
curptr=strtok_r(parms_cpy,",",&saveptr); curptr=strtok_r(parms_cpy,",",&saveptr);
struct one_thread * ptr; struct one_thread * ptr;
char *tname = (name == NULL ? "Tpool" : name);
while ( curptr!=NULL ) { while ( curptr!=NULL ) {
int c=toupper(curptr[0]); int c=toupper(curptr[0]);
...@@ -129,7 +130,7 @@ void initTpool(char *params,tpool_t *pool, bool performanceMeas) { ...@@ -129,7 +130,7 @@ void initTpool(char *params,tpool_t *pool, bool performanceMeas) {
break; break;
default: default:
ptr=pool->allthreads; ptr=pool->allthreads;
pool->allthreads=(struct one_thread *)malloc(sizeof(struct one_thread)); pool->allthreads=(struct one_thread *)malloc(sizeof(struct one_thread));
pool->allthreads->next=ptr; pool->allthreads->next=ptr;
printf("create a thread for core %d\n", atoi(curptr)); printf("create a thread for core %d\n", atoi(curptr));
...@@ -138,7 +139,7 @@ void initTpool(char *params,tpool_t *pool, bool performanceMeas) { ...@@ -138,7 +139,7 @@ void initTpool(char *params,tpool_t *pool, bool performanceMeas) {
pool->allthreads->pool=pool; pool->allthreads->pool=pool;
//Configure the thread scheduler policy for Linux //Configure the thread scheduler policy for Linux
// set the thread name for debugging // set the thread name for debugging
sprintf(pool->allthreads->name,"Tpool_%d",pool->allthreads->coreID); sprintf(pool->allthreads->name,"%s%d_%d",tname,pool->nbThreads,pool->allthreads->coreID);
threadCreate(&pool->allthreads->threadID, one_thread, (void *)pool->allthreads, threadCreate(&pool->allthreads->threadID, one_thread, (void *)pool->allthreads,
pool->allthreads->name, pool->allthreads->coreID, OAI_PRIORITY_RT); pool->allthreads->name, pool->allthreads->coreID, OAI_PRIORITY_RT);
pool->nbThreads++; pool->nbThreads++;
......
...@@ -294,6 +294,6 @@ static inline int abortTpool(tpool_t *t, uint64_t key) { ...@@ -294,6 +294,6 @@ static inline int abortTpool(tpool_t *t, uint64_t key) {
mutexunlock(nf->lockF); mutexunlock(nf->lockF);
return nbRemoved; return nbRemoved;
} }
void initTpool(char *params,tpool_t *pool, bool performanceMeas); void initNamedTpool(char *params,tpool_t *pool, bool performanceMeas, char *name);
#define initTpool(PARAMPTR,TPOOLPTR, MEASURFLAG) initNamedTpool(PARAMPTR,TPOOLPTR, MEASURFLAG, NULL)
#endif #endif
...@@ -214,9 +214,9 @@ nrUE_params_t *get_nrUE_params(void) { ...@@ -214,9 +214,9 @@ nrUE_params_t *get_nrUE_params(void) {
} }
/* initialie thread pools used for NRUE processing paralleliation */ /* initialie thread pools used for NRUE processing paralleliation */
void init_tpools(uint8_t nun_dlsch_threads) { void init_tpools(uint8_t nun_dlsch_threads) {
char *params=calloc(1,(RX_NB_TH*2)+1); char *params=calloc(1,(RX_NB_TH*3)+1);
for (int i=0; i<RX_NB_TH; i++) { for (int i=0; i<RX_NB_TH; i++) {
memcpy(params+(i*2),"-1",2); memcpy(params+(i*3),"-1,",3);
} }
initTpool(params, &(nrUE_params.Tpool), false); initTpool(params, &(nrUE_params.Tpool), false);
free(params); free(params);
......
...@@ -60,16 +60,16 @@ int nbDlProcessing =0; ...@@ -60,16 +60,16 @@ int nbDlProcessing =0;
static tpool_t pool_dl; static tpool_t pool_dl;
//extern double cpuf; //extern double cpuf;
void init_dlsch_tpool(uint8_t nun_dlsch_threads) void init_dlsch_tpool(uint8_t num_dlsch_threads)
{ {
if( nun_dlsch_threads==0) if( num_dlsch_threads==0)
return; return;
char *params=calloc(1,(nun_dlsch_threads*2)+1); char *params=calloc(1,(num_dlsch_threads*3)+1);
for (int i=0; i<nun_dlsch_threads; i++) { for (int i=0; i<num_dlsch_threads; i++) {
memcpy(params+(i*2),"-1",2); memcpy(params+(i*3),"-1,",3);
} }
initTpool(params, &pool_dl, false); initNamedTpool(params, &pool_dl, false,"dlsch");
free(params); free(params);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment