Lines Matching refs:first_page
781 return page->first_page; in get_first_page()
886 static void free_zspage(struct page *first_page) in free_zspage() argument
890 BUG_ON(!is_first_page(first_page)); in free_zspage()
891 BUG_ON(first_page->inuse); in free_zspage()
893 head_extra = (struct page *)page_private(first_page); in free_zspage()
895 reset_page(first_page); in free_zspage()
896 __free_page(first_page); in free_zspage()
912 static void init_zspage(struct page *first_page, struct size_class *class) in init_zspage() argument
915 struct page *page = first_page; in init_zspage()
917 BUG_ON(!is_first_page(first_page)); in init_zspage()
930 if (page != first_page) in init_zspage()
960 struct page *first_page = NULL, *uninitialized_var(prev_page); in alloc_zspage() local
985 first_page = page; in alloc_zspage()
986 first_page->inuse = 0; in alloc_zspage()
989 set_page_private(first_page, (unsigned long)page); in alloc_zspage()
991 page->first_page = first_page; in alloc_zspage()
999 init_zspage(first_page, class); in alloc_zspage()
1001 first_page->freelist = location_to_obj(first_page, 0); in alloc_zspage()
1003 first_page->objects = class->pages_per_zspage * PAGE_SIZE / class->size; in alloc_zspage()
1008 if (unlikely(error) && first_page) { in alloc_zspage()
1009 free_zspage(first_page); in alloc_zspage()
1010 first_page = NULL; in alloc_zspage()
1013 return first_page; in alloc_zspage()
1350 static unsigned long obj_malloc(struct page *first_page, in obj_malloc() argument
1361 obj = (unsigned long)first_page->freelist; in obj_malloc()
1367 first_page->freelist = link->next; in obj_malloc()
1373 set_page_private(first_page, handle); in obj_malloc()
1375 first_page->inuse++; in obj_malloc()
1395 struct page *first_page; in zs_malloc() local
1409 first_page = find_get_zspage(class); in zs_malloc()
1411 if (!first_page) { in zs_malloc()
1413 first_page = alloc_zspage(class, pool->flags); in zs_malloc()
1414 if (unlikely(!first_page)) { in zs_malloc()
1419 set_zspage_mapping(first_page, class->index, ZS_EMPTY); in zs_malloc()
1428 obj = obj_malloc(first_page, class, handle); in zs_malloc()
1430 fix_fullness_group(class, first_page); in zs_malloc()
1442 struct page *first_page, *f_page; in obj_free() local
1452 first_page = get_first_page(f_page); in obj_free()
1454 get_zspage_mapping(first_page, &class_idx, &fullness); in obj_free()
1461 link->next = first_page->freelist; in obj_free()
1463 set_page_private(first_page, 0); in obj_free()
1465 first_page->freelist = (void *)obj; in obj_free()
1466 first_page->inuse--; in obj_free()
1472 struct page *first_page, *f_page; in zs_free() local
1484 first_page = get_first_page(f_page); in zs_free()
1486 get_zspage_mapping(first_page, &class_idx, &fullness); in zs_free()
1491 fullness = fix_fullness_group(class, first_page); in zs_free()
1497 free_zspage(first_page); in zs_free()
1687 struct page *first_page) in putback_zspage() argument
1691 BUG_ON(!is_first_page(first_page)); in putback_zspage()
1693 fullness = get_fullness_group(first_page); in putback_zspage()
1694 insert_zspage(first_page, class, fullness); in putback_zspage()
1695 set_zspage_mapping(first_page, class->index, fullness); in putback_zspage()
1703 free_zspage(first_page); in putback_zspage()