- 05 Jun, 2021 40 commits
-
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
It is important to have the kernel build properly when EVL is disabled in Kconfig, and we want to reduce the noise in the mainline code involved in setting up the out-of-band file context without systematically resorting to inlined #ifdefery. Provide a couple of placeholders to enable this for CONFIG_EVL is off. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
We can reduce the noise due to adding EVL bits to upstream drivers by allowing them to be associated with in-line Kconfig conditional, e.g. if (IS_ENABLED(CONFIG_EVL)) evl_open_file(...); will still build if CONFIG_EVL is off as the dummy call is resolved in the statement. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Once the completion is signaled, a joiner might free the (k)thread descriptor memory. Make sure we don't refer to this descriptor after this point. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Waiting for the next RCU quiet period is not a reliable way to ensure the joiner won't resume too early before the joinee is fully dismantled in thread_factory_dispose(), which may lead to random UMR with kthreads (e.g. hectic freeing the task descriptor array before thread_factory_dispose() has run). Rework the mechanism to postpone the completion signal until thread_factory_dispose() is called, which solves the original problem in a much simpler and reliable way. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
We may collect negative delta values when sampling latency on fast machines, make sure the delta sum which is used in calculating the average is signed, to prevent weird results. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
The only sane way to issue a request for switching OOB via evl_switch_oob() is through oob_ioctl(), not ioctl(). Once the switch is done, the .unlocked_ioctl() operation would unwind into the VFS on the out-of-band stage, which would certainly be a bad idea. To reflect this, process EVL_THRIOC_SWITCH_OOB from oob_ioctl() exclusively. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Make sure breakage and/or WARN_ON() in the in-band transition code we use for fixing up a trap on the oob stage cannot cause handle_oob_trap() to be called recursively, leading to a stack overflow eventually. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Visible from class/evl/control/tp. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
SWITCH_INBAND, SWITCH_OOB, SET_MODE and CLEAR_MODE requests only apply to the caller and are mode-sensitive. Enforce these rules. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Elements: -------- Basic features that cant be implemented from userland sharable between processes. Threads, monitors, xbufs and clocks -> every instance is backed by a device in /dev/evl which allows sharing. Utilities --------- poll is a private-process construct; all poll groups are obtained from a single multiplex device: /dev/evl/poll. They cannot be shared. timers are in essence timerfd directly obtained from clocks, they don't exist on their own, and are process-local too. proxies are backed by a device in /dev/evl to allow for sharing, but this is not something essential. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
The more CPUs we have, the more threads hectic instantiates. So move to 256 threads by default to cope with 8-core systems with no specific tuning. Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org>
-