From d836650d41fc813389ab078888cc4fc7a73d213a Mon Sep 17 00:00:00 2001 From: Michael Cook Date: Sat, 27 Jun 2020 14:24:56 -0400 Subject: [PATCH] Call sched_setscheduler --- cmake_targets/.gitignore | 5 +++++ targets/RT/USER/lte-softmodem.c | 8 ++++++++ targets/RT/USER/lte-ue.c | 7 +++++++ targets/RT/USER/lte-uesoftmodem.c | 8 ++++++++ 4 files changed, 28 insertions(+) create mode 100644 cmake_targets/.gitignore diff --git a/cmake_targets/.gitignore b/cmake_targets/.gitignore new file mode 100644 index 0000000000..d637630bca --- /dev/null +++ b/cmake_targets/.gitignore @@ -0,0 +1,5 @@ +/.ue.nvram0 +/.ue_emm.nvram0 +/.usim.nvram0 +/nvram +/usim diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c index d8c5e25593..ae470988be 100644 --- a/targets/RT/USER/lte-softmodem.c +++ b/targets/RT/USER/lte-softmodem.c @@ -511,6 +511,14 @@ static void wait_nfapi_init(char *thread_name) { int main ( int argc, char **argv ) { + struct sched_param param = { + .sched_priority = sched_get_priority_max(SCHED_RR) + }; + if (sched_setscheduler( 0, SCHED_RR, ¶m ) == -1 ) + fprintf(stderr,"error setting scheduler ... are you root?\n"); + else + fprintf(stderr,"selected rt scheduler\n"); + int i; int CC_id = 0; int ru_id; diff --git a/targets/RT/USER/lte-ue.c b/targets/RT/USER/lte-ue.c index 9a322b3ff5..2a49963a06 100644 --- a/targets/RT/USER/lte-ue.c +++ b/targets/RT/USER/lte-ue.c @@ -1038,6 +1038,7 @@ static void *UE_phy_stub_standalone_pnf_task(void *arg) int num_lone = 0; int last_sfn_sf = -1; + uint64_t last_subframe_start = clock_usec(); while (!oai_exit) { bool sent_any = false; int sfn_sf = current_sfn_sf; @@ -1045,6 +1046,12 @@ static void *UE_phy_stub_standalone_pnf_task(void *arg) usleep(100); continue; } + + uint64_t subframe_start = clock_usec(); + LOG_I(MAC, "subframe elapsed %" PRIu64 "usec\n", + subframe_start - last_subframe_start); + last_subframe_start = subframe_start; + last_sfn_sf = sfn_sf; proc->subframe_rx = NFAPI_SFNSF2SF(sfn_sf); proc->frame_rx = NFAPI_SFNSF2SFN(sfn_sf); diff --git a/targets/RT/USER/lte-uesoftmodem.c b/targets/RT/USER/lte-uesoftmodem.c index 7530582df1..39bdef2fad 100644 --- a/targets/RT/USER/lte-uesoftmodem.c +++ b/targets/RT/USER/lte-uesoftmodem.c @@ -543,6 +543,14 @@ void init_pdcp(void) { } int main( int argc, char **argv ) { + struct sched_param param = { + .sched_priority = sched_get_priority_max(SCHED_RR) + }; + if (sched_setscheduler( 0, SCHED_RR, ¶m ) == -1 ) + fprintf(stderr,"error setting scheduler ... are you root?\n"); + else + fprintf(stderr,"selected rt scheduler\n"); + int CC_id; uint8_t abstraction_flag=0; #ifdef UESIM_EXPANSION