1. 20 5月, 2015 31 次提交
  2. 19 5月, 2015 9 次提交
    • O
      drm/amdkfd: change driver version to 0.7.2 · 7591cd2c
      Oded Gabbay 提交于
      Signed-off-by: NOded Gabbay <oded.gabbay@gmail.com>
      7591cd2c
    • A
      drm/amdkfd: Implement events IOCTLs · 8377396b
      Andrew Lewycky 提交于
      Signed-off-by: NAndrew Lewycky <Andrew.Lewycky@amd.com>
      Signed-off-by: NOded Gabbay <oded.gabbay@gmail.com>
      8377396b
    • O
      drm/amdkfd: Add module parameter of send_sigterm · 81663016
      Oded Gabbay 提交于
      This patch adds a new kernel module parameter to amdkfd,
      called send_sigterm.
      
      This parameter specifies whether amdkfd should send the
      SIGTERM signal to an HSA process, when the following conditions
      occur:
      
      1. The GPU triggers an exception regarding a kernel that was
         issued by this process.
      
      2. The HSA process isn't waiting on an event that handles
         this exception.
      
      The default behavior is not to send a SIGTERM and suffice
      with a dmesg error print.
      Reviewed-by: NBen Goz <ben.goz@amd.com>
      Signed-off-by: NOded Gabbay <oded.gabbay@gmail.com>
      81663016
    • A
      930c5ff4
    • A
      drm/amdkfd: Add memory exception handling · 59d3e8be
      Alexey Skidanov 提交于
      This patch adds Peripheral Page Request (PPR) failure processing
      and reporting.
      
      Bad address or pointer to a system memory block with inappropriate
      read/write permission cause such PPR failure during a user queue
      processing. PPR request handling is done by IOMMU driver notifying
      AMDKFD module on PPR failure.
      
      The process triggering a PPR failure will be notified by
      appropriate event or SIGTERM signal will be sent to it.
      
      v3:
      - Change all bool fields in struct kfd_memory_exception_failure to
        uint32_t
      Signed-off-by: NAlexey Skidanov <alexey.skidanov@gmail.com>
      Signed-off-by: NOded Gabbay <oded.gabbay@gmail.com>
      59d3e8be
    • 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
    • A
      drm/amdkfd: add events IOCTL set definitions · 29a5d3eb
      Andrew Lewycky 提交于
      - AMDKFD_IOC_CREATE_EVENT:
      	Creates a new event of a specified type
      
      - AMDKFD_IOC_DESTROY_EVENT:
      	Destroys an existing event
      
      - AMDKFD_IOC_SET_EVENT:
      	Signal an existing event
      
      - AMDKFD_IOC_RESET_EVENT:
      	Reset an existing event
      
      - AMDKFD_IOC_WAIT_EVENTS:
      	Wait on event(s) until they are signaled
      
      v2:
      
      - Move the limit of the signal events to kfd_ioctl.h so it
        can be used by userspace
      
      v3:
      - Change all bool fields in struct kfd_memory_exception_failure
      to uint32_t
      Signed-off-by: NAndrew Lewycky <Andrew.Lewycky@amd.com>
      Signed-off-by: NOded Gabbay <oded.gabbay@gmail.com>
      29a5d3eb
    • A
      drm/amdkfd: Add interrupt handling module · 2249d558
      Andrew Lewycky 提交于
      This patch adds the interrupt handling module, kfd_interrupt.c, and its
      related members in different data structures to the amdkfd driver.
      
      The amdkfd interrupt module maintains an internal interrupt ring
      per amdkfd device. The internal interrupt ring contains interrupts
      that needs further handling. The extra handling is deferred to
      a later time through a workqueue.
      
      There's no acknowledgment for the interrupts we use. The hardware
      simply queues a new interrupt each time without waiting.
      
      The fixed-size internal queue means that it's possible for us to lose
      interrupts because we have no back-pressure to the hardware.
      
      However, only interrupts that are "wanted" by amdkfd, are copied into
      the amdkfd s/w interrupt ring, in order to minimize the chances
      for overflow of the ring.
      Signed-off-by: NAndrew Lewycky <Andrew.Lewycky@amd.com>
      Signed-off-by: NOded Gabbay <oded.gabbay@gmail.com>
      2249d558
    • O
      drm/radeon: Add init interrupt kfd->kgd interface · d36b94fc
      Oded Gabbay 提交于
      This patch adds a new interface function to the kfd->kgd interface.
      The function is kgd_init_interrupts() and its function is to
      initialize a pipe's interrupts.
      
      The function currently enables the timestamp interrupt and the
      bad opcode interrupt.
      Signed-off-by: NOded Gabbay <oded.gabbay@gmail.com>
      d36b94fc