# @name SMP IRQ Affinity with EMMC
# @desc Check that emmc interrupts assigned to different CPUs complete without errors
# @requires smp && emmc
# @setup_requires emmc
SMP_S_FUNC_IRQAFF_EMMC_NOLB_C1 source 'common.sh';  num_cores=`cat /sys/devices/system/cpu/online`; echo $num_cores | grep -E '[[:digit:]]+\-' > /dev/null && (instance_num=`get_blk_device_devnode_instance_num.sh "emmc"` && echo "instance to test: $instance_num" && IRQ=`get_irq_for_iface.sh -i "mmc$instance_num"` && echo "IRQ for mmc$instance_num is $IRQ" && PRE=`get_num_interrupts_for_irq.sh -i $IRQ -c 0` && echo "1" > /proc/irq/$IRQ/smp_affinity  && echo "PRE is $PRE" && run_processes.sh -c "/opt/ltp/runltp -f ddt/emmc_dd_rw -P $PLATFORM -s EMMC_S_FUNC_DD_RW_QUICK" && POST=`get_num_interrupts_for_irq.sh -i $IRQ -c 0` && echo "POST is $POST" && [[ $POST -gt $PRE ]] )

SMP_S_FUNC_IRQAFF_EMMC_NOLB_C1_NEGATIVE_TEST source 'common.sh';  num_cores=`cat /sys/devices/system/cpu/online`; echo $num_cores | grep -E '[[:digit:]]+\-' > /dev/null && (instance_num=`get_blk_device_devnode_instance_num.sh "emmc"` && echo "instance to test: $instance_num" && IRQ=`get_irq_for_iface.sh -i "mmc$instance_num"` && echo "IRQ for mmc$instance_num is $IRQ" && PRE=`get_num_interrupts_for_irq.sh -i $IRQ -c 1` && echo "1" > /proc/irq/$IRQ/smp_affinity  && run_processes.sh -c "/opt/ltp/runltp -f ddt/emmc_dd_rw -P $PLATFORM -s EMMC_S_FUNC_DD_RW_QUICK" && POST=`get_num_interrupts_for_irq.sh -i $IRQ -c 1` && [[ $POST -eq $PRE ]] )

SMP_M_FUNC_IRQAFF_EMMC_NOLB_C1_NEGATIVE_TEST source 'common.sh';  num_cores=`cat /sys/devices/system/cpu/online`; echo $num_cores | grep -E '[[:digit:]]+\-' > /dev/null && (instance_num=`get_blk_device_devnode_instance_num.sh "emmc"` && echo "instance to test: $instance_num" && IRQ=`get_irq_for_iface.sh -i "mmc$instance_num"` && echo "IRQ for mmc$instance_num is $IRQ" && PRE=`get_num_interrupts_for_irq.sh -i $IRQ -c 1` && echo "1" > /proc/irq/$IRQ/smp_affinity  && run_processes.sh -c "/opt/ltp/runltp -f ddt/emmc_dd_rw -P $PLATFORM -s EMMC_M_FUNC_DD_RW_20TIMES" && POST=`get_num_interrupts_for_irq.sh -i $IRQ -c 1` && [[ $POST -eq $PRE ]] )

SMP_S_FUNC_IRQAFF_EMMC_NOLB_C2 source 'common.sh';  num_cores=`cat /sys/devices/system/cpu/online`; echo $num_cores | grep -E '[[:digit:]]+\-' > /dev/null && (instance_num=`get_blk_device_devnode_instance_num.sh "emmc"` && echo "instance to test: $instance_num" && IRQ=`get_irq_for_iface.sh -i "mmc$instance_num"` && echo "IRQ for mmc$instance_num is $IRQ" && PRE=`get_num_interrupts_for_irq.sh -i $IRQ -c 1` && echo "2" > /proc/irq/$IRQ/smp_affinity  && run_processes.sh -c "/opt/ltp/runltp -f ddt/emmc_dd_rw -P $PLATFORM -s EMMC_S_FUNC_DD_RW_QUICK" && POST=`get_num_interrupts_for_irq.sh -i $IRQ -c 1` && [[ $POST -gt $PRE ]] )

SMP_S_FUNC_IRQAFF_EMMC_NOLB_C2_NEGATIVE_TEST source 'common.sh';  num_cores=`cat /sys/devices/system/cpu/online`; echo $num_cores | grep -E '[[:digit:]]+\-' > /dev/null && (instance_num=`get_blk_device_devnode_instance_num.sh "emmc"` && echo "instance to test: $instance_num" && IRQ=`get_irq_for_iface.sh -i "mmc$instance_num"` && echo "IRQ for mmc$instance_num is $IRQ" && PRE=`get_num_interrupts_for_irq.sh -i $IRQ -c 0` && echo "2" > /proc/irq/$IRQ/smp_affinity  && run_processes.sh -c "/opt/ltp/runltp -f ddt/emmc_dd_rw -P $PLATFORM -s EMMC_S_FUNC_DD_RW_QUICK" && POST=`get_num_interrupts_for_irq.sh -i $IRQ -c 0` && [[ $POST -eq $PRE ]] )

SMP_L_FUNC_IRQAFF_EMMC_NOLB_C2_NEGATIVE_TEST source 'common.sh';  num_cores=`cat /sys/devices/system/cpu/online`; echo $num_cores | grep -E '[[:digit:]]+\-' > /dev/null && (instance_num=`get_blk_device_devnode_instance_num.sh "emmc"` && echo "instance to test: $instance_num" && IRQ=`get_irq_for_iface.sh -i "mmc$instance_num"` && echo "IRQ for mmc$instance_num is $IRQ" && PRE=`get_num_interrupts_for_irq.sh -i $IRQ -c 0` && echo "2" > /proc/irq/$IRQ/smp_affinity  && run_processes.sh -c "/opt/ltp/runltp -f ddt/emmc_dd_rw -P $PLATFORM -s EMMC_M_FUNC_DD_RW_20TIMES" && POST=`get_num_interrupts_for_irq.sh -i $IRQ -c 0` && [[ $POST -eq $PRE ]] )

SMP_M_FUNC_IRQAFF_EMMC_LB source 'common.sh';  num_cores=`cat /sys/devices/system/cpu/online`; echo $num_cores | grep -E '[[:digit:]]+\-' > /dev/null && (instance_num=`get_blk_device_devnode_instance_num.sh "emmc"` && echo "instance to test: $instance_num" && IRQ=`get_irq_for_iface.sh -i "mmc$instance_num"` && echo "IRQ for mmc$instance_num is $IRQ" && echo "3" > /proc/irq/$IRQ/smp_affinity  && run_processes.sh -c "/opt/ltp/runltp -f ddt/emmc_dd_rw -P $PLATFORM -s EMMC_S_FUNC_DD_RW_QUICK" )
