1. 28 11月, 2017 1 次提交
  2. 15 11月, 2017 2 次提交
  3. 02 11月, 2017 4 次提交
  4. 28 10月, 2017 1 次提交
  5. 27 9月, 2017 2 次提交
  6. 21 9月, 2017 1 次提交
  7. 16 8月, 2017 5 次提交
  8. 01 6月, 2017 1 次提交
  9. 14 6月, 2017 1 次提交
  10. 02 3月, 2017 1 次提交
    • I
      sched/headers: Prepare for new header dependencies before moving code to <linux/sched/mm.h> · 6e84f315
      Ingo Molnar 提交于
      We are going to split <linux/sched/mm.h> out of <linux/sched.h>, which
      will have to be picked up from other headers and a couple of .c files.
      
      Create a trivial placeholder <linux/sched/mm.h> file that just
      maps to <linux/sched.h> to make this patch obviously correct and
      bisectable.
      
      The APIs that are going to be moved first are:
      
         mm_alloc()
         __mmdrop()
         mmdrop()
         mmdrop_async_fn()
         mmdrop_async()
         mmget_not_zero()
         mmput()
         mmput_async()
         get_task_mm()
         mm_access()
         mm_release()
      
      Include the new header in the files that are going to need it.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      6e84f315
  11. 28 2月, 2017 1 次提交
  12. 20 9月, 2016 1 次提交
  13. 03 7月, 2016 2 次提交
    • O
      7fd5e03c
    • B
      drm/amdkfd: Remove create_workqueue() · fd320bf6
      Bhaktipriya Shridhar 提交于
      alloc_workqueue replaces deprecated create_workqueue().
      
      create_workqueue has been replaced with alloc_workqueue with max_active
      as 0 since there is no need for throttling the number of active work items.
      
      WQ_MEM_RECLAIM has not been set to because kfd_process_wq will not be
      used in memory reclaim path.
      
      kfd_process_wq is used for delay destruction. A work item embedded in
      kfd_process gets queued to kfd_process_wq and when it executes it
      destroys and frees the containing kfd_process and thus itself.
      
      This requires a dedicated workqueue because a work item once queued, may
      get freed at any point of time and any external entity cannot
      flush the work item. So, in order to wait for such a work item,
      it needs to be put on a dedicated workqueue.
      
      kfd_module_exit() calls kfd_process_destroy_wq which ensures that all
      pending work items are finished before the module is removed.
      
      flush_workqueue is unnecessary since destroy_workqueue() itself calls
      drain_workqueue() which flushes repeatedly till the workqueue
      becomes empty.
      
      Hence flush_workqueue has been removed.
      Signed-off-by: NBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Acked-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NOded Gabbay <oded.gabbay@gmail.com>
      fd320bf6
  14. 03 6月, 2016 2 次提交
    • O
      drm/amdkfd: destroy dbgmgr in notifier release · bc4755a4
      Oded Gabbay 提交于
      amdkfd need to destroy the debug manager in case amdkfd's notifier
      function is called before the unbind function, because in that case,
      the unbind function will exit without destroying debug manager.
      Signed-off-by: NOded Gabbay <oded.gabbay@gmail.com>
      CC: Stable <stable@vger.kernel.org>
      bc4755a4
    • O
      drm/amdkfd: unbind only existing processes · 121b78e6
      Oded Gabbay 提交于
      When unbinding a process from a device (initiated by amd_iommu_v2), the
      driver needs to make sure that process still exists in the process table.
      There is a possibility that amdkfd's own notifier handler -
      kfd_process_notifier_release() - was called before the unbind function
      and it already removed the process from the process table.
      
      v2:
      Because there can be only one process with the specified pasid, and
      because *p can't be NULL inside the hash_for_each_rcu macro, it is more
      reasonable to just put the whole code inside the if statement that
      compares the pasid value. That way, when we exit hash_for_each_rcu, we
      simply exit the function as well.
      Signed-off-by: NOded Gabbay <oded.gabbay@gmail.com>
      CC: Stable <stable@vger.kernel.org>
      121b78e6
  15. 23 3月, 2016 1 次提交
  16. 28 1月, 2016 1 次提交
  17. 09 7月, 2015 1 次提交
  18. 07 6月, 2015 1 次提交
  19. 03 6月, 2015 1 次提交
  20. 19 5月, 2015 2 次提交
    • A
      drm/amdkfd: Add the events module · f3a39818
      Andrew Lewycky 提交于
      This patch adds the events module (kfd_events.c) and the interrupt
      handle module for Kaveri (cik_event_interrupt.c).
      
      The patch updates the interrupt_is_wanted(), so that it now calls the
      interrupt isr function specific for the device that received the
      interrupt. That function(implemented in cik_event_interrupt.c)
      returns whether this interrupt is of interest to us or not.
      
      The patch also updates the interrupt_wq(), so that it now calls the
      device's specific wq function, which checks the interrupt source
      and tries to signal relevant events.
      
      v2:
      
      Increase limit of signal events to 4096 per process
      Remove bitfields from struct cik_ih_ring_entry
      Rename radeon_kfd_event_mmap to kfd_event_mmap
      Add debug prints to allocate_free_slot and allocate_signal_page
      Make allocate_event_notification_slot return a correct value
      Add warning prints to create_signal_event
      Remove error print from IOCTL path
      Reformatted debug prints in kfd_event_mmap
      Map correct size (as received from mmap) in kfd_event_mmap
      
      v3:
      
      Reduce limit of signal events back to 256 per process
      Fix allocation of kernel memory for signal events
      Signed-off-by: NAndrew Lewycky <Andrew.Lewycky@amd.com>
      Signed-off-by: NOded Gabbay <oded.gabbay@gmail.com>
      f3a39818
    • F
      drm/amdkfd: Remove unessary void pointer cast · 1549fcd1
      Firo Yang 提交于
      kmalloc() returns a void pointer - no need to cast it in
      drivers/gpu/drm/amd/amdkfd/kfd_process.c::kfd_process_destroy_delayed()
      Signed-off-by: NFiro Yang <firogm@gmail.com>
      Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
      1549fcd1
  21. 25 3月, 2015 1 次提交
  22. 10 1月, 2015 1 次提交
  23. 03 12月, 2014 1 次提交
  24. 26 11月, 2014 1 次提交
  25. 18 11月, 2014 1 次提交
  26. 17 7月, 2014 3 次提交
    • B
      amdkfd: Add process queue manager module · 45102048
      Ben Goz 提交于
      The queue scheduler divides into two sections, one section is process bounded
      and the other section is device bounded.
      The process bounded section is handled by this module. The PQM handles usermode
      queue setup, updates and tear-down.
      
      v3:
      
      Used kernel parameter to limit queues per process instead of define
      Added use of doorbell address from user
      
      v4:
      
      Modified pqm_create_queue so that only when creating usermode queues the
      driver should return the queue properties to the userspace.
      
      Added an info message print when no more queues can be opened because of the
      queue per process limitation
      
      v5:
      
      Move amdkfd from drm/radeon/ to drm/amd/
      Various fixes
      Signed-off-by: NBen Goz <ben.goz@amd.com>
      Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
      45102048
    • O
      amdkfd: Add binding/unbinding calls to amd_iommu driver · b17f068a
      Oded Gabbay 提交于
      This patch adds the functions to bind and unbind pasid
      from a device through the amd_iommu driver.
      
      The unbind function is called when the mm_struct of the
      process is released.
      
      The bind function is not called here because it is called
      only in the IOCTLs which are not yet implemented at this
      stage of the patchset.
      Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
      b17f068a
    • O
      amdkfd: Add basic modules to amdkfd · 19f6d2a6
      Oded Gabbay 提交于
      This patch adds the process module and three helper modules:
      
      - kfd_process, which handles process which open /dev/kfd
      
      - kfd_doorbell, which provides helper functions for doorbell allocation,
        release and mapping to userspace
      
      - kfd_pasid, which provides helper functions for pasid allocation and release
      
      - kfd_aperture, which provides helper functions for managing the LDS, Local GPU
        memory and Scratch memory apertures of the process
      
      This patch only contains the basic kfd_process module, which doesn't contain
      the reference to the queue scheduler. This was done to allow easier code review.
      
      Also, this patch doesn't contain the calls to the IOMMU driver for binding the
      pasid to the device. Again, this was done to allow easier code review
      
      The kfd_process object is created when a process opens /dev/kfd and is closed
      when the mm_struct of that process is teared-down.
      
      v3:
      
      Removed kfd_vidmem.c file
      Replaced direct mmput call to mmu_notifier release
      Removed typedefs
      Moved bool field to end of the structure
      Added new kernel params for gart usage limitation
      Added initialization of sa manager
      Fixed debug messages
      Remove support for LDS in 32 bit
      Changed code to support mmap of doorbell pages from userspace
      Added documentation for apertures
      
      v4: Replaced RCU by SRCU for kfd_process list management
      
      v5:
      
      Move amdkfd from drm/radeon/ to drm/amd/
      Rename kfd_aperture.c to kfd_flat_memory.c
      Protect against multiple init calls
      MQD size is H/W dependent so moved it to device info structure
      Rename kfd_mem_obj structure's members
      Use delayed function for process tear-down
      Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
      19f6d2a6