- 26 Oct, 2020 1 commit
-
-
Quirin Gylstorff authored
Add the variable CCACHE_DIR to the build to move the ccache from ~/.ccache to the current directory and upload the cache from each build. Each job uses a separate cache. Signed-off-by:
Quirin Gylstorff <quirin.gylstorff@siemens.com> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 13 Oct, 2020 2 commits
-
-
Philippe Gerum authored
vfile_snapshot_open() may re-run the data collection loop in case we detected a race by checking the revision tag of the data set. Unfortunately, the seq_file is already open at this point, causing a leakage as seq_open() will be called again. The bug triggers after a while running the following commands concurrently: $ while : ; do cat /proc/xenomai/sched/stat > /dev/null; done & $ while : ; do switchtest -T 5; done As the private_data field of the backing file is not NULL once seq_open() has run, this bug triggers the following warning splat when calling it anew for the same file: [ 32.660548] WARNING: CPU: 0 PID: 446 at fs/seq_file.c:55 seq_open.cold+0xc/0x1a [ 32.670934] CPU: 0 PID: 446 Comm: cat Not tainted 4.19.89+ #16 [ 32.686078] I-pipe domain: Linux [ 32.689312] RIP: 0010:seq_open.cold+0xc/0x1a [ 32.693592] Code: 48 8b 74 24 08 e8 1e 5e f9 ff 48 8b 5d 18 48 8b 55 08 4c 01 f3 48 89 5d 18 e9 25 fe ff ff 48 c7 c7 00 99 2b 82 e8 32 71 de ff <0f> 0b e9 d3 db ff ff 90 90 90 90 90 90 90 41 57 41 56 41 55 41 54 [ 32.712354] RSP: 0018:ffff88815476f9b0 EFLAGS: 00010246 [ 32.717588] RAX: 0000000000000024 RBX: ffff888153ec7400 RCX: 0000000000000000 [ 32.724728] RDX: 1ffff1102b944a01 RSI: 0000000000000008 RDI: ffffed102a8edf2d [ 32.731873] RBP: ffffffff828c5560 R08: 0000000000000024 R09: ffffffff815d0644 [ 32.739016] R10: ffffed102b946f1c R11: ffff88815ca378e7 R12: ffff888153ec74c8 [ 32.746156] R13: ffffffff828c75a0 R14: ffff8881544ebb80 R15: ffff888155a2d9c8 [ 32.753299] FS: 00007ff225dc3740(0000) GS:ffff88815ca00000(0000) knlGS:0000000000000000 [ 32.761395] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 32.767152] CR2: 00007ff225eb8120 CR3: 0000000153d8c000 CR4: 00000000003406f0 [ 32.774289] Call Trace: [ 32.776746] vfile_snapshot_open+0x2a8/0x560 [ 32.781022] proc_reg_open+0x124/0x270 [ 32.784782] ? proc_i_callback+0x20/0x20 [ 32.788713] do_dentry_open+0x2ac/0x750 [ 32.792558] ? proc_i_callback+0x20/0x20 [ 32.796492] ? __x64_sys_fchmod+0x70/0x70 [ 32.800507] ? inode_permission.part.0+0x4f/0x180 [ 32.805219] ? security_inode_permission+0x13/0x60 [ 32.810015] path_openat+0x456/0x1b80 [ 32.813681] ? kmem_cache_alloc+0xd2/0x1c0 [ 32.817783] ? getname_flags+0x35/0x240 [ 32.821624] ? do_syscall_64+0x8a/0x240 [ 32.825466] ? __rcu_read_unlock+0x66/0x80 [ 32.829572] ? path_lookupat+0x430/0x430 [ 32.833497] ? find_get_pages_range_tag+0x3a0/0x3a0 [ 32.838381] ? finish_mkwrite_fault+0x1f0/0x1f0 [ 32.842916] do_filp_open+0x103/0x210 [ 32.846586] ? may_open_dev+0x50/0x50 [ 32.850253] ? __fdget+0xe0/0xe0 [ 32.853491] ? __virt_addr_valid+0xa6/0x100 [ 32.857677] ? check_stack_object+0x1f/0x60 [ 32.861864] ? __check_object_size+0x10c/0x1ce [ 32.866316] ? _raw_spin_unlock+0x9/0x30 [ 32.870245] ? __alloc_fd+0x115/0x220 [ 32.873910] do_sys_open+0x1c3/0x290 [ 32.877489] ? __do_page_fault+0x494/0x7b0 [ 32.881588] ? file_open_name+0x180/0x180 [ 32.885604] do_syscall_64+0x8a/0x240 [ 32.889270] entry_SYSCALL_64_after_hwframe+0x44/0xa9 Fix this by deferring the call to seq_open() until after the data is fully collected without race, which prevents any seq_file leakage on race by design. Signed-off-by:
Philippe Gerum <rpm@xenomai.org> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Vitaly Chikunov authored
Enable soname suffix with --enable-so-suffix configure option (Mercury core only). This will allow (for users) installing both versions of libs into the same system and (for distributions) having them without conflicts in the same repository. Such script is used to change Makefile.am-s: for lib in copperplate alchemy psos smokey trank vxworks do find -name Makefile.am \ | xargs -r \ sed -i -e "s/lib${lib}\.la/lib${lib}@CORE@\.la/g" \ -e "s/lib${lib}\_la/lib${lib}@CORE@\_la/g" done Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 28 Sep, 2020 3 commits
-
-
Vitaly Chikunov authored
When building Cobalt core ALT rpmbuild QA script detects that libmodechk is linked improperly: verify-elf: ERROR: ./usr/lib64/libmodechk.so.0.0.0: undefined symbol: cobalt_assert_nrt Signed-off-by:
Vitaly Chikunov <vt@altlinux.org> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Jan Kiszka authored
They only break building outside of the tree. Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Jan Kiszka authored
Makes the demo more portable. Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 21 Sep, 2020 1 commit
-
-
Fino Meng authored
Out of tree build will fail after porting xenomai to Linux kernel 5.4.y, update Makefiles and scripts to fix it. Signed-off-by:
Fino Meng <fino.meng@linux.intel.com> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 17 Sep, 2020 1 commit
-
-
Jan Kiszka authored
This not just traces garbage, it usually crashes the system one the tracepoint is enabled. Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 15 Sep, 2020 1 commit
-
-
Vitaly Chikunov authored
ALT rpmbuild QA script detects that libsmokey and libcopperplate is improperly linked (when built for Mercury core). Excerpt from the error message: verify-elf: ERROR: ./usr/lib64/libsmokey.so.0.0.0: undefined symbol: get_mem_size verify-elf: ERROR: ./usr/lib64/libcopperplate.so.0.0.0: undefined symbol: get_mem_size Signed-off-by:
Vitaly Chikunov <vt@altlinux.org> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 11 Sep, 2020 1 commit
-
-
Jan Leupold authored
__open_2() and __open64_2() from glibc add runtime precondition tests for the 'oflag' parameter to the functionality of open()/open64(). They may be used when the macro _FORTIFY_SOURCE is defined when compiling the application code. Added these wrappers to cover those cases. If Xenomai itself is not compiled with FORTIFY_SOURCE then the function declarations for __open_2() and __open64_2() are not available. __STD(__open_2(...)) will not link in this case (would be a very special use case anyway?). Signed-off-by:
Jan Leupold <leupold@rsi-elektrotechnik.de> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 04 Sep, 2020 1 commit
-
-
Quirin Gylstorff authored
Create a gitlab-ci.yml from .travis.yml. Changes are debian instead of ubuntu as base image. Signed-off-by:
Quirin Gylstorff <quirin.gylstorff@siemens.com> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 19 Aug, 2020 1 commit
-
-
Pintu Kumar authored
With CONFIG_XENO_OPT_PRIVATE_HEAPSZ, user can request any heap size based on their needs. For some application needs, this can grow as large as 4MB that is, 2^10 order pages, which is unlikely to succeed with kzalloc. Even the default (256KB) may fail on highly fragmented system. Moreover, for this heap allocation, we don't need physical contiguous memory. Thus vmalloc/vzalloc may be sufficient here. Note, we may also use kvzalloc/kvmalloc, but unfortunately these are not available in all kernel versions. Thus for backward compatibility we stick to vmalloc at least till we support 4.x kernel. Signed-off-by:
Pintu Kumar <pintu@codeaurora.org> Signed-off-by:
sunshilong <sunshilong369@gmail.com> Tested-by:
sunshilong <sunshilong369@gmail.com> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 12 Aug, 2020 1 commit
-
-
chensong authored
This a tool to benchmark the latency of GPIO driver, it's able to run 2 kinds of benchmark test: 1, loopback mode 1) apply 2 gpio pins by calling service in gpio RTDM driver like gpio-bcm2835 and gpio-core.c, one is as output, the other is as interrupt 2) call write_rt to send a pulse from output 3) call read_rt to get timestamps recorded in driver (inner loop) 4) also record timespace in user space(outer_loop) outer_loop is inner_loop plus overhead of event wakeup 5) ftrace enable/disable 2, react mode 1) apply 2 gpio pins by calling service in gpio RTDM driver like gpio-bcm2835 and gpio-core.c, one is as ourput, the other is as interrupt 2) call read_rt to wait for a pulse from latency box 3) call write_rt to send a signal back to latency box as a reaction 4) latency box calculates the diff and makes the histogram e.g.: 1) react mode: gpiobench -o 20 -i 21 -c pinctrl-bcm2835 -m 1 -l 1000 2) loopback mode: gpiobench -o 20 -i 21 -c pinctrl-bcm2835 -m 0 -l 1000 -h 100 -b 50 CC: Jan Kiszka <jan.kiszka@siemens.com> CC: Greg Gallagher <greg@embeddedgreg.com> Signed-off-by:
chensong <chensong@tj.kylinos.cn> [Jan: fixed time delta calculation and output for 32-bit targets] Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 02 Jun, 2020 1 commit
-
-
Joshua Karch authored
Signed-off-by:
Joshua Karch <jkarch48@hotmail.com> Signed-off-by:
Greg Gallagher <greg@embeddedgreg.com> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 24 Apr, 2020 2 commits
-
-
Laurentiu-Cristian Duca authored
In order to avoid a possible too early interrupt from the omap mcSPI controller, disable interrupts before writing the number of bytes from the SPI message that fill up the omap mcSPI controller queue, and enable interrupts after that. Signed-off-by:
Laurentiu-Cristian Duca <laurentiu.duca@gmail.com> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Vitaly Chikunov authored
Avoid possible prompt being redefined in `.gdbinit' which could break gdb test. Signed-off-by:
Vitaly Chikunov <vt@altlinux.org> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 19 Apr, 2020 1 commit
-
-
Norbert Lange authored
A header uses the off64_t which is only conditionally available, causing compile failures. The macro might be necessary to compile cobalt libraries, but should not be needed for software depending on them. Signed-off-by:
Norbert Lange <nolange79@gmail.com> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 14 Apr, 2020 1 commit
-
-
Jan Kiszka authored
Those functions will use plain copy_from/to_user, rather than the atomic variant needed over real-time contexts. So just copy the kernel logic into sys32_get/put_sigset. Fixes: 6ec708e1 ("Replace sigset_to/from_compat with post 4.14 versions") Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 06 Apr, 2020 1 commit
-
-
François LEGAL authored
The link order of IP protocols does not allow to do UDP/TCP over IP with RTNet builtin as protocol list gets zeroed by af_inet when initializing. Signed-off-by:
François LEGAL <devel@thom.fr.eu.org> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 02 Mar, 2020 1 commit
-
-
Greg Gallagher authored
Add new gpio RTDM driver for OMAP family of SOCs, tested on beaglebone black and beaglebone green (AM335x) Signed-off-by:
Greg Gallagher <greg@embeddedgreg.com> [Jan: enable also in CI] Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 20 Feb, 2020 1 commit
-
-
Matúš Olekšák authored
There is issue when you are using 64bit Linux and increasing RT_UDP_SOCKETS above 64, because on 64 bit Linux long has 64 bits instead of hardcoded 32 bits. This patch fixes the situation on both 32 and 64 bit OS. Signed-off-by:
Matúš Olekšák <oleksak.matus@gmail.com> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 19 Feb, 2020 1 commit
-
-
Jan Kiszka authored
This ensures that no optimization will drop dependencies of our shared objects, preventing to load them via dlopen without explicitly loading those dropped dependencies first. See also https://xenomai.org/pipermail/xenomai/2020-February/042449.html As trank now explicitly depends on alchemy, reorder the build to ensure that the latter is available before the former is built (analogy is only moved for consistency reasons). Reported-by:
Antoine Hoarau <antoine@flr.io> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 17 Feb, 2020 1 commit
-
-
Jan Kiszka authored
Put it where the rest goes as well. Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 10 Feb, 2020 2 commits
-
-
Stephen Freyder authored
Disable software reset by setting SRST_B=1 when writing to UCR2 in rt_imx_uart_set_config. Signed-off-by:
Stephen Freyder <steve@freyder.net> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Jan Kiszka authored
The rtdm test relies on successively free file descriptors which is violated by this test when the run after each other. Reported-by:
Gylstorff Quirin <quirin.gylstorff@siemens.com> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 04 Feb, 2020 1 commit
-
-
Jan Kiszka authored
Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 03 Feb, 2020 1 commit
-
-
Jan Kiszka authored
This is where OpenSUSE puts them, maybe others as well. Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 31 Jan, 2020 10 commits
-
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Philippe Gerum authored
Concurrent reads or writes to a buffer causing nested buffer space reservations could end up in a miscalculation of the number of bytes remaining to be read or written. Fix this by updating these counts only once the last reservation is committed. Signed-off-by:
Philippe Gerum <rpm@xenomai.org> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Philippe Gerum authored
Since the vfile export and unexport operations are asynchronous, returning from xnregistry_remove() is no guarantee that the registered object won't be further accessed, especially by the vfile export handler. Plug this race at least for all in-band callers removing objects while running on root stage like RTIPC protocols by synchronizing with the workqueue which handles deferred export/unexport requests, before returning from xnregistry_remove(). This does not cover the issue of removing objects from the head stage. Fortunately, all users of the vfile export/unexport mechanism are unregistering objects from the root stage only (typically some RTDM close() handler). This issue was reported by KASAN. Signed-off-by:
Philippe Gerum <rpm@xenomai.org> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Philippe Gerum authored
Running xnregistry_enter() then xnregistry_remove() in quick succession for the same object might cause the latter to NULLify the objaddr field while proc_callback() is busy calling the vfile export handler for the object, which is going to use that same value, certainly leading to a crash. This bug is due to the asynchronous nature of the vfile export/unexport process which is deferred to a regular workqueue on the root stage when kicked from the head stage. Fix this by adding a third logic state describing an aborted vfile export procedure, due to handling an object removal request while the workqueue is concurrently running for the same object. In addition, since an exported object might be stale before it is considered for export, do not anticipate on the next object to process in proc_callback() as list_for_each_entry_safe() would do, but always pick the list head under lock. At this chance, clarify the naming of the magic vfile values enumerating those states (i.e. XNOBJECT_EXPORT_xxx). Signed-off-by:
Philippe Gerum <rpm@xenomai.org> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Philippe Gerum authored
Signed-off-by:
Philippe Gerum <rpm@xenomai.org> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Philippe Gerum authored
We need this information for debugging purpose when latex stop mode is enabled (--enable-verbose-latex=yes). Signed-off-by:
Philippe Gerum <rpm@xenomai.org> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Philippe Gerum authored
WARN_IF_UNDOCUMENTED is switched to "NO" to prevent a truckload of useless warnings from Doxygen since most ioctl calls are not documented. Signed-off-by:
Philippe Gerum <rpm@xenomai.org> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Jan Kiszka authored
When we wait for all passed event bits to be set, we need to test for those bits, not the ones that are currently pending. The current code fails to detect that the condition is met when both the desired as well as other events are already pending. Reported by: Ronny Meeus <ronny.meeus@gmail.com> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Jan Kiszka authored
When we wait for all passed event bits to be set, we need to test for those bits, not the ones that are currently pending. The current code fails to detect that the condition is met when both the desired as well as other events are already pending. Reported by: Ronny Meeus <ronny.meeus@gmail.com> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Jan Kiszka authored
This fails so far due to a bug in the event wait implementations, both with cobalt and mercury. Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 22 Jan, 2020 1 commit
-
-
Henning Schild authored
This feature might not be widely used but those debian packages are supposed to be generic. Having it default on brings more benefits than drawbacks for generic packages. Signed-off-by:
Henning Schild <henning.schild@siemens.com> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 21 Jan, 2020 1 commit
-
-
Laurentiu-Cristian Duca authored
Updated SPI Makefile and Kconfig in order to contain the option to compile am335x beaglebone black omap4 spi real-time driver. Signed-off-by:
Laurentiu-Cristian Duca <laurentiu.duca@gmail.com> [Jan: enabled in CI build] Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 16 Jan, 2020 1 commit
-
-
Jan Kiszka authored
At least the copied-in files can and should be removed on uninstall, but we do not make any efforts to remove us again from a pre-existing udev.rules. Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-