1. 23 Apr, 2021 1 commit
    • Dave Jiang's avatar
      dmaengine: idxd: add percpu_ref to descriptor submission path · 93a40a6d
      Dave Jiang authored
      Current submission path has no way to restrict the submitter from
      stop submiting on shutdown path or wq disable path. This provides a way to
      quiesce the submission path.
      
      Modeling after 'struct reqeust_queue' usage of percpu_ref. One of the
      abilities of per_cpu reference counting is the ability to stop new
      references from being taken while awaiting outstanding references to be
      dropped. On wq shutdown, we want to block any new submissions to the kernel
      workqueue and quiesce before disabling. The percpu_ref allows us to block
      any new submissions and wait for any current submission calls to finish
      submitting to the workqueue.
      
      A percpu_ref is embedded in each idxd_wq context to allow control for
      individual wq. The wq->wq_active counter is elevated before calling
      movdir64b() or enqcmds() to submit a descriptor to the wq and dropped once
      the submission call completes. The function is gated by
      percpu_ref_tryget_live(). On shutdown with percpu_ref_kill() called, any
      new submission would be blocked from acquiring a ref and failed. Once all
      references are dropped for the wq, shutdown can continue.
      Signed-off-by: default avatarDave Jiang <dave.jiang@intel.com>
      Link: https://lore.kernel.org/r/161894438293.3202472.14894701611500822232.stgit@djiang5-desk3.ch.intel.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
      93a40a6d
  2. 20 Apr, 2021 15 commits
  3. 12 Apr, 2021 12 commits
  4. 16 Mar, 2021 12 commits