Skip to content

Commit b121862

Browse files
fxkamdalexdeucher
authored andcommitted
drm/amdkfd: Use prange->update_list head for remove_list
The remove_list head was only used for keeping track of existing ranges that are to be removed from the svms->list. The update_list was used for new or existing ranges that need updated attributes. These two cases are mutually exclusive (i.e. the same range will never be on both lists). Therefore we can use the update_list head to track the remove_list and save another 16 bytes in the svm_range struct. Signed-off-by: Felix Kuehling <[email protected]> Reviewed-by: Philip Yang <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent ef3b413 commit b121862

File tree

2 files changed

+2
-6
lines changed

2 files changed

+2
-6
lines changed

drivers/gpu/drm/amd/amdkfd/kfd_svm.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,6 @@ svm_range *svm_range_new(struct svm_range_list *svms, uint64_t start,
295295
prange->last = last;
296296
INIT_LIST_HEAD(&prange->list);
297297
INIT_LIST_HEAD(&prange->update_list);
298-
INIT_LIST_HEAD(&prange->remove_list);
299298
INIT_LIST_HEAD(&prange->svm_bo_list);
300299
INIT_LIST_HEAD(&prange->deferred_list);
301300
INIT_LIST_HEAD(&prange->child_list);
@@ -1897,7 +1896,7 @@ svm_range_add(struct kfd_process *p, uint64_t start, uint64_t size,
18971896
goto out;
18981897
}
18991898

1900-
list_add(&old->remove_list, remove_list);
1899+
list_add(&old->update_list, remove_list);
19011900
list_add(&prange->list, insert_list);
19021901
list_add(&prange->update_list, update_list);
19031902

@@ -3243,8 +3242,7 @@ svm_range_set_attr(struct kfd_process *p, uint64_t start, uint64_t size,
32433242
svm_range_apply_attrs(p, prange, nattr, attrs);
32443243
/* TODO: unmap ranges from GPU that lost access */
32453244
}
3246-
list_for_each_entry_safe(prange, next, &remove_list,
3247-
remove_list) {
3245+
list_for_each_entry_safe(prange, next, &remove_list, update_list) {
32483246
pr_debug("unlink old 0x%p prange 0x%p [0x%lx 0x%lx]\n",
32493247
prange->svms, prange, prange->start,
32503248
prange->last);

drivers/gpu/drm/amd/amdkfd/kfd_svm.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ struct svm_work_list_item {
7676
* aligned, page size is (last - start + 1)
7777
* @list: link list node, used to scan all ranges of svms
7878
* @update_list:link list node used to add to update_list
79-
* @remove_list:link list node used to add to remove list
8079
* @mapping: bo_va mapping structure to create and update GPU page table
8180
* @npages: number of pages
8281
* @dma_addr: dma mapping address on each GPU for system memory physical page
@@ -112,7 +111,6 @@ struct svm_range {
112111
struct interval_tree_node it_node;
113112
struct list_head list;
114113
struct list_head update_list;
115-
struct list_head remove_list;
116114
uint64_t npages;
117115
dma_addr_t *dma_addr[MAX_GPU_INSTANCE];
118116
struct ttm_resource *ttm_res;

0 commit comments

Comments
 (0)