Thanks, that is what I suspected.

The main test for rt-preempt in rtapi_compat.c , is getting the value in /sys/kernel/realtime, which should exist and be '1'
If that does not exist, it is going to default to POSIX, which is the base fallback.

That is what has been happening.

I would expect a rt-preempt kernel to have a config with the following set:

CONFIG_PREEMPT=y
CONFIG_PREEMPT_RT_BASE=y
CONFIG_HAVE_PREEMPT_LAZY=y
CONFIG_PREEMPT_LAZY=y
CONFIG_PREEMPT_RT_FULL=y
CONFIG_PREEMPT_COUNT=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT__LL is not set
# CONFIG_PREEMPT_RTB is not set

You can see the differences.

If that kernel works, you can force the flavor detection by setting the env var,
but without those options set when built, not clear how realtime it can be.

On 19/02/19 16:26, Condit Alan wrote:
Schooner and Robert,

OK, here is what I see when I run those tests. Rather than grep the results of uname -r, I just printed out uname -r. 

machinekit@beaglebone:~$ cat /sys/kernel/realtime
cat: /sys/kernel/realtime: No such file or directory
machinekit@beaglebone:~$ cat /boot/config-4.19.23-bone-rt-r22 | grep CONFIG_PREEMPT_RT_FULL=yes
machinekit@beaglebone:~$
machinekit@beaglebone:~$ uname -a
Linux beaglebone 4.19.23-bone-rt-r22 #1stretch Sat Feb 16 22:07:49 UTC 2019 armv7l GNU/Linux


Actually looking at /boot/config-4.19.23-bone-rt-r22 here is what I found with respect to CONFIG_PREEMPT_*
CONFIG_HAVE_PREEMPT_LAZY=y
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT__LL is not set
# CONFIG_PREEMPT_RTB is not set
# CONFIG_PREEMPT_RT_FULL is not set

Even though machinekit “runs” i.e., starts up, it is clear that rt-preempt is not configured correctly to run machinekit in realtime. I can’t run my linux pc at the moment to look at how that config should be set, but I believe that at the very least these changes should be made

# CONFIG_HAVE_PREEMPT_LAZY
# CONFIG_PREEMPT_NONE
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT__LL is not set
# CONFIG_PREEMPT_RTB is not set
CONFIG_PREEMPT_RT_FULL=y 

Thanks,
Alan

On Feb 19, 2019, at 1:42 AM, [email protected] wrote:

That is one way to deal with it.
rtapi_compat.c first checks the env var FLAVOR, before trying to determine other ways

Run these tests from a terminal and let us know what result you get

cat /sys/kernel/realtime     (should return 1)
cat /boot/config-<kernel-version>  | grep CONFIG_PREEMPT_RT_FULL=yes  ( should return CONFIG_PREEMPT_RT_FULL=yes)
uname -a | grep 'PREEMPT RT'  ( should  return PREEMPT RT - but we already know it won't)

There is something screwy about the 4.19 kernel and rt.  I stopped using the Debian rt-amd64 version and reverted to 4.18 because of problems


On 19/02/19 04:44, mugginsac wrote:
Robert just furnished a new test image. It definitely has an rt-preempt kernel, when I exported FLAVOR=rt-preempt, it ran machinekit.
However, before I exported FLAVOR=rt-preempt, machinekit tried to run the posix realtime stuff (term of art).

So, the question is how does machinekit try to determine the nature of the kernel that it is running on?

Robert asked if we should just set FLAVOR=rt-preempt in the environment when we create the uSD. Is that acceptable?


--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to the Google Groups "Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
Visit this group at https://groups.google.com/group/machinekit.
For more options, visit https://groups.google.com/d/optout.


--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to a topic in the Google Groups "Machinekit" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/machinekit/J9A7m9c8k74/unsubscribe.
To unsubscribe from this group and all its topics, send an email to [email protected].
Visit this group at https://groups.google.com/group/machinekit.
For more options, visit https://groups.google.com/d/optout.


--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to the Google Groups "Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
Visit this group at https://groups.google.com/group/machinekit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to