Merge branch 'issue-109-deadline-name' into 'develop'
Issue 109 deadline name See merge request !32
This commit is contained in:
@@ -260,7 +260,7 @@ endif (${ENABLE_ITTI})
|
|||||||
|
|
||||||
add_boolean_option(RTAI False "Use RTAI")
|
add_boolean_option(RTAI False "Use RTAI")
|
||||||
if (${RTAI})
|
if (${RTAI})
|
||||||
set(LOWLATENCY False)
|
set(DEADLINE_SCHEDULER False)
|
||||||
set(CPU_AFFINITY False)
|
set(CPU_AFFINITY False)
|
||||||
add_definitions("-DENABLE_RTAI_CLOCK")
|
add_definitions("-DENABLE_RTAI_CLOCK")
|
||||||
add_definitions("-DCONFIG_RTAI_LXRT_INLINE")
|
add_definitions("-DCONFIG_RTAI_LXRT_INLINE")
|
||||||
@@ -605,7 +605,7 @@ endif (${TRANSP_PRO} STREQUAL "ETHERNET")
|
|||||||
|
|
||||||
include_directories ("${OPENAIR_TARGETS}/ARCH/COMMON")
|
include_directories ("${OPENAIR_TARGETS}/ARCH/COMMON")
|
||||||
|
|
||||||
Message("LOWLATENCY flag is ${LOWLATENCY}")
|
Message("DEADLINE_SCHEDULER flag is ${DEADLINE_SCHEDULER}")
|
||||||
Message("CPU_Affinity flag is ${CPU_AFFINITY}")
|
Message("CPU_Affinity flag is ${CPU_AFFINITY}")
|
||||||
|
|
||||||
##############################################################
|
##############################################################
|
||||||
@@ -619,7 +619,7 @@ add_boolean_option(RRC_DEFAULT_RAB_IS_AM False "set the RLC mode to AM for the d
|
|||||||
|
|
||||||
add_boolean_option(OAI_NW_DRIVER_TYPE_ETHERNET False "????")
|
add_boolean_option(OAI_NW_DRIVER_TYPE_ETHERNET False "????")
|
||||||
add_boolean_option(DISABLE_USE_NAS False "???")
|
add_boolean_option(DISABLE_USE_NAS False "???")
|
||||||
add_boolean_option(LOWLATENCY True "Use the Linux scheduler SCHED_DEADLINE: kernel >= 3.14")
|
add_boolean_option(DEADLINE_SCHEDULER True "Use the Linux scheduler SCHED_DEADLINE: kernel >= 3.14")
|
||||||
add_boolean_option(CPU_AFFINITY False "Enable CPU Affinity of threads (only valid without deadline scheduler). It is enabled only with >2 CPUs")
|
add_boolean_option(CPU_AFFINITY False "Enable CPU Affinity of threads (only valid without deadline scheduler). It is enabled only with >2 CPUs")
|
||||||
add_boolean_option(NAS_ADDRESS_FIX False "specific to oaisim: for nasmesh driver")
|
add_boolean_option(NAS_ADDRESS_FIX False "specific to oaisim: for nasmesh driver")
|
||||||
add_boolean_option(NAS_NETLINK False "???? Must be True to compile nasmesh driver without rtai")
|
add_boolean_option(NAS_NETLINK False "???? Must be True to compile nasmesh driver without rtai")
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD True )
|
set ( LOG_NO_THREAD True )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD True )
|
set ( LOG_NO_THREAD True )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX False )
|
|||||||
set ( LINUX_LIST False )
|
set ( LINUX_LIST False )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD True )
|
set ( LOG_NO_THREAD True )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX False )
|
|||||||
set ( LINUX_LIST False )
|
set ( LINUX_LIST False )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD True )
|
set ( LOG_NO_THREAD True )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX False )
|
|||||||
set ( LINUX_LIST False )
|
set ( LINUX_LIST False )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD True )
|
set ( LOG_NO_THREAD True )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX False )
|
|||||||
set ( LINUX_LIST False )
|
set ( LINUX_LIST False )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD True )
|
set ( LOG_NO_THREAD True )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ set(LINUX_LIST False)
|
|||||||
set(LINUX True)
|
set(LINUX True)
|
||||||
set(LOCALIZATION False)
|
set(LOCALIZATION False)
|
||||||
set(LOG_NO_THREAD True)
|
set(LOG_NO_THREAD True)
|
||||||
set(LOWLATENCY False)
|
set(DEADLINE_SCHEDULER False)
|
||||||
set(MAC_CONTEXT 1)
|
set(MAC_CONTEXT 1)
|
||||||
set(MAX_NUM_CCs 1)
|
set(MAX_NUM_CCs 1)
|
||||||
set(MESSAGE_CHART_GENERATOR False )
|
set(MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD True )
|
set ( LOG_NO_THREAD True )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ set(LINUX_LIST False)
|
|||||||
set(LINUX True)
|
set(LINUX True)
|
||||||
set(LOCALIZATION False)
|
set(LOCALIZATION False)
|
||||||
set(LOG_NO_THREAD True)
|
set(LOG_NO_THREAD True)
|
||||||
set(LOWLATENCY False)
|
set(DEADLINE_SCHEDULER False)
|
||||||
set(MAC_CONTEXT 1)
|
set(MAC_CONTEXT 1)
|
||||||
set(MAX_NUM_CCs 1)
|
set(MAX_NUM_CCs 1)
|
||||||
set(MESSAGE_CHART_GENERATOR False)
|
set(MESSAGE_CHART_GENERATOR False)
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD True )
|
set ( LOG_NO_THREAD True )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD 1 )
|
set ( LOG_NO_THREAD 1 )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD 1 )
|
set ( LOG_NO_THREAD 1 )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD 1 )
|
set ( LOG_NO_THREAD 1 )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD 1 )
|
set ( LOG_NO_THREAD 1 )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD 1 )
|
set ( LOG_NO_THREAD 1 )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD 1 )
|
set ( LOG_NO_THREAD 1 )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD 1 )
|
set ( LOG_NO_THREAD 1 )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD 1 )
|
set ( LOG_NO_THREAD 1 )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD 1 )
|
set ( LOG_NO_THREAD 1 )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD 1 )
|
set ( LOG_NO_THREAD 1 )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD 1 )
|
set ( LOG_NO_THREAD 1 )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD 1 )
|
set ( LOG_NO_THREAD 1 )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
+17
-17
@@ -45,8 +45,8 @@ MSC_GEN="False"
|
|||||||
XFORMS="True"
|
XFORMS="True"
|
||||||
PRINT_STATS="False"
|
PRINT_STATS="False"
|
||||||
VCD_TIMING="False"
|
VCD_TIMING="False"
|
||||||
LOWLATENCY_FLAG_USER="False"
|
DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||||
FORCE_LOWLATENCY_FLAG_USER=""
|
FORCE_DEADLINE_SCHEDULER_FLAG_USER=""
|
||||||
CPU_AFFINITY_FLAG_USER="True" #Only valid when lowlatecy flag is set to False
|
CPU_AFFINITY_FLAG_USER="True" #Only valid when lowlatecy flag is set to False
|
||||||
REL="Rel10"
|
REL="Rel10"
|
||||||
HW="None"
|
HW="None"
|
||||||
@@ -125,7 +125,7 @@ Options
|
|||||||
--disable-deadline
|
--disable-deadline
|
||||||
Disables deadline scheduler of Linux kernel (>=3.14.x).
|
Disables deadline scheduler of Linux kernel (>=3.14.x).
|
||||||
--enable-deadline
|
--enable-deadline
|
||||||
Disables deadline scheduler of Linux kernel (>=3.14.x).
|
Enable deadline scheduler of Linux kernel (>=3.14.x).
|
||||||
--disable-cpu-affinity
|
--disable-cpu-affinity
|
||||||
Disables CPU Affinity between UHD/TX/RX Threads (Valid only when deadline scheduler is disabled). By defaulT, CPU Affinity is enabled when not using deadline scheduler. It is enabled only with >2 CPUs. For eNB, CPU_0-> Device library (UHD), CPU_1->TX Threads, CPU_2...CPU_MAX->Rx Threads. For UE, CPU_0->Device Library(UHD), CPU_1..CPU_MAX -> All the UE threads
|
Disables CPU Affinity between UHD/TX/RX Threads (Valid only when deadline scheduler is disabled). By defaulT, CPU Affinity is enabled when not using deadline scheduler. It is enabled only with >2 CPUs. For eNB, CPU_0-> Device library (UHD), CPU_1->TX Threads, CPU_2...CPU_MAX->Rx Threads. For UE, CPU_0->Device Library(UHD), CPU_1..CPU_MAX -> All the UE threads
|
||||||
Usage (first build):
|
Usage (first build):
|
||||||
@@ -259,11 +259,11 @@ function main() {
|
|||||||
echo_info "Will build doxygen support"
|
echo_info "Will build doxygen support"
|
||||||
shift;;
|
shift;;
|
||||||
--disable-deadline)
|
--disable-deadline)
|
||||||
FORCE_LOWLATENCY_FLAG_USER="False"
|
FORCE_DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||||
echo_info "Disabling the usage of deadline scheduler"
|
echo_info "Disabling the usage of deadline scheduler"
|
||||||
shift 1;;
|
shift 1;;
|
||||||
--enable-deadline)
|
--enable-deadline)
|
||||||
FORCE_LOWLATENCY_FLAG_USER="True"
|
FORCE_DEADLINE_SCHEDULER_FLAG_USER="True"
|
||||||
echo_info "Enabling the usage of deadline scheduler"
|
echo_info "Enabling the usage of deadline scheduler"
|
||||||
shift 1;;
|
shift 1;;
|
||||||
--disable-cpu-affinity)
|
--disable-cpu-affinity)
|
||||||
@@ -314,33 +314,33 @@ function main() {
|
|||||||
#By default: USRP: disable,
|
#By default: USRP: disable,
|
||||||
#By default: BLADERF: enable,
|
#By default: BLADERF: enable,
|
||||||
#By default: EXMIMO: enable
|
#By default: EXMIMO: enable
|
||||||
if [ "$FORCE_LOWLATENCY_FLAG_USER" = "" ]; then
|
if [ "$FORCE_DEADLINE_SCHEDULER_FLAG_USER" = "" ]; then
|
||||||
if [ "$HW" = "EXMIMO" ] ; then
|
if [ "$HW" = "EXMIMO" ] ; then
|
||||||
LOWLATENCY_FLAG_USER="False"
|
DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||||
elif [ "$HW" = "ETHERNET" ] ; then
|
elif [ "$HW" = "ETHERNET" ] ; then
|
||||||
LOWLATENCY_FLAG_USER="True"
|
DEADLINE_SCHEDULER_FLAG_USER="True"
|
||||||
elif [ "$HW" = "OAI_USRP" ] ; then
|
elif [ "$HW" = "OAI_USRP" ] ; then
|
||||||
LOWLATENCY_FLAG_USER="False"
|
DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||||
elif [ "$HW" = "OAI_BLADERF" ] ; then
|
elif [ "$HW" = "OAI_BLADERF" ] ; then
|
||||||
LOWLATENCY_FLAG_USER="False"
|
DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||||
elif [ "$HW" = "OAI_LMSSDR" ] ; then
|
elif [ "$HW" = "OAI_LMSSDR" ] ; then
|
||||||
LOWLATENCY_FLAG_USER="False"
|
DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||||
elif [ "$HW" = "None" ] ; then
|
elif [ "$HW" = "None" ] ; then
|
||||||
LOWLATENCY_FLAG_USER="False"
|
DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||||
else
|
else
|
||||||
echo_error "Unknown HW type $HW. Exiting now..."
|
echo_error "Unknown HW type $HW. Exiting now..."
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
LOWLATENCY_FLAG_USER=$FORCE_LOWLATENCY_FLAG_USER
|
DEADLINE_SCHEDULER_FLAG_USER=$FORCE_DEADLINE_SCHEDULER_FLAG_USER
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#Disable CPU Affinity for deadline scheduler
|
#Disable CPU Affinity for deadline scheduler
|
||||||
if [ "$LOWLATENCY_FLAG_USER" = "True" ] ; then
|
if [ "$DEADLINE_SCHEDULER_FLAG_USER" = "True" ] ; then
|
||||||
CPU_AFFINITY_FLAG_USER="False"
|
CPU_AFFINITY_FLAG_USER="False"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo_info "Flags for Deadline scheduler: $LOWLATENCY_FLAG_USER"
|
echo_info "Flags for Deadline scheduler: $DEADLINE_SCHEDULER_FLAG_USER"
|
||||||
echo_info "Flags for CPU Affinity: $CPU_AFFINITY_FLAG_USER"
|
echo_info "Flags for CPU Affinity: $CPU_AFFINITY_FLAG_USER"
|
||||||
|
|
||||||
############################################
|
############################################
|
||||||
@@ -432,7 +432,7 @@ function main() {
|
|||||||
echo "set ( RF_BOARD \"${HW}\")" >> $cmake_file
|
echo "set ( RF_BOARD \"${HW}\")" >> $cmake_file
|
||||||
echo "set ( TRANSP_PRO \"${TP}\")" >> $cmake_file
|
echo "set ( TRANSP_PRO \"${TP}\")" >> $cmake_file
|
||||||
echo "set(PACKAGE_NAME \"${lte_exec}\")" >> $cmake_file
|
echo "set(PACKAGE_NAME \"${lte_exec}\")" >> $cmake_file
|
||||||
echo "set (LOWLATENCY \"${LOWLATENCY_FLAG_USER}\" )" >>$cmake_file
|
echo "set (DEADLINE_SCHEDULER \"${DEADLINE_SCHEDULER_FLAG_USER}\" )" >>$cmake_file
|
||||||
echo "set (CPU_AFFINITY \"${CPU_AFFINITY_FLAG_USER}\" )" >>$cmake_file
|
echo "set (CPU_AFFINITY \"${CPU_AFFINITY_FLAG_USER}\" )" >>$cmake_file
|
||||||
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
|
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
|
||||||
cd $DIR/$lte_build_dir/build
|
cd $DIR/$lte_build_dir/build
|
||||||
@@ -660,7 +660,7 @@ function main() {
|
|||||||
echo "set(RF_BOARD \"${HW}\")" >> $cmake_file
|
echo "set(RF_BOARD \"${HW}\")" >> $cmake_file
|
||||||
echo "set(TRANSP_PRO \"${TP}\")" >> $cmake_file
|
echo "set(TRANSP_PRO \"${TP}\")" >> $cmake_file
|
||||||
echo 'set(PACKAGE_NAME "\"rrh_gw\"")' >> $cmake_file
|
echo 'set(PACKAGE_NAME "\"rrh_gw\"")' >> $cmake_file
|
||||||
echo "set (LOWLATENCY \"${LOWLATENCY_FLAG_USER}\" )" >>$cmake_file
|
echo "set (DEADLINE_SCHEDULER \"${DEADLINE_SCHEDULER_FLAG_USER}\" )" >>$cmake_file
|
||||||
echo "set (CPU_AFFINITY \"${CPU_AFFINITY_FLAG_USER}\" )" >>$cmake_file
|
echo "set (CPU_AFFINITY \"${CPU_AFFINITY_FLAG_USER}\" )" >>$cmake_file
|
||||||
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
|
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
|
||||||
cd $DIR/$rrh_build_dir/build
|
cd $DIR/$rrh_build_dir/build
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD True )
|
set ( LOG_NO_THREAD True )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False)
|
set ( MESSAGE_CHART_GENERATOR False)
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD True )
|
set ( LOG_NO_THREAD True )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False)
|
set ( MESSAGE_CHART_GENERATOR False)
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX False )
|
set ( LINUX False )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD False )
|
set ( LOG_NO_THREAD False )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MIH_C_MEDIEVAL_EXTENSIONS False )
|
set ( MIH_C_MEDIEVAL_EXTENSIONS False )
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD 1 )
|
set ( LOG_NO_THREAD 1 )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False )
|
set ( MESSAGE_CHART_GENERATOR False )
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ set ( LINUX_LIST False )
|
|||||||
set ( LINUX True )
|
set ( LINUX True )
|
||||||
set ( LOCALIZATION False )
|
set ( LOCALIZATION False )
|
||||||
set ( LOG_NO_THREAD True )
|
set ( LOG_NO_THREAD True )
|
||||||
set ( LOWLATENCY False )
|
set ( DEADLINE_SCHEDULER False )
|
||||||
set ( MAC_CONTEXT 1 )
|
set ( MAC_CONTEXT 1 )
|
||||||
set ( MAX_NUM_CCs 1 )
|
set ( MAX_NUM_CCs 1 )
|
||||||
set ( MESSAGE_CHART_GENERATOR False)
|
set ( MESSAGE_CHART_GENERATOR False)
|
||||||
|
|||||||
@@ -8,14 +8,14 @@ include $(OPENAIR_TARGETS)/Makefile.common
|
|||||||
|
|
||||||
KERNEL_VERSION:=$(shell echo `uname -r | cut -d. -f-2`)
|
KERNEL_VERSION:=$(shell echo `uname -r | cut -d. -f-2`)
|
||||||
KERNEL_TYPE:=$(shell echo `uname -r | cut -d. -f-3 | cut -d- -f3`)
|
KERNEL_TYPE:=$(shell echo `uname -r | cut -d. -f-3 | cut -d- -f3`)
|
||||||
LOWLATENCY_KERNEL:=$(shell if [ $(KERNEL_TYPE) = "lowlatency" ]; then echo "1" ; else echo "0" ; fi)
|
DEADLINE_SCHEDULER_KERNEL:=$(shell if [ $(KERNEL_TYPE) = "lowlatency" ]; then echo "1" ; else echo "0" ; fi)
|
||||||
|
|
||||||
include $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/Makefile.inc
|
include $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/Makefile.inc
|
||||||
|
|
||||||
ifdef EXMIMO
|
ifdef EXMIMO
|
||||||
#ifdef LOWLATENCY # this ifdef is to be removed after the debugging
|
#ifdef DEADLINE_SCHEDULER # this ifdef is to be removed after the debugging
|
||||||
ifeq ($(LOWLATENCY_KERNEL),1)
|
ifeq ($(DEADLINE_SCHEDULER_KERNEL),1)
|
||||||
CFLAGS+=-DLOWLATENCY
|
CFLAGS+=-DDEADLINE_SCHEDULER
|
||||||
endif
|
endif
|
||||||
#endif
|
#endif
|
||||||
endif
|
endif
|
||||||
@@ -431,7 +431,7 @@ show:
|
|||||||
@echo IS_REL10 is $(IS_REL10)
|
@echo IS_REL10 is $(IS_REL10)
|
||||||
@echo openssl $(OPENSSL_FOUND)
|
@echo openssl $(OPENSSL_FOUND)
|
||||||
@echo nettle $(NETTLE_FOUND)
|
@echo nettle $(NETTLE_FOUND)
|
||||||
@echo lowlatency kernel: $(LOWLATENCY_KERNEL)
|
@echo lowlatency kernel: $(DEADLINE_SCHEDULER_KERNEL)
|
||||||
|
|
||||||
beautiful:
|
beautiful:
|
||||||
astyle --style=gnu -s2 $(SRC)
|
astyle --style=gnu -s2 $(SRC)
|
||||||
|
|||||||
@@ -254,7 +254,7 @@ void *rrh_eNB_thread(void *arg) {
|
|||||||
pthread_mutex_init(&sync_trx_mutex,NULL);
|
pthread_mutex_init(&sync_trx_mutex,NULL);
|
||||||
|
|
||||||
/* create eNB module's TX/RX threads */
|
/* create eNB module's TX/RX threads */
|
||||||
#ifdef LOWLATENCY
|
#ifdef DEADLINE_SCHEDULER
|
||||||
error_code_eNB_rx = pthread_create(&eNB_rx_thread, NULL, rrh_eNB_rx_thread, (void *)dev);
|
error_code_eNB_rx = pthread_create(&eNB_rx_thread, NULL, rrh_eNB_rx_thread, (void *)dev);
|
||||||
error_code_eNB_tx = pthread_create(&eNB_tx_thread, NULL, rrh_eNB_tx_thread, (void *)dev);
|
error_code_eNB_tx = pthread_create(&eNB_tx_thread, NULL, rrh_eNB_tx_thread, (void *)dev);
|
||||||
LOG_I(RRH,"[eNB][SCHED] deadline scheduling applied to eNB TX/RX threads\n");
|
LOG_I(RRH,"[eNB][SCHED] deadline scheduling applied to eNB TX/RX threads\n");
|
||||||
@@ -302,7 +302,7 @@ void *rrh_eNB_thread(void *arg) {
|
|||||||
timerspec.it_interval.tv_nsec = rt_period%1000000000;
|
timerspec.it_interval.tv_nsec = rt_period%1000000000;
|
||||||
|
|
||||||
|
|
||||||
#ifdef LOWLATENCY
|
#ifdef DEADLINE_SCHEDULER
|
||||||
error_code_timer = pthread_create(&main_timer_proc_thread, NULL, timer_proc, (void *)&timerspec);
|
error_code_timer = pthread_create(&main_timer_proc_thread, NULL, timer_proc, (void *)&timerspec);
|
||||||
LOG_I(RRH,"[eNB][SCHED] deadline scheduling applied to timer thread \n");
|
LOG_I(RRH,"[eNB][SCHED] deadline scheduling applied to timer thread \n");
|
||||||
#else
|
#else
|
||||||
@@ -368,7 +368,7 @@ void *rrh_eNB_rx_thread(void *arg) {
|
|||||||
measurements = dev->measurements;
|
measurements = dev->measurements;
|
||||||
next_rx_pos = spp_eth;
|
next_rx_pos = spp_eth;
|
||||||
|
|
||||||
#ifdef LOWLATENCY
|
#ifdef DEADLINE_SCHEDULER
|
||||||
struct sched_attr attr;
|
struct sched_attr attr;
|
||||||
unsigned int flags = 0;
|
unsigned int flags = 0;
|
||||||
|
|
||||||
@@ -560,7 +560,7 @@ void *rrh_eNB_tx_thread(void *arg) {
|
|||||||
unsigned int subframe=0,frame=0;
|
unsigned int subframe=0,frame=0;
|
||||||
unsigned int pck_tx=0;
|
unsigned int pck_tx=0;
|
||||||
|
|
||||||
#ifdef LOWLATENCY
|
#ifdef DEADLINE_SCHEDULER
|
||||||
struct sched_attr attr;
|
struct sched_attr attr;
|
||||||
unsigned int flags = 0;
|
unsigned int flags = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ pthread_t main_ue_thread;
|
|||||||
pthread_attr_t attr_dlsch_threads;
|
pthread_attr_t attr_dlsch_threads;
|
||||||
pthread_attr_t attr_UE_thread;
|
pthread_attr_t attr_UE_thread;
|
||||||
|
|
||||||
#ifndef LOWLATENCY
|
#ifndef DEADLINE_SCHEDULER
|
||||||
struct sched_param sched_param_dlsch;
|
struct sched_param sched_param_dlsch;
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
@@ -192,7 +192,7 @@ struct sched_param sched_param_UE_thread;
|
|||||||
|
|
||||||
pthread_attr_t attr_eNB_proc_tx[MAX_NUM_CCs][NUM_ENB_THREADS];
|
pthread_attr_t attr_eNB_proc_tx[MAX_NUM_CCs][NUM_ENB_THREADS];
|
||||||
pthread_attr_t attr_eNB_proc_rx[MAX_NUM_CCs][NUM_ENB_THREADS];
|
pthread_attr_t attr_eNB_proc_rx[MAX_NUM_CCs][NUM_ENB_THREADS];
|
||||||
#ifndef LOWLATENCY
|
#ifndef DEADLINE_SCHEDULER
|
||||||
struct sched_param sched_param_eNB_proc_tx[MAX_NUM_CCs][NUM_ENB_THREADS];
|
struct sched_param sched_param_eNB_proc_tx[MAX_NUM_CCs][NUM_ENB_THREADS];
|
||||||
struct sched_param sched_param_eNB_proc_rx[MAX_NUM_CCs][NUM_ENB_THREADS];
|
struct sched_param sched_param_eNB_proc_rx[MAX_NUM_CCs][NUM_ENB_THREADS];
|
||||||
#endif
|
#endif
|
||||||
@@ -1087,7 +1087,7 @@ static void* eNB_thread_tx( void* param )
|
|||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#ifdef LOWLATENCY
|
#ifdef DEADLINE_SCHEDULER
|
||||||
struct sched_attr attr;
|
struct sched_attr attr;
|
||||||
unsigned int flags = 0;
|
unsigned int flags = 0;
|
||||||
uint64_t runtime = 850000 ;
|
uint64_t runtime = 850000 ;
|
||||||
@@ -1295,7 +1295,7 @@ static void* eNB_thread_tx( void* param )
|
|||||||
if (proc->frame_tx==1024)
|
if (proc->frame_tx==1024)
|
||||||
proc->frame_tx=0;
|
proc->frame_tx=0;
|
||||||
stop_meas( &softmodem_stats_tx_sf[proc->subframe] );
|
stop_meas( &softmodem_stats_tx_sf[proc->subframe] );
|
||||||
#ifdef LOWLATENCY
|
#ifdef DEADLINE_SCHEDULER
|
||||||
if (opp_enabled){
|
if (opp_enabled){
|
||||||
if(softmodem_stats_tx_sf[proc->subframe].diff_now/(cpuf) > attr.sched_runtime){
|
if(softmodem_stats_tx_sf[proc->subframe].diff_now/(cpuf) > attr.sched_runtime){
|
||||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_RUNTIME_TX_ENB, (softmodem_stats_tx_sf[proc->subframe].diff_now/cpuf - attr.sched_runtime)/1000000.0);
|
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_RUNTIME_TX_ENB, (softmodem_stats_tx_sf[proc->subframe].diff_now/cpuf - attr.sched_runtime)/1000000.0);
|
||||||
@@ -1370,7 +1370,7 @@ static void* eNB_thread_rx( void* param )
|
|||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#ifdef LOWLATENCY
|
#ifdef DEADLINE_SCHEDULER
|
||||||
struct sched_attr attr;
|
struct sched_attr attr;
|
||||||
unsigned int flags = 0;
|
unsigned int flags = 0;
|
||||||
uint64_t runtime = 870000 ;
|
uint64_t runtime = 870000 ;
|
||||||
@@ -1534,7 +1534,7 @@ LOG_I( HW, "[SCHED][eNB] RX thread %d started on CPU %d TID %ld, sched_policy =
|
|||||||
proc->frame_rx=0;
|
proc->frame_rx=0;
|
||||||
|
|
||||||
stop_meas( &softmodem_stats_rx_sf[proc->subframe] );
|
stop_meas( &softmodem_stats_rx_sf[proc->subframe] );
|
||||||
#ifdef LOWLATENCY
|
#ifdef DEADLINE_SCHEDULER
|
||||||
if (opp_enabled){
|
if (opp_enabled){
|
||||||
if(softmodem_stats_rx_sf[proc->subframe].diff_now/(cpuf) > attr.sched_runtime){
|
if(softmodem_stats_rx_sf[proc->subframe].diff_now/(cpuf) > attr.sched_runtime){
|
||||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_RUNTIME_RX_ENB, (softmodem_stats_rx_sf[proc->subframe].diff_now/cpuf - attr.sched_runtime)/1000000.0);
|
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_RUNTIME_RX_ENB, (softmodem_stats_rx_sf[proc->subframe].diff_now/cpuf - attr.sched_runtime)/1000000.0);
|
||||||
@@ -1576,7 +1576,7 @@ void init_eNB_proc(void)
|
|||||||
// set the stack size
|
// set the stack size
|
||||||
|
|
||||||
|
|
||||||
#ifndef LOWLATENCY
|
#ifndef DEADLINE_SCHEDULER
|
||||||
/*
|
/*
|
||||||
pthread_attr_init( &attr_eNB_proc_tx[CC_id][i] );
|
pthread_attr_init( &attr_eNB_proc_tx[CC_id][i] );
|
||||||
if (pthread_attr_setstacksize( &attr_eNB_proc_tx[CC_id][i], 64 *PTHREAD_STACK_MIN ) != 0)
|
if (pthread_attr_setstacksize( &attr_eNB_proc_tx[CC_id][i], 64 *PTHREAD_STACK_MIN ) != 0)
|
||||||
@@ -1603,7 +1603,7 @@ void init_eNB_proc(void)
|
|||||||
pthread_mutex_init( &PHY_vars_eNB_g[0][CC_id]->proc[i].mutex_rx, NULL);
|
pthread_mutex_init( &PHY_vars_eNB_g[0][CC_id]->proc[i].mutex_rx, NULL);
|
||||||
pthread_cond_init( &PHY_vars_eNB_g[0][CC_id]->proc[i].cond_tx, NULL);
|
pthread_cond_init( &PHY_vars_eNB_g[0][CC_id]->proc[i].cond_tx, NULL);
|
||||||
pthread_cond_init( &PHY_vars_eNB_g[0][CC_id]->proc[i].cond_rx, NULL);
|
pthread_cond_init( &PHY_vars_eNB_g[0][CC_id]->proc[i].cond_rx, NULL);
|
||||||
#ifndef LOWLATENCY
|
#ifndef DEADLINE_SCHEDULER
|
||||||
pthread_create( &PHY_vars_eNB_g[0][CC_id]->proc[i].pthread_tx, &attr_eNB_proc_tx[CC_id][i], eNB_thread_tx, &PHY_vars_eNB_g[0][CC_id]->proc[i] );
|
pthread_create( &PHY_vars_eNB_g[0][CC_id]->proc[i].pthread_tx, &attr_eNB_proc_tx[CC_id][i], 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, &attr_eNB_proc_rx[CC_id][i], eNB_thread_rx, &PHY_vars_eNB_g[0][CC_id]->proc[i] );
|
pthread_create( &PHY_vars_eNB_g[0][CC_id]->proc[i].pthread_rx, &attr_eNB_proc_rx[CC_id][i], eNB_thread_rx, &PHY_vars_eNB_g[0][CC_id]->proc[i] );
|
||||||
#else
|
#else
|
||||||
@@ -1778,7 +1778,7 @@ static void* eNB_thread( void* arg )
|
|||||||
#ifdef RTAI
|
#ifdef RTAI
|
||||||
RT_TASK* task = rt_task_init_schmod(nam2num("eNBmain"), 0, 0, 0, SCHED_FIFO, 0xF);
|
RT_TASK* task = rt_task_init_schmod(nam2num("eNBmain"), 0, 0, 0, SCHED_FIFO, 0xF);
|
||||||
#else
|
#else
|
||||||
#ifdef LOWLATENCY
|
#ifdef DEADLINE_SCHEDULER
|
||||||
struct sched_attr attr;
|
struct sched_attr attr;
|
||||||
unsigned int flags = 0;
|
unsigned int flags = 0;
|
||||||
|
|
||||||
@@ -3305,7 +3305,7 @@ int main( int argc, char **argv )
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef LOWLATENCY
|
#ifndef DEADLINE_SCHEDULER
|
||||||
|
|
||||||
/* Currently we set affinity for UHD to CPU 0 for eNB/UE and only if number of CPUS >2 */
|
/* Currently we set affinity for UHD to CPU 0 for eNB/UE and only if number of CPUS >2 */
|
||||||
|
|
||||||
@@ -3608,7 +3608,7 @@ int main( int argc, char **argv )
|
|||||||
pthread_attr_init (&attr_UE_thread);
|
pthread_attr_init (&attr_UE_thread);
|
||||||
pthread_attr_setstacksize(&attr_UE_thread,8192);//5*PTHREAD_STACK_MIN);
|
pthread_attr_setstacksize(&attr_UE_thread,8192);//5*PTHREAD_STACK_MIN);
|
||||||
|
|
||||||
#ifndef LOWLATENCY
|
#ifndef DEADLINE_SCHEDULER
|
||||||
sched_param_UE_thread.sched_priority = sched_get_priority_max(SCHED_FIFO);
|
sched_param_UE_thread.sched_priority = sched_get_priority_max(SCHED_FIFO);
|
||||||
pthread_attr_setschedparam(&attr_UE_thread,&sched_param_UE_thread);
|
pthread_attr_setschedparam(&attr_UE_thread,&sched_param_UE_thread);
|
||||||
sched_param_dlsch.sched_priority = sched_get_priority_max(SCHED_FIFO); //OPENAIR_THREAD_PRIORITY;
|
sched_param_dlsch.sched_priority = sched_get_priority_max(SCHED_FIFO); //OPENAIR_THREAD_PRIORITY;
|
||||||
|
|||||||
@@ -212,7 +212,7 @@ static void *UE_thread_synch(void *arg)
|
|||||||
printf("UE_thread_sync in with PHY_vars_UE %p\n",arg);
|
printf("UE_thread_sync in with PHY_vars_UE %p\n",arg);
|
||||||
printf("waiting for sync (UE_thread_synch) \n");
|
printf("waiting for sync (UE_thread_synch) \n");
|
||||||
|
|
||||||
#ifndef LOWLATENCY
|
#ifndef DEADLINE_SCHEDULER
|
||||||
int policy, s, j;
|
int policy, s, j;
|
||||||
struct sched_param sparam;
|
struct sched_param sparam;
|
||||||
char cpu_affinity[1024];
|
char cpu_affinity[1024];
|
||||||
@@ -701,7 +701,7 @@ static void *UE_thread_tx(void *arg)
|
|||||||
LOG_D(HW,"Started UE TX thread (id %p)\n",task);
|
LOG_D(HW,"Started UE TX thread (id %p)\n",task);
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#ifdef LOWLATENCY
|
#ifdef DEADLINE_SCHEDULER
|
||||||
struct sched_attr attr;
|
struct sched_attr attr;
|
||||||
unsigned int flags = 0;
|
unsigned int flags = 0;
|
||||||
|
|
||||||
@@ -920,7 +920,7 @@ static void *UE_thread_rx(void *arg)
|
|||||||
LOG_D(HW,"Started UE RX thread (id %p)\n",task);
|
LOG_D(HW,"Started UE RX thread (id %p)\n",task);
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#ifdef LOWLATENCY
|
#ifdef DEADLINE_SCHEDULER
|
||||||
struct sched_attr attr;
|
struct sched_attr attr;
|
||||||
unsigned int flags = 0;
|
unsigned int flags = 0;
|
||||||
|
|
||||||
@@ -1237,7 +1237,7 @@ void *UE_thread(void *arg)
|
|||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#ifdef LOWLATENCY
|
#ifdef DEADLINE_SCHEDULER
|
||||||
struct sched_attr attr;
|
struct sched_attr attr;
|
||||||
unsigned int flags = 0;
|
unsigned int flags = 0;
|
||||||
|
|
||||||
@@ -1616,7 +1616,7 @@ void *UE_thread(void *arg)
|
|||||||
|
|
||||||
int wait_sync_cnt = 0;
|
int wait_sync_cnt = 0;
|
||||||
int first_synch = 1;
|
int first_synch = 1;
|
||||||
#ifdef LOWLATENCY
|
#ifdef DEADLINE_SCHEDULER
|
||||||
struct sched_attr attr;
|
struct sched_attr attr;
|
||||||
unsigned int flags = 0;
|
unsigned int flags = 0;
|
||||||
// unsigned long mask = 1; // processor 0
|
// unsigned long mask = 1; // processor 0
|
||||||
@@ -1640,7 +1640,7 @@ void *UE_thread(void *arg)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef LOWLATENCY
|
#ifdef DEADLINE_SCHEDULER
|
||||||
attr.size = sizeof(attr);
|
attr.size = sizeof(attr);
|
||||||
attr.sched_flags = 0;
|
attr.sched_flags = 0;
|
||||||
attr.sched_nice = 0;
|
attr.sched_nice = 0;
|
||||||
|
|||||||
@@ -387,7 +387,7 @@ void *timer_proc(void *arg) {
|
|||||||
struct itimerspec *old_value;
|
struct itimerspec *old_value;
|
||||||
|
|
||||||
|
|
||||||
#ifdef LOWLATENCY
|
#ifdef DEADLINE_SCHEDULER
|
||||||
struct sched_attr attr;
|
struct sched_attr attr;
|
||||||
unsigned int flags = 0;
|
unsigned int flags = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
/*! \file rt_wrapper.h
|
/*! \file rt_wrapper.h
|
||||||
* \brief provides a wrapper for the timing function, runtime calculations for real-time opeartions depending on weather RTAI or LOWLATENCY kernels are used or not
|
* \brief provides a wrapper for the timing function, runtime calculations for real-time opeartions depending on weather RTAI or DEADLINE_SCHEDULER kernels are used or not
|
||||||
* \author F. Kaltenberger and Navid Nikaein
|
* \author F. Kaltenberger and Navid Nikaein
|
||||||
* \date 2013
|
* \date 2013
|
||||||
* \version 0.1
|
* \version 0.1
|
||||||
@@ -241,7 +241,7 @@ double get_runtime_rx(int rx_subframe, uint16_t runtime_phy_rx[29][6], uint32_t
|
|||||||
return runtime;
|
return runtime;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef LOWLATENCY
|
#ifdef DEADLINE_SCHEDULER
|
||||||
int sched_setattr(pid_t pid, const struct sched_attr *attr, unsigned int flags)
|
int sched_setattr(pid_t pid, const struct sched_attr *attr, unsigned int flags)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ double get_runtime_rx(int rx_subframe, uint16_t runtime_phy_rx[29][6], uint32_t
|
|||||||
* see https://www.kernel.org/doc/Documentation/scheduler/sched-deadline.txt or
|
* see https://www.kernel.org/doc/Documentation/scheduler/sched-deadline.txt or
|
||||||
* http://www.blaess.fr/christophe/2014/04/05/utiliser-un-appel-systeme-inconnu-de-la-libc/
|
* http://www.blaess.fr/christophe/2014/04/05/utiliser-un-appel-systeme-inconnu-de-la-libc/
|
||||||
*/
|
*/
|
||||||
#ifdef LOWLATENCY
|
#ifdef DEADLINE_SCHEDULER
|
||||||
|
|
||||||
#define gettid() syscall(__NR_gettid)
|
#define gettid() syscall(__NR_gettid)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user