From 0280c08391987ca079939da2037c3ffc536324ca Mon Sep 17 00:00:00 2001 From: Sakthivel Velumani Date: Tue, 16 Mar 2021 12:43:43 +0100 Subject: [PATCH] Threadsafe FIFOs 1. Changed FIFO types to threadsafe to ensure order of execution 2. Changed RB_NB_TH to 1 because PUCCH have some issues when running 2 slots in parallel (race). Dont know exactly where it happens. --- executables/nr-ue.c | 10 +++++----- openair1/PHY/defs_common.h | 4 ++-- openair1/SCHED_NR/phy_procedures_nr_gNB.c | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/executables/nr-ue.c b/executables/nr-ue.c index cb9440e174..c0b0af0618 100644 --- a/executables/nr-ue.c +++ b/executables/nr-ue.c @@ -394,10 +394,10 @@ void processSlotRX(void *arg) { // under the assumption that no two slots with same slot index of different frames are processed at the same time res = pullTpool(UE->respPdsch,&(get_nrUE_params()->Tpool)); if (res->key == proc->nr_slot_rx) check_rx_finish = false; - pushNotifiedFIFO_nothreadSafe(UE->respPdsch, res); + pushNotifiedFIFO(UE->respPdsch, res); res = pullTpool(UE->txFifo,&(get_nrUE_params()->Tpool)); if (res->key == proc->nr_slot_tx) check_tx_finish = false; - pushNotifiedFIFO_nothreadSafe(UE->txFifo, res); + pushNotifiedFIFO(UE->txFifo, res); } } else { @@ -565,9 +565,9 @@ void *UE_thread(void *arg) { int absolute_slot=0, decoded_frame_rx=-1, trashed_frames=0; for (int i=0; istart_symbol_index*gNB->frame_parms.ofdm_symbol_size + (gNB->frame_parms.first_carrier_offset+pucch_pdu->prb_start*12); power_rxF = signal_energy_nodc(&gNB->common_vars.rxdataF[0][offset],12); - LOG_I(PHY,"frame %d, slot %d: PUCCH signal energy %d\n",frame_rx,slot_rx,power_rxF); + LOG_D(PHY,"frame %d, slot %d: PUCCH signal energy %d\n",frame_rx,slot_rx,power_rxF); nr_decode_pucch0(gNB, slot_rx,