Lines Matching refs:ctl

662 				     struct vmballoon_ctl *ctl,  in vmballoon_alloc_page_list()  argument
674 if (!list_empty(&ctl->prealloc_pages)) { in vmballoon_alloc_page_list()
675 page = list_first_entry(&ctl->prealloc_pages, in vmballoon_alloc_page_list()
679 if (ctl->page_size == VMW_BALLOON_2M_PAGE) in vmballoon_alloc_page_list()
686 ctl->page_size); in vmballoon_alloc_page_list()
691 list_add(&page->lru, &ctl->pages); in vmballoon_alloc_page_list()
697 ctl->page_size); in vmballoon_alloc_page_list()
701 ctl->n_pages = i; in vmballoon_alloc_page_list()
703 return req_n_pages == ctl->n_pages ? 0 : -ENOMEM; in vmballoon_alloc_page_list()
855 static int vmballoon_lock(struct vmballoon *b, struct vmballoon_ctl *ctl) in vmballoon_lock() argument
861 num_pages = ctl->n_pages; in vmballoon_lock()
869 list_for_each_entry(page, &ctl->pages, lru) in vmballoon_lock()
872 batch_status = vmballoon_lock_op(b, ctl->n_pages, ctl->page_size, in vmballoon_lock()
873 ctl->op); in vmballoon_lock()
893 if (!vmballoon_handle_one_result(b, page, ctl->page_size, in vmballoon_lock()
901 list_move(&page->lru, &ctl->refused_pages); in vmballoon_lock()
902 ctl->n_pages--; in vmballoon_lock()
903 ctl->n_refused_pages++; in vmballoon_lock()
941 struct vmballoon_ctl *ctl) in vmballoon_release_refused_pages() argument
944 ctl->page_size); in vmballoon_release_refused_pages()
946 vmballoon_release_page_list(&ctl->refused_pages, &ctl->n_refused_pages, in vmballoon_release_refused_pages()
947 ctl->page_size); in vmballoon_release_refused_pages()
1082 static void vmballoon_split_refused_pages(struct vmballoon_ctl *ctl) in vmballoon_split_refused_pages() argument
1087 order = vmballoon_page_order(ctl->page_size); in vmballoon_split_refused_pages()
1089 list_for_each_entry_safe(page, tmp, &ctl->refused_pages, lru) { in vmballoon_split_refused_pages()
1093 list_add(&page[i].lru, &ctl->prealloc_pages); in vmballoon_split_refused_pages()
1095 ctl->n_refused_pages = 0; in vmballoon_split_refused_pages()
1106 struct vmballoon_ctl ctl = { in vmballoon_inflate() local
1107 .pages = LIST_HEAD_INIT(ctl.pages), in vmballoon_inflate()
1108 .refused_pages = LIST_HEAD_INIT(ctl.refused_pages), in vmballoon_inflate()
1109 .prealloc_pages = LIST_HEAD_INIT(ctl.prealloc_pages), in vmballoon_inflate()
1118 VM_BUG_ON(!list_empty(&ctl.pages)); in vmballoon_inflate()
1119 VM_BUG_ON(ctl.n_pages != 0); in vmballoon_inflate()
1121 page_in_frames = vmballoon_page_in_frames(ctl.page_size); in vmballoon_inflate()
1128 alloc_error = vmballoon_alloc_page_list(b, &ctl, in vmballoon_inflate()
1132 lock_error = vmballoon_lock(b, &ctl); in vmballoon_inflate()
1142 atomic64_add(ctl.n_pages * page_in_frames, &b->size); in vmballoon_inflate()
1144 vmballoon_enqueue_page_list(b, &ctl.pages, &ctl.n_pages, in vmballoon_inflate()
1145 ctl.page_size); in vmballoon_inflate()
1152 ctl.n_refused_pages >= VMW_BALLOON_MAX_REFUSED) { in vmballoon_inflate()
1153 if (ctl.page_size == VMW_BALLOON_4K_PAGE) in vmballoon_inflate()
1160 vmballoon_split_refused_pages(&ctl); in vmballoon_inflate()
1161 ctl.page_size--; in vmballoon_inflate()
1172 if (ctl.n_refused_pages != 0) in vmballoon_inflate()
1173 vmballoon_release_refused_pages(b, &ctl); in vmballoon_inflate()
1175 vmballoon_release_page_list(&ctl.prealloc_pages, NULL, ctl.page_size); in vmballoon_inflate()
1195 struct vmballoon_ctl ctl = { in vmballoon_deflate() local
1196 .pages = LIST_HEAD_INIT(ctl.pages), in vmballoon_deflate()
1197 .refused_pages = LIST_HEAD_INIT(ctl.refused_pages), in vmballoon_deflate()
1209 page_in_frames = vmballoon_page_in_frames(ctl.page_size); in vmballoon_deflate()
1211 VM_BUG_ON(!list_empty(&ctl.pages)); in vmballoon_deflate()
1212 VM_BUG_ON(ctl.n_pages); in vmballoon_deflate()
1213 VM_BUG_ON(!list_empty(&ctl.refused_pages)); in vmballoon_deflate()
1214 VM_BUG_ON(ctl.n_refused_pages); in vmballoon_deflate()
1237 vmballoon_dequeue_page_list(b, &ctl.pages, &ctl.n_pages, in vmballoon_deflate()
1238 ctl.page_size, to_deflate_pages); in vmballoon_deflate()
1244 tried_frames += ctl.n_pages * page_in_frames; in vmballoon_deflate()
1254 vmballoon_lock(b, &ctl); in vmballoon_deflate()
1262 deflated_all = (ctl.n_pages == to_deflate_pages); in vmballoon_deflate()
1265 n_unlocked_frames = ctl.n_pages * page_in_frames; in vmballoon_deflate()
1270 ctl.page_size, ctl.n_pages); in vmballoon_deflate()
1273 vmballoon_release_page_list(&ctl.pages, &ctl.n_pages, in vmballoon_deflate()
1274 ctl.page_size); in vmballoon_deflate()
1277 vmballoon_enqueue_page_list(b, &ctl.refused_pages, in vmballoon_deflate()
1278 &ctl.n_refused_pages, in vmballoon_deflate()
1279 ctl.page_size); in vmballoon_deflate()
1283 if (ctl.page_size == b->max_page_size) in vmballoon_deflate()
1285 ctl.page_size++; in vmballoon_deflate()