Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/drm2/ttm/ttm_bo_vm.c
Show First 20 Lines • Show All 227 Lines • ▼ Show 20 Lines | if (unlikely(!m)) { | ||||
goto out_io_unlock; | goto out_io_unlock; | ||||
} | } | ||||
pmap_page_set_memattr(m, | pmap_page_set_memattr(m, | ||||
(bo->mem.placement & TTM_PL_FLAG_CACHED) ? | (bo->mem.placement & TTM_PL_FLAG_CACHED) ? | ||||
VM_MEMATTR_WRITE_BACK : ttm_io_prot(bo->mem.placement)); | VM_MEMATTR_WRITE_BACK : ttm_io_prot(bo->mem.placement)); | ||||
} | } | ||||
VM_OBJECT_WLOCK(vm_obj); | VM_OBJECT_WLOCK(vm_obj); | ||||
if (vm_page_busied(m)) { | if (vm_page_busied(m)) { | ||||
vm_page_lock(m); | vm_page_sleep_if_busy(m, "ttmpbs"); | ||||
alc: I'm curious as to why you didn't further simplify cases like this one to:
```
if… | |||||
jeffAuthorUnsubmitted Done Inline ActionsThis is turned into a vm_page_busy_acquire() in another patch I have in review. if (vm_page_busy_acquire(m, VM_ALLOC_WAITFAIL) == 0) { ttm_mem_io_unlock(man); ttm_bo_unreserve(bo); goto retry; } jeff: This is turned into a vm_page_busy_acquire() in another patch I have in review.
if… | |||||
VM_OBJECT_WUNLOCK(vm_obj); | |||||
vm_page_busy_sleep(m, "ttmpbs", false); | |||||
VM_OBJECT_WLOCK(vm_obj); | |||||
ttm_mem_io_unlock(man); | ttm_mem_io_unlock(man); | ||||
ttm_bo_unreserve(bo); | ttm_bo_unreserve(bo); | ||||
goto retry; | goto retry; | ||||
} | } | ||||
m1 = vm_page_lookup(vm_obj, OFF_TO_IDX(offset)); | m1 = vm_page_lookup(vm_obj, OFF_TO_IDX(offset)); | ||||
if (m1 == NULL) { | if (m1 == NULL) { | ||||
if (vm_page_insert(m, vm_obj, OFF_TO_IDX(offset))) { | if (vm_page_insert(m, vm_obj, OFF_TO_IDX(offset))) { | ||||
VM_OBJECT_WUNLOCK(vm_obj); | VM_OBJECT_WUNLOCK(vm_obj); | ||||
▲ Show 20 Lines • Show All 315 Lines • Show Last 20 Lines |
I'm curious as to why you didn't further simplify cases like this one to: