|
@@ -165,8 +165,11 @@ struct amdgpu_vm {
|
|
/* Flag to indicate ATS support from PTE for GFX9 */
|
|
/* Flag to indicate ATS support from PTE for GFX9 */
|
|
bool pte_support_ats;
|
|
bool pte_support_ats;
|
|
|
|
|
|
- /* Up to 128 pending page faults */
|
|
|
|
|
|
+ /* Up to 128 pending retry page faults */
|
|
DECLARE_KFIFO(faults, u64, 128);
|
|
DECLARE_KFIFO(faults, u64, 128);
|
|
|
|
+
|
|
|
|
+ /* Limit non-retry fault storms */
|
|
|
|
+ unsigned int fault_credit;
|
|
};
|
|
};
|
|
|
|
|
|
struct amdgpu_vm_id {
|
|
struct amdgpu_vm_id {
|
|
@@ -244,6 +247,8 @@ void amdgpu_vm_manager_fini(struct amdgpu_device *adev);
|
|
int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm,
|
|
int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm,
|
|
int vm_context, unsigned int pasid);
|
|
int vm_context, unsigned int pasid);
|
|
void amdgpu_vm_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm);
|
|
void amdgpu_vm_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm);
|
|
|
|
+bool amdgpu_vm_pasid_fault_credit(struct amdgpu_device *adev,
|
|
|
|
+ unsigned int pasid);
|
|
void amdgpu_vm_get_pd_bo(struct amdgpu_vm *vm,
|
|
void amdgpu_vm_get_pd_bo(struct amdgpu_vm *vm,
|
|
struct list_head *validated,
|
|
struct list_head *validated,
|
|
struct amdgpu_bo_list_entry *entry);
|
|
struct amdgpu_bo_list_entry *entry);
|