]> rtime.felk.cvut.cz Git - can-benchmark.git/blobdiff - tests/_lib.sh
Do not modify IRQ priority under non-rt kernel
[can-benchmark.git] / tests / _lib.sh
index 5eb70fd419641a0f11d6d2f24e74faec0b148683..4dbbc400bbe83595448493c0cb2c7f0b27b5be55 100644 (file)
@@ -11,10 +11,19 @@ set -e
 
 PATH=$PWD/../_compiled/bin/:$PATH
 
+RTPRIO=60
+
+boost_irq_prio() {
+    local PRIO=${1:-50}
+    CAN_IRQ=`sed -ne '/can/ s/:.*//p' /proc/interrupts`
+    if [ -n "$CAN_IRQ" ]; then
+       IRQ_PID=`pidof IRQ-${CAN_IRQ/ /}` || true
+       [ -z "$IRQ_PID" ] || schedtool -F -p $PRIO $IRQ_PID 
+    fi
+}
+
 rmmod_can() {
-    modprobe -r lincan
-    modprobe -r kvaser_pci
-    modprobe -r vcan
+    modprobe -r lincan kvaser_pci vcan
 }
 
 prepare_lincan_hw() {
@@ -62,6 +71,8 @@ prepare_socketcan_virtual() {
 run_tests() {
     tests=${TESTS:-socketcan_hw lincan_hw}
     for i in $tests; do
+       cpufreq-set -f 2400MHz
+       boost_irq_prio 50
        prepare_$i
        t
     done