- 10 1月, 2015 2 次提交
-
-
由 Alexey Skidanov 提交于
This patch splits the current kfd_get_process_device_data() to two functions, one that specifically creates a pdd and another one which just do lookup. This is done to enhance the readability and maintainability of the code. Signed-off-by: NAlexey Skidanov <Alexey.Skidanov@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 Alexey Skidanov 提交于
This patch adds the number of watch points to the node capabilities in the topology module Signed-off-by: NAlexey Skidanov <Alexey.Skidanov@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
- 06 12月, 2014 1 次提交
-
-
由 Oded Gabbay 提交于
This patch checks if the process that opens the /dev/kfd device is 32-bit process. If so, it returns -EPERM and prints a warning message in dmesg. This is done to prevent 32-bit user processes from using amdkfd, and hence, HSA features. AMD's HSA userspace stack will also support only 64-bit processes on Linux. Reviewed-by: NAlexey Skidanov <alexey.skidanov@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
- 04 12月, 2014 1 次提交
-
-
由 Oded Gabbay 提交于
In function acquire_packet_buffer() we may return -ENOMEM. In that case, we should set the *buffer_ptr to NULL, so that calling functions which check the *buffer_ptr value as a criteria for success, will know that acquire_packet_buffer() failed. Reviewed-by: NAlexey Skidanov <alexey.skidanov@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
- 03 12月, 2014 2 次提交
-
-
由 Sasha Levin 提交于
srcu callbacks are running in atomic context, we can't allocate using __GFP_WAIT. Signed-off-by: NSasha Levin <sasha.levin@oracle.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 Sasha Levin 提交于
All the bit operations (such as find_first_zero_bit()) read sizeof(long) bytes at a time. If we allocated less than sizeof(long) bytes for the bitmask we would be accessing invalid memory when working with the bitmask. Change the allocator to allocate sizeof(long) multiples for the bitmask. Signed-off-by: NSasha Levin <sasha.levin@oracle.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
- 26 11月, 2014 1 次提交
-
-
由 Dan Carpenter 提交于
This is dead code. We don't need to unbind here, we can just return directly. Reviewed-by: NOded Gabbay <oded.gabbay@amd.com> Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
- 25 11月, 2014 3 次提交
-
-
由 Oded Gabbay 提交于
The mqds array members are not freed when dqm is uninitialized. Reviewed-by: NBen Goz <Ben.Goz@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 Dan Carpenter 提交于
The call to kernel_queue_uninit(NULL) will trigger a BUG(), and also the error code is incorrect. Fixes: 45102048 ('amdkfd: Add process queue manager module') Reviewed-by: NOded Gabbay <oded.gabbay@amd.com> Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 Dan Carpenter 提交于
There is a typo here so the errors from kfd_bind_process_to_device() are not detected. Reviewed-by: NOded Gabbay <oded.gabbay@amd.com> Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
- 22 11月, 2014 2 次提交
-
-
由 Oded Gabbay 提交于
This patch removes the dependency of amdkfd upon DRM_AMDGPU symbol in amdkfd's Kconfig file. This is done because amdgpu driver is not yet upstreamed and therefore, DRM_AMDGPU symbol is not present in any Kconfig file. Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 Oded Gabbay 提交于
This patch fixes a compilation error when using certain configuration by including the file io.h in kfd_doorbell.c Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
- 18 11月, 2014 1 次提交
-
-
由 Alexey Skidanov 提交于
Since the user space may call open() more that once from the same process, the aperture initialization should be moved from kfd_open() Signed-off-by: NAlexey Skidanov <Alexey.Skidanov@amd.com> Reviewed-by: NOded Gabbay <oded.gabbay@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
- 10 11月, 2014 1 次提交
-
-
由 Oded Gabbay 提交于
Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
- 19 11月, 2014 1 次提交
-
-
由 Alexey Skidanov 提交于
Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NAlexey Skidanov <Alexey.Skidanov@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
- 17 11月, 2014 1 次提交
-
-
由 Oded Gabbay 提交于
amdkfd uses cpu_relax() in its sync_with_hw() function. Because cpu_relax() is defined as 'REP; NOP' on x86_64, it will block the CPU from servicing IOMMU PPR requests. This may cause a deadlock, because sync_with_hw() won't be completed until the PPR request has been served. Therefore, we need to use schedule() instead of cpu_relax() as it is the minimum requirement to allow other threads to execute. Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
- 21 11月, 2014 1 次提交
-
-
由 Jay Cornwall 提交于
struct device_process_node was allocated during process registration but not released at process deregistration. Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NJay Cornwall <jay.cornwall@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
- 20 11月, 2014 8 次提交
-
-
由 Oded Gabbay 提交于
This patch was done due to sparse warning. It changes the definition of doorbell_ptr in queue_properties to be with __iomem attribute, so it would match the type which the doorbell module functions are returning. Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 Oded Gabbay 提交于
Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 Oded Gabbay 提交于
Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 Oded Gabbay 提交于
Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 kbuild test robot 提交于
Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NFengguang Wu <fengguang.wu@intel.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 kbuild test robot 提交于
Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NFengguang Wu <fengguang.wu@intel.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 Oded Gabbay 提交于
Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 Oded Gabbay 提交于
Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
- 09 11月, 2014 1 次提交
-
-
由 Oded Gabbay 提交于
This patch displays the firmware version of the microcode that is currently running in the MEC. This is needed for the HSA RT, so it could differentiate its behavior based on fw version. e.g. workarounds for bugs in fw v2: Send the KGD_ENGINE_MEC1 as a parameter to the get_fw_version() Signed-off-by: NOded Gabbay <oded.gabbay@amd.com> Reviewed-by: NAlex Deucher <alexander.deucher@amd.com>
-
- 02 11月, 2014 1 次提交
-
-
由 Oded Gabbay 提交于
Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
- 17 7月, 2014 3 次提交
-
-
由 Alexey Skidanov 提交于
v3: Fixed debug messages Signed-off-by: NAlexey Skidanov <Alexey.Skidanov@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 Evgeny Pinchuk 提交于
Signed-off-by: NEvgeny Pinchuk <evgeny.pinchuk@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 Andrew Lewycky 提交于
Signed-off-by: NAndrew Lewycky <Andrew.Lewycky@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
- 20 10月, 2014 1 次提交
-
-
由 Oded Gabbay 提交于
v3: Removed the use of internal typedefs, fixed debug prints, added checks for parameters and moved to using doorbell address from user v4: Extracted some of the code in the create queue ioctl to a different function that may be also called from other ioctls in the future. Also fixed the check of the ring size argument. v5: Add support for AQL queues creation to enable working with open-source HSA runtime Signed-off-by: NBen Goz <ben.goz@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
- 17 7月, 2014 9 次提交
-
-
由 Andrew Lewycky 提交于
This patch adds the interrupt handling module, in 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. v3: Move amdkfd from drm/radeon/ to drm/amd/ Change device init Made sure spin lock is taken only if init is complete Moved bool field to the end of the structure Signed-off-by: NAndrew Lewycky <Andrew.Lewycky@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 Ben Goz 提交于
The queue scheduler divides into two sections, one section is process bounded and the other section is device bounded. The device bounded section is handled by this module. The DQM module handles queue setup, update and tear-down from the device side. It also supports suspend/resume operation. v3: Changed device_init, added the use of the new gart allocation functions an Added documentation. v4: Fixed a race in DQM queue scheduler where dqm->lock must be held when accessing dqm->queue_count and dqm->processes_count. This fixes runlist IB allocation failures when DQM is under load. Fixed race in DQM queue destruction where queues being destroyed must be removed from qpd->queues_list prior to preemption, or concurrent queue creation activity may reschedule them while their MQD is destroyed. Fixed EOP queue size setting in CP_HPD_EOP_CONTROL, because the size is specified as (log2(size_dwords)-1). The previous calculation assumed the size was specified in bytes, which caused interference between EOP queues when multiple MEC pipelines were active. v5: Move amdkfd from drm/radeon/ to drm/amd/ Change format of mqd structure to match latest KV firmware Add support for AQL queues creation to enable working with open-source HSA runtime Remove unused unmap_queue function Various fixes (Style, typos) Signed-off-by: NBen Goz <ben.goz@amd.com> Signed-off-by: NJay Cornwall <jay.cornwall@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 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>
-
由 Ben Goz 提交于
The packet manager module builds PM4 packets for the sole use of the CP scheduler. Those packets are used by the HIQ to submit runlists to the CP. v3: Removed include of cik_mqds.h Changed lower_32/upper_32 calls to use linux macros Used new gart allocation functions Added documentation v5: Move amdkfd from drm/radeon/ to drm/amd/ Change format of mqd structure to match latest KV firmware Add support for AQL queues creation to enable working with open-source HSA runtime Always chain runlist if you have more than 1 process or if you have over-subscription over the number of queues. Various fixes (typos, style) Signed-off-by: NBen Goz <ben.goz@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 Ben Goz 提交于
This patch adds a new parameter to the amdkfd driver. This parameter enables the user to select the scheduling policy of the CP. The choices are: * CP Scheduling with support for over-subscription * CP Scheduling without support for over-subscription * Without CP Scheduling Note that the third option (Without CP scheduling) is only for debug purposes and bringup of new H/W. As such, it is _not_ guaranteed to work at all times on all H/W versions. v3: Fixed description of parameter, changed the permissions to read_only, added a verification of the value and added documentation v5: Set default sched_policy to HWS as it is now supported by firmware Signed-off-by: NBen Goz <ben.goz@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 Ben Goz 提交于
The kernel queue module enables the amdkfd to establish kernel queues, not exposed to user space. The kernel queues are used for HIQ (HSA Interface Queue) and DIQ (Debug Interface Queue) operations v3: Removed use of internal typedefs and added use of the new gart allocation functions v4: Fixed a miscalculation in kernel queue wrapping v5: Move amdkfd from drm/radeon/ to drm/amd/ Change format of mqd structure to match latest KV firmware Add support for AQL queues creation to enable working with open-source HSA runtime Add define for kernel queue size Various fixes Signed-off-by: NBen Goz <ben.goz@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 Ben Goz 提交于
The mqd_manager module handles MQD data structures. MQD stands for Memory Queue Descriptor, which is used by the H/W to keep the usermode queue state in memory. v3: Removed new typedefs Removed pragma pack 4 Remove cik_mqds.h file Changed lower_32/upper_32 calls to use linux macros Used new gart allocation functions Added documentation v4: Added missing initialization of the addr field in init_mqd() Setting the hqd persistent.preload_req bit ON so that when queues switches on/off, their context will kept and read from the mqd when the cp reassign them, and thus the dispatched workload context kept consistent without any interrupts. v5: Move amdkfd from drm/radeon/ to drm/amd/ Change format of mqd structure to match latest KV firmware Add support for AQL queues creation to enable working with open-source HSA runtime. Various fixes Signed-off-by: NBen Goz <ben.goz@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 Ben Goz 提交于
The queue module enables allocating and initializing queues uniformly. v3: Removed typedef and redundant memset call. Broke long pr_debug print to one liners and Added documentation. v5: Move amdkfd from drm/radeon/ to drm/amd/ Signed-off-by: NBen Goz <ben.goz@amd.com> Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
-
由 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>
-