ubilinux and PREEMPT_RT kernel support

machinekoder
machinekoder New Member Posts: 14

It would be great if ubilinux would support a PREEMPT_RT patched kernel. Upstream Debian comes with an RT kernel, so it wouldn't be hard to compile one for ubilinux as well.

I'm also willing to do this myself. Can you please confirm that these instructions work for ubilinux: https://wiki.up-community.org/Compile_ubilinux_kernel_from_source

Also, which kernel patch version is the current is the kernel on branch upboard-4.9? So I can select the correct RT patch.

Comments

  • Jesse Kaukonen
    Jesse Kaukonen New Member Posts: 42 ✭✭

    The kernel is 4.9.65, and I've used those instructions without issues.

  • ccalde
    ccalde New Member Posts: 348 ✭✭✭

    Hi @machinekoder ,

    The instructions are working properly for Ubilinux kernel.

    Cheers!

  • machinekoder
    machinekoder New Member Posts: 14

    Thanks, the instructions work great to build a kernel for upstream Debian:

    uname -a
    Linux upsquared 4.9.45-rt57-upboard-rt+ #1 SMP PREEMPT RT Thu Aug 9 12:02:41 CEST 2018 x86_64 GNU/Linux

    Applying the RT patches worked perfectly, I only had to manually modify one file afterward.

    @Jesse Kaukonen The pach level seems to be 4.9.45 in my case.

  • DCleri
    DCleri Administrator, AAEON Posts: 1,213 admin

    Great machinekoder!

    Can you share a link to the source code/configuration on github so we could add to the wiki?

  • machinekoder
    machinekoder New Member Posts: 14

    I've created a description on my blog: https://machinekoder.com/compiling-an-rt-kernel-for-the-up-suared/

    However, the RT performance I get out of the Up^2 isn't really good so far. cyclic test gets me a latency of about 150us, even after tuning various kernel parameters. We have seen similar behavior with some wifi cards on other systems. I don't have a wifi card in my setup, but there might some other hardware causing problems. Does anyone know if there is another peripheral that could cause problems with RT latency on the Up^2?

  • eduncan911
    eduncan911 Administrator, Moderator Posts: 157 admin
    edited October 2018

    @machinekoder said:
    I've created a description on my blog: https://machinekoder.com/compiling-an-rt-kernel-for-the-up-suared/

    However, the RT performance I get out of the Up^2 isn't really good so far. cyclic test gets me a latency of about 150us, even after tuning various kernel parameters. We have seen similar behavior with some wifi cards on other systems. I don't have a wifi card in my setup, but there might some other hardware causing problems. Does anyone know if there is another peripheral that could cause problems with RT latency on the Up^2?

    Taking a look at the UP^2 block diagram:

    I would start to disable a number if components to see what might be causing the blocking calls, though there isn't much.

    Maybe try disabling the Realtek NICs over PCIe; but, does PCIe cause blocking in kernel threads?

    The GPIO header uses several paths for the FPGA. However, I am not sure it can be completely disabled with the GPIO settings in the bios.

    Besides those, there is not much left that are not native to the chipset.

    Eric Duncan - UP Evangelist - My thoughts are of my own free will

    Answered? Please remember to mark the posted answered to highlight it for future visitors!

  • Marcin
    Marcin New Member Posts: 1

    Hi, I was following the instructions of @machinekoder for upboard squared with exactly the same version of kernel and patch, but I've got the following error on boot:
    mmc0: mmc_select_hs200 failed, error -84
    mmc0: error -84 whilst initialising MMC card

    Also I get the following output of dmesg with another, working kernel:
    mmc0: new HS400 MMC card at address 0001.

    I though maybe I didn't enable appropriate drivers in the kernel config, but that wasn't the case. Do you have any ideas of possible reasons of that failure?

    I tried with newer kernel (4.19.31) + RT preempt patch (4.19.31-rt18). Kernel boots successfully.
    The supported version of kernel is 4.15, but in the repository https://github.com/emutex/ubilinux-kernel I could only find version 4.9.

    Is there a recent source available?

    Best regards, Marcin