Lines Matching refs:lru

1272 drm_gem_lru_init(struct drm_gem_lru *lru, struct mutex *lock)  in drm_gem_lru_init()  argument
1274 lru->lock = lock; in drm_gem_lru_init()
1275 lru->count = 0; in drm_gem_lru_init()
1276 INIT_LIST_HEAD(&lru->list); in drm_gem_lru_init()
1283 obj->lru->count -= obj->size >> PAGE_SHIFT; in drm_gem_lru_remove_locked()
1284 WARN_ON(obj->lru->count < 0); in drm_gem_lru_remove_locked()
1286 obj->lru = NULL; in drm_gem_lru_remove_locked()
1299 struct drm_gem_lru *lru = obj->lru; in drm_gem_lru_remove() local
1301 if (!lru) in drm_gem_lru_remove()
1304 mutex_lock(lru->lock); in drm_gem_lru_remove()
1306 mutex_unlock(lru->lock); in drm_gem_lru_remove()
1311 drm_gem_lru_move_tail_locked(struct drm_gem_lru *lru, struct drm_gem_object *obj) in drm_gem_lru_move_tail_locked() argument
1313 lockdep_assert_held_once(lru->lock); in drm_gem_lru_move_tail_locked()
1315 if (obj->lru) in drm_gem_lru_move_tail_locked()
1318 lru->count += obj->size >> PAGE_SHIFT; in drm_gem_lru_move_tail_locked()
1319 list_add_tail(&obj->lru_node, &lru->list); in drm_gem_lru_move_tail_locked()
1320 obj->lru = lru; in drm_gem_lru_move_tail_locked()
1334 drm_gem_lru_move_tail(struct drm_gem_lru *lru, struct drm_gem_object *obj) in drm_gem_lru_move_tail() argument
1336 mutex_lock(lru->lock); in drm_gem_lru_move_tail()
1337 drm_gem_lru_move_tail_locked(lru, obj); in drm_gem_lru_move_tail()
1338 mutex_unlock(lru->lock); in drm_gem_lru_move_tail()
1357 drm_gem_lru_scan(struct drm_gem_lru *lru, unsigned nr_to_scan, in drm_gem_lru_scan() argument
1364 drm_gem_lru_init(&still_in_lru, lru->lock); in drm_gem_lru_scan()
1366 mutex_lock(lru->lock); in drm_gem_lru_scan()
1369 obj = list_first_entry_or_null(&lru->list, typeof(*obj), lru_node); in drm_gem_lru_scan()
1389 mutex_unlock(lru->lock); in drm_gem_lru_scan()
1407 WARN_ON(obj->lru == &still_in_lru); in drm_gem_lru_scan()
1408 WARN_ON(obj->lru == lru); in drm_gem_lru_scan()
1415 mutex_lock(lru->lock); in drm_gem_lru_scan()
1423 obj->lru = lru; in drm_gem_lru_scan()
1424 list_splice_tail(&still_in_lru.list, &lru->list); in drm_gem_lru_scan()
1425 lru->count += still_in_lru.count; in drm_gem_lru_scan()
1427 mutex_unlock(lru->lock); in drm_gem_lru_scan()