Lines Matching refs:pt

225 static void ttm_pool_type_give(struct ttm_pool_type *pt, struct page *p)
227 unsigned int i, num_pages = 1 << pt->order;
236 spin_lock(&pt->lock);
237 list_add(&p->lru, &pt->pages);
238 spin_unlock(&pt->lock);
239 atomic_long_add(1 << pt->order, &allocated_pages);
243 static struct page *ttm_pool_type_take(struct ttm_pool_type *pt)
247 spin_lock(&pt->lock);
248 p = list_first_entry_or_null(&pt->pages, typeof(*p), lru);
250 atomic_long_sub(1 << pt->order, &allocated_pages);
253 spin_unlock(&pt->lock);
259 static void ttm_pool_type_init(struct ttm_pool_type *pt, struct ttm_pool *pool,
262 pt->pool = pool;
263 pt->caching = caching;
264 pt->order = order;
265 spin_lock_init(&pt->lock);
266 INIT_LIST_HEAD(&pt->pages);
269 list_add_tail(&pt->shrinker_list, &shrinker_list);
274 static void ttm_pool_type_fini(struct ttm_pool_type *pt)
279 list_del(&pt->shrinker_list);
282 while ((p = ttm_pool_type_take(pt)))
283 ttm_pool_free_page(pt->pool, pt->caching, pt->order, p);
323 struct ttm_pool_type *pt;
329 pt = list_first_entry(&shrinker_list, typeof(*pt), shrinker_list);
330 list_move_tail(&pt->shrinker_list, &shrinker_list);
333 p = ttm_pool_type_take(pt);
335 ttm_pool_free_page(pt->pool, pt->caching, pt->order, p);
336 num_pages = 1 << pt->order;
401 struct ttm_pool_type *pt = NULL;
408 pt = ttm_pool_select_type(pool, caching, order);
409 if (pt)
410 ttm_pool_type_give(pt, *pages);
459 struct ttm_pool_type *pt;
462 pt = ttm_pool_select_type(pool, tt->caching, order);
463 p = pt ? ttm_pool_type_take(pt) : NULL;
483 p = ttm_pool_type_take(pt);
577 struct ttm_pool_type *pt;
580 pt = ttm_pool_select_type(pool, i, j);
581 if (pt != &pool->caching[i].orders[j])
584 ttm_pool_type_init(pt, pool, i, j);
616 struct ttm_pool_type *pt;
618 pt = ttm_pool_select_type(pool, i, j);
619 if (pt != &pool->caching[i].orders[j])
622 ttm_pool_type_fini(pt);
657 static unsigned int ttm_pool_type_count(struct ttm_pool_type *pt)
662 spin_lock(&pt->lock);
664 list_for_each_entry(p, &pt->pages, lru)
666 spin_unlock(&pt->lock);
683 static void ttm_pool_debugfs_orders(struct ttm_pool_type *pt,
689 seq_printf(m, " %8u", ttm_pool_type_count(&pt[i]));