1. 07 Sep, 2021 3 commits
    • Philippe Gerum's avatar
      lib/init: do not look for vDSO support on Valgrind · 3cdad2b0
      Philippe Gerum authored
      There is no vDSO support with Valgrind. Detect when running on top of
      such virtual machine using the Valgrind API, picking the fallback
      clock_gettime() implementation if so.
      This is not a problem since the EVL core does intercept and honor this
      syscall directly from the out-of-band stage as needed. The incurred
      overhead is negligible compared to what Valgrind already adds anyway.
      Also, provide a placeholder for valgrind/valgrind.h which should be
      picked when Valgrind is not installed on the build system.
      Signed-off-by: Philippe Gerum's avatarPhilippe Gerum <rpm@xenomai.org>
    • Philippe Gerum's avatar
      lib/syscall: convert to prctl-based syscall form · 2dcda22d
      Philippe Gerum authored
      The syscall form used for issuing requests to the companion core is
      based on ORing __OOB_SYSCALL_BIT to the syscall register for tagging
      an out-of-band syscall, which is outside of the valid in-band range
      for syscall numbers.
      Unfortunately, this method has a major drawback: tools like Valgrind
      which track system calls issued by applications may choke on
      out-of-band system calls since these do not belong to the common set
      it recognizes. Although adding syscall wrappers to Valgrind might be a
      solution, this would not be the most practical one for dual kernel
      syscall interfaces. The most practical approach would be to piggyback
      on an existing system call which Valgrind (and others) already
      recognizes. For this reason, Dovetail introduced a new syscall form
      based on the regular prctl(2) syscall.
      In order to benefit from this feature, EVL syscalls are now folded
      into a prctl() request, which the core receives.
      This change introduces ABI #27. Recent revisions of the EVL core
      support both the former ABI and the new (prctl-based) one
      Signed-off-by: Philippe Gerum's avatarPhilippe Gerum <rpm@xenomai.org>
    • Philippe Gerum's avatar
      lib/init: factor out generic vDSO lookup task · 5c9efb88
      Philippe Gerum authored
      There is no point in specializing the resolution of clock_gettime() in
      the vDSO on a per-arch basis. This is mostly generic code with only a
      couple of arch-specific identifiers we need, which we can leave into
      the arch/ area.
      Move the bulk of the symbol resolution code to the generic init
      routine, adding asm/evl/vdso.h for storing the few arch-specific bits
      such code still depends on.
      Signed-off-by: Philippe Gerum's avatarPhilippe Gerum <rpm@xenomai.org>
  2. 05 Sep, 2021 1 commit
  3. 21 Aug, 2021 2 commits
  4. 03 Aug, 2021 1 commit
  5. 30 Jun, 2021 1 commit
    • Philippe Gerum's avatar
      utils: evl/test: silence pedantic warning from 'find' · a1ac1ac6
      Philippe Gerum authored
      Address this warning from the 'find' command used in the evl-test
      "find: warning: you have specified the global option -maxdepth after
      the argument -type, but global options are not positional, i.e.,
      -maxdepth affects tests specified before it as well as those specified
      after it.  Please specify global options before other arguments."
  6. 13 Jun, 2021 1 commit
  7. 13 May, 2021 1 commit
  8. 01 Mar, 2021 1 commit
    • Philippe Gerum's avatar
      include/tube: fix queue remove/add race · edb5af7f
      Philippe Gerum authored
      A receiver could get a spurious empty tube status, due to
      receive_tube() racing with send_tube(). See the added comments into
      the code for details about the resolution.
      At this chance, guard against load/store tearing on shared pointers.
      Pending issue: we still have a potential connectivity issue between
      the prep and finish ops when pushing to a tube.
      Signed-off-by: Philippe Gerum's avatarPhilippe Gerum <rpm@xenomai.org>
  9. 07 Feb, 2021 5 commits
  10. 13 Dec, 2020 5 commits
  11. 12 Dec, 2020 4 commits
  12. 11 Nov, 2020 1 commit
  13. 10 Nov, 2020 1 commit
  14. 20 Sep, 2020 1 commit
    • lio's avatar
      lib:fix possible returning EINVAL when evl_attach* called by SCHED_RR threads · f20f616f
      lio authored and Philippe Gerum's avatar Philippe Gerum committed
      When evl_attach_thread() was called,  a local stack variable *attrs* will copy-
      from-user to linux-evl. The problem is that *attrs* initializes only two of its
      members:attrs.sched_policy and attrs.sched_priority, but none of the other
      members are initialized.
      These uninitialized may be "zero" or any other random values, for example:
      attrs->sched_rr_quantum may be some none-zero value when the threads under
      discussion is a SCHED_RR task.
      In this case, *attrs* copyed to linux-evl in *thread_common_ioctl()*, and
      attrs->sched_rr_quantum is none-zero value; then fllowed call *set_time_slice*
      will lead to a -EINVAL return for meet *quantum <= evl_get_clock_gravity()*.
      This patch will initialize all members of *attrs* to zero.
      Signed-off-by: default avatarlio <liu.hailong6@zte.com.cn>
  15. 13 Sep, 2020 1 commit
  16. 16 Jul, 2020 2 commits
  17. 04 Jul, 2020 1 commit
  18. 14 Jun, 2020 3 commits
  19. 01 Jun, 2020 3 commits
  20. 27 May, 2020 2 commits