Commit c21df3b6 authored by Raymond Knopp's avatar Raymond Knopp

small fix for threadPool initialization when we use the full pipelining mode (RU_L1_TRX_SPLIT)

parent b675c0c7
...@@ -1251,7 +1251,7 @@ extern "C" { ...@@ -1251,7 +1251,7 @@ extern "C" {
LOG_I(HW,"Actual time source %s...\n",s->usrp->get_time_source(0).c_str()); LOG_I(HW,"Actual time source %s...\n",s->usrp->get_time_source(0).c_str());
sleep(1); sleep(1);
// create tx & rx streamer // create tx & rx streamer
uhd::stream_args_t stream_args_rx("sc16", "sc16"); uhd::stream_args_t stream_args_rx("sc12", "sc12");
int samples=openair0_cfg[0].sample_rate; int samples=openair0_cfg[0].sample_rate;
int max=s->usrp->get_rx_stream(stream_args_rx)->get_max_num_samps(); int max=s->usrp->get_rx_stream(stream_args_rx)->get_max_num_samps();
samples/=10000; samples/=10000;
...@@ -1268,7 +1268,7 @@ extern "C" { ...@@ -1268,7 +1268,7 @@ extern "C" {
stream_args_rx.channels.push_back(i); stream_args_rx.channels.push_back(i);
s->rx_stream = s->usrp->get_rx_stream(stream_args_rx); s->rx_stream = s->usrp->get_rx_stream(stream_args_rx);
uhd::stream_args_t stream_args_tx("sc16", "sc16"); uhd::stream_args_t stream_args_tx("sc12", "sc12");
for (int i = 0; i<openair0_cfg[0].tx_num_channels; i++) for (int i = 0; i<openair0_cfg[0].tx_num_channels; i++)
stream_args_tx.channels.push_back(i); stream_args_tx.channels.push_back(i);
......
...@@ -228,7 +228,7 @@ void fh_if4p5_south_in(RU_t *ru, ...@@ -228,7 +228,7 @@ void fh_if4p5_south_in(RU_t *ru,
symbol_mask_full = (1<<fp->symbols_per_tti)-1; symbol_mask_full = (1<<fp->symbols_per_tti)-1;
LOG_D(PHY,"fh_if4p5_south_in: RU %d, frame %d, subframe %d, ru %d, mask %x\n",ru->idx,*frame,*subframe,ru->idx,proc->symbol_mask[*subframe]); LOG_D(PHY,"fh_if4p5_south_in: RU %d, frame %d, subframe %d, ru %d, mask %x\n",ru->idx,*frame,*subframe,ru->idx,proc->symbol_mask[*subframe]);
AssertFatal(proc->symbol_mask[*subframe]==0 || proc->symbol_mask[*subframe]>=symbol_mask_full,"rx_fh_if4p5: proc->symbol_mask[%d] = %x\n",*subframe,proc->symbol_mask[*subframe]); // >= because PULTICK for S-subframe could have been received during normal subframe //AssertFatal(proc->symbol_mask[*subframe]==0 || proc->symbol_mask[*subframe]>=symbol_mask_full,"rx_fh_if4p5: proc->symbol_mask[%d] = %x\n",*subframe,proc->symbol_mask[*subframe]); // >= because PULTICK for S-subframe could have been received during normal subframe
if (proc->symbol_mask[*subframe]<symbol_mask_full) { // this is normal case, if not true then we received a PULTICK before the previous subframe was finished if (proc->symbol_mask[*subframe]<symbol_mask_full) { // this is normal case, if not true then we received a PULTICK before the previous subframe was finished
do { do {
......
...@@ -650,6 +650,7 @@ int main ( int argc, char **argv ) ...@@ -650,6 +650,7 @@ int main ( int argc, char **argv )
for (int x=0; x < RC.nb_L1_inst; x++) for (int x=0; x < RC.nb_L1_inst; x++)
for (int CC_id=0; CC_id<RC.nb_L1_CC[x]; CC_id++) { for (int CC_id=0; CC_id<RC.nb_L1_CC[x]; CC_id++) {
L1_rxtx_proc_t *L1proc= &RC.eNB[x][CC_id]->proc.L1_proc; L1_rxtx_proc_t *L1proc= &RC.eNB[x][CC_id]->proc.L1_proc;
L1_rxtx_proc_t *L1proctx= &RC.eNB[x][CC_id]->proc.L1_proc_tx;
L1proc->threadPool=(tpool_t*)malloc(sizeof(tpool_t)); L1proc->threadPool=(tpool_t*)malloc(sizeof(tpool_t));
L1proc->respEncode=(notifiedFIFO_t*) malloc(sizeof(notifiedFIFO_t)); L1proc->respEncode=(notifiedFIFO_t*) malloc(sizeof(notifiedFIFO_t));
L1proc->respDecode=(notifiedFIFO_t*) malloc(sizeof(notifiedFIFO_t)); L1proc->respDecode=(notifiedFIFO_t*) malloc(sizeof(notifiedFIFO_t));
...@@ -657,8 +658,11 @@ int main ( int argc, char **argv ) ...@@ -657,8 +658,11 @@ int main ( int argc, char **argv )
initTpool(get_softmodem_params()->threadPoolConfig, L1proc->threadPool, true); initTpool(get_softmodem_params()->threadPoolConfig, L1proc->threadPool, true);
else else
initTpool("n", L1proc->threadPool, true); initTpool("n", L1proc->threadPool, true);
initNotifiedFIFO(L1proc->respEncode); initNotifiedFIFO(L1proc->respEncode);
initNotifiedFIFO(L1proc->respDecode); initNotifiedFIFO(L1proc->respDecode);
L1proctx->threadPool=L1proc->threadPool;
L1proctx->respEncode=L1proc->respEncode;
L1proctx->nbEncode=L1proc->nbEncode;
} }
......
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