1. 17 Dec, 2019 1 commit
  2. 15 Apr, 2019 1 commit
  3. 24 Jan, 2014 1 commit
  4. 22 Jan, 2014 1 commit
  5. 18 Jan, 2014 1 commit
    • Federico Vaga's avatar
      zio-trig-hrt.c: change relative time from 1h to 10s · 05e6986d
      Federico Vaga authored
      The in-kenrel hrt uses absolute times, and so does the zio trigger
      based on it.  However, for testing in shell scripts, relative times
      are easier to handle.  We accepted any "absolute" time less than 1 hour
      to be considered relative, but then we realized some embedded systems
      have no real-world time notion, so they start at Jan 1st 1970.
      
      This decreases relative times to 10s, assuming it's enough for shell
      scripts during testing and short enough to allow the rare embedded system
      to be later than tat by the time zio runs.
      Signed-off-by: 's avatarFederico Vaga <federico.vaga@gmail.com>
      Acked-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      05e6986d
  6. 08 Jan, 2014 1 commit
  7. 30 Oct, 2013 1 commit
  8. 27 Mar, 2013 1 commit
  9. 21 Jan, 2013 2 commits
  10. 10 Jan, 2013 6 commits
    • Alessandro Rubini's avatar
      core and triggers: a trigger should start disabled · 740978cf
      Alessandro Rubini authored
      If the trigger is enabled on creation, it may fire before the cset is
      ready.  This happened to me with "modprobe zio-zero trigger=irq".
      For this reason it must start disabled. Also, the create
      method MUST set ti->cset before activating the trigger, because the
      cset lock is needed to access the enable/disable flag.
      
      The commit adds a WARN() if the field is not set after creation, then
      it leaves it zeroed to ensure the system will crash, instead of having
      a subtle race.
      
      Also, add a pair of FIXME notes about the need to allow changing
      a trigger type while leaving the new one disabled.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      Acked-by: 's avatarFederico Vaga <federico.vaga@gmail.com>
      740978cf
    • Alessandro Rubini's avatar
      core and doc: fix: the cset spinlock must be called in irqsave mode · 1962a288
      Alessandro Rubini authored
      This is a bug fix for overlooks in this same series of commits. I
      won't fix each lock when it is introduced before proposing for master,
      because it takes too much time.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      Acked-by: 's avatarFederico Vaga <federico.vaga@gmail.com>
      1962a288
    • Alessandro Rubini's avatar
      713d29ad
    • Alessandro Rubini's avatar
      72557096
    • Alessandro Rubini's avatar
      zio.h and docs: introduce ZIO_CSET_SELF_TIMED · 23236075
      Alessandro Rubini authored
      The flag is need so self-timed devices, like a TDC, can have their
      trigger continuously armed (see next commit).
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      Acked-by: 's avatarFederico Vaga <federico.vaga@gmail.com>
      23236075
    • Alessandro Rubini's avatar
      core: change some internals for triggers · a496ca04
      Alessandro Rubini authored
      This is the first step of a series of changes aimed at a cleaner and
      more flexible management of triggers, as well as a really transparent
      "user" trigger.
      
      This commit does the following:
      
      - zio_fire_trigger renamed to zio_arm_trigger: the trigger is
      actually armed by software, and then it fires by hardware. This
      distinction is especially important for the transparent trigger: when
      devices have internal timing, the software trigger must arm it
      immediately (as opposed to the dumb devices, where the software trigger
      really causes I/O to happen).
      
      - ZIO_TI_BUSY renamed to ZIO_TI_ARMED. Also, ZIO_TI_COMPLETING is
      removed. The new, simplified policy is like this: the trigger is armed
      by software (the trigger module), but completion is driven by hardware
      (the device module).  There is no need for a COMPLETING flag, because
      the ARMED flag is only cleared after data_done is over for all channels
      in the cset.
      
      - the cset spinlock is used to protect all changes of the ti flags.
      
      - change_current_trigger completely revised and fixed to match new
      conventions.
      
      - trigger->abort now takes "ti" instead of "cset" as argument; it is
      more natural do do so, and no current trigger implements abort so no
      harm is done.
      
      - the trigger->abort and trigger->change_status methods are now
      always called while holding the cset spinlock. ZIO core calls abort
      when changing the current trigger type, to ensure no pending blocks
      are there.
      
      - zio_trigger_abort is renamed to zio_trigger_abort_disable, with
      an additional argument to state whether the trigger must be atomically
      disabled after the abort is over. This avoids a race condition on
      trigger removal. It returns the previous "disabled" bit, to be used
      when changing a buffer type while preserving trigger status.
      
      - minor unrelated improvements in error management in objects.c.
      
      - documentation update to match the new locking, and a few typos fixed.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      Acked-by: 's avatarFederico Vaga <federico.vaga@gmail.com>
      a496ca04
  11. 08 Jan, 2013 1 commit
    • Alessandro Rubini's avatar
      buffers/zio-buf-vmalloc.c: add a "merge-data" attribute, document it · 6f131e28
      Alessandro Rubini authored
      The merge-data attribute tells the buffer to try a merge of a
      newly-stored block with the previous one. When this is possible, the
      buffer updates the previous block (nsamples, datalen) and releases the
      new control immediately. This allows saving some memory without
      breaking the ZIO data model. The feature only makes sense for input,
      but there is no policy in place to enforce that.
      
      When user space reads this new block, it will get attributes (and
      timestamp) for the first data items, but all available items are
      returned in this bigger block.
      Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
      Acked-by: 's avatarFederico Vaga <federico.vaga@gmail.com>
      6f131e28
  12. 01 Dec, 2012 1 commit
  13. 30 Nov, 2012 5 commits
  14. 29 Nov, 2012 3 commits
  15. 26 Nov, 2012 1 commit
  16. 09 Nov, 2012 1 commit
  17. 04 Nov, 2012 1 commit
  18. 09 Apr, 2012 1 commit
  19. 13 Feb, 2012 1 commit
  20. 12 Feb, 2012 1 commit
  21. 11 Feb, 2012 1 commit
  22. 07 Feb, 2012 4 commits