1. 18 Mar, 2019 1 commit
    • Jan Kiszka's avatar
      cobalt: Add sched-quota tracepoints · 4f0f067a
      Jan Kiszka authored
      
      
      This instruments the sched-quota scheduling policy to track which groups
      exit, with which settings, and which threads belong to them.
      
      As trace_cobalt_schedquota_add_thread may be invoked before a thread is
      fully initialized, we need to trace also the thread address.
      Signed-off-by: Jan Kiszka's avatarJan Kiszka <jan.kiszka@siemens.com>
      4f0f067a
  2. 03 Jul, 2018 11 commits
  3. 01 Jul, 2017 1 commit
  4. 09 May, 2017 1 commit
  5. 14 May, 2016 1 commit
  6. 02 Mar, 2016 1 commit
  7. 27 Nov, 2015 1 commit
  8. 10 Nov, 2015 1 commit
  9. 30 Sep, 2015 2 commits
  10. 06 Aug, 2015 1 commit
  11. 06 Jul, 2015 1 commit
  12. 18 Jun, 2015 1 commit
  13. 01 Jan, 2015 1 commit
  14. 15 Nov, 2014 1 commit
    • Philippe Gerum's avatar
      cobalt/rtdm/mutex: fix rtdm_mutex_timedlock() · ef0992d6
      Philippe Gerum authored
      The fast path in rtdm_mutex_timedlock() was terminally broken by the
      not-so-recent addition of fast locks to RTDM-based kernel mutexes. As
      a matter of fact, the xnthread_try_grab() helper suffered multiple
      breakages, including the lack of update to the underlying fastlock
      word to reflect a successful locking operation.
      
      To this end, we introduce xnsynch_try_acquire() which properly
      attempts to grab the requested mutex on behalf of the current thread,
      and call it as a drop-in replacement for xnthread_try_grab().  Callers
      fall back to xnsynch_acquire() on failure to put a fast grab on the
      mutex.
      ef0992d6
  15. 17 Oct, 2014 1 commit
  16. 21 Sep, 2014 5 commits
    • Philippe Gerum's avatar
      cobalt/rtdm: align naming on kernel standards · 29d24b41
      Philippe Gerum authored
      Rename rtdm_device_class to rtdm_driver, since this is basically what
      it is.
      
      Some sysfs attributes of devices have been updated to better conform
      to the kernel standards as well.
      29d24b41
    • Philippe Gerum's avatar
      cobalt/rtdm: drop poll_delay from rtdm_dev_unregister() · 0b21549f
      Philippe Gerum authored
      Sleep indefinitely on a plain waitqueue instead of polling, until the
      device becomes idle. For this reason, the routine loses its return
      value as well, as drivers are most often not willing to deal with
      receiving a device busy condition from a module exit routine (which is
      the place devices should be unregistered from).
      
      Drivers which really want to deal with such condition should simply
      use module refcounting in their own code.
      0b21549f
    • Philippe Gerum's avatar
      cobalt/rtdm: drop redundant information from rtdm_device_class · 42ba9f06
      Philippe Gerum authored
      Convert .provider_name to MODULE_AUTHOR(), .peripheral_name to
      MODULE_DESCRIPTION() and .driver_version to MODULE_VERSION()
      respectively, if not already present.
      
      Drop .driver_name entirely as it brings no information we could not
      get from reading the module name.
      42ba9f06
    • Philippe Gerum's avatar
      cobalt/rtdm, kernel/drivers: split device class / instance abstractions · 1909729e
      Philippe Gerum authored
      How devices are described for registration with rtdm_dev_register() is
      significantly modified, affecting both named and protocol device
      drivers exactly the same way. Aside of fixing consistency issues, the
      bulk of changes is aimed at narrowing the gap between the regular
      Linux device driver model and RTDM.
      
      RTDM now shares the Linux namespace for named devices, which are
      backed by common character device objects from the regular Linux
      device model. As a consequence of this, file descriptors obtained on
      named RTDM devices are regular file descriptors on real chrdevs,
      visible from the /proc/<pid>/fd interface.
      
      The major change required for supporting this closer integration of
      RTDM into the regular Linux driver model involved splitting the device
      class properties from the device instance definitions, which used to
      be combined in Xenomai 2.x into the rtdm_device descriptor.
      
      A new rtdm_device_class descriptor is introduced, for describing the
      general static properties of the devices exposed by a
      driver. rtdm_device now represents an instance of such class.
      
      rtdm_device objects link to the descriptor of the rtdm_device class
      they belong to.
      
      Hotplug support
      ---------------
      
      RTDM first allocates and reserves a major and a range of device minors
      when the first device of a named device class is registered via
      rtdm_dev_register(). Up to class->device_count minors will be
      reserved. Minor number are assigned to devices in order of
      registration, starting from minor #0.
      
      Device nodes for named RTDM devices are automatically visible from the
      /dev/rtdm/ hierarchy with hotplug-enabled device fs (DEVTMPFS now
      recommended).
      1909729e
    • Philippe Gerum's avatar
      cobalt/syscall: fix in/out value types · 2378a739
      Philippe Gerum authored
      2378a739
  17. 09 Sep, 2014 2 commits
  18. 03 Sep, 2014 1 commit
    • Philippe Gerum's avatar
      cobalt: make core handle type 32/64bit-neutral · b5ecfc98
      Philippe Gerum authored
      There is no point in using 64bit long Cobalt handles internally on
      64bit platforms. However it makes sense to keep them as 32bit values
      so that we may use them as atomic operands on either sides of a
      64bit(kernel) <-> 32bit(user) ABI.
      
      At this chance, boilerplate/atomic.h is sanitized for disambiguating
      regular and long atomic set/get operations.
      b5ecfc98
  19. 21 Aug, 2014 1 commit
  20. 11 Aug, 2014 1 commit
    • Philippe Gerum's avatar
      cobalt/intr: introduce IRQ disabled state · aefaab5d
      Philippe Gerum authored
      With the IRQ line enable/disable operations restricted to the root
      domain, interrupt handlers may not invoke xnintr_disable() directly to
      shut down the interrupt line.
      
      To support this requirement, we add an explicit disabled state to the
      interrupt descriptor, which the handler may turn on by returning the
      new XN_IRQ_DISABLE operation status. In response, the core disables
      the descriptor, shutting down the interrupt line in the same move
      instead of unmasking it on return from the interrupt context.
      
      XN_IRQ_DISABLE is exposed by RTDM as RTDM_IRQ_DISABLE.
      
      As a consequence of this change, XN_ISR_NOENABLE was dropped as we
      have no in-tree client which need such semantics anymore.
      
      At this chance, various naming and documentation fixes have been
      applied.
      aefaab5d
  21. 07 Aug, 2014 1 commit
    • Philippe Gerum's avatar
      cobalt/rtdm: introduce mmap() support · c8e9e166
      Philippe Gerum authored
      The new ->mmap() handler is introduced in the device operation
      descriptor. This service is restricted to secondary mode, switching a
      primary mode caller accordingly when invoked from an application.
      
      The prototype is:
      
      int mmap_handler(struct rtdm_fd *fd, struct vm_area_struct *vma);
      
      The semantics are identical to the corresponding handler from the
      regular linux file operations. The only difference is about receiving
      a RTDM file descriptor (struct rtdm_fd) instead of a regular struct
      file pointer. As such, a valid vma descriptor covering the target user
      address space is passed to the handler, therefore common mapping
      operations may be performed on it.
      
      Two new convenience routines for mapping a chunk of kernel memory and
      a physical I/O address range are provided, i.e. rtdm_mmap_kmem() and
      rtdm_mmap_iomem() respectively. Both take a vma descriptor as received
      by the ->mmap() handler, and the appropriate virtual/physical start
      address of the memory range to map to the target address range in
      user-space.
      
      The existing rtdm_mmap_to_user() and rtdm_iomap_to_user() calls are
      kept unmodified. The ->mmap() introduction has no impact on existing
      drivers currently relying on these calls.
      c8e9e166
  22. 17 Jul, 2014 1 commit
  23. 03 Jul, 2014 1 commit
  24. 01 Jul, 2014 1 commit
    • Philippe Gerum's avatar
      cobalt: fix naming consistency issues with *_np() calls · 50bd5540
      Philippe Gerum authored
      To match the GNU extension equivalent, pthread_set_name_np() is
      renamed to pthread_setname_np(). For consistency with the previous
      change, pthread_set_mode_np() becomes pthread_setmode_np().
      
      The former calls will be available from the upcoming transition kit.
      50bd5540