Lines Matching refs:ctl

666 				     struct vmballoon_ctl *ctl,  in vmballoon_alloc_page_list()  argument
678 if (!list_empty(&ctl->prealloc_pages)) { in vmballoon_alloc_page_list()
679 page = list_first_entry(&ctl->prealloc_pages, in vmballoon_alloc_page_list()
683 if (ctl->page_size == VMW_BALLOON_2M_PAGE) in vmballoon_alloc_page_list()
690 ctl->page_size); in vmballoon_alloc_page_list()
695 list_add(&page->lru, &ctl->pages); in vmballoon_alloc_page_list()
701 ctl->page_size); in vmballoon_alloc_page_list()
705 ctl->n_pages = i; in vmballoon_alloc_page_list()
707 return req_n_pages == ctl->n_pages ? 0 : -ENOMEM; in vmballoon_alloc_page_list()
859 static int vmballoon_lock(struct vmballoon *b, struct vmballoon_ctl *ctl) in vmballoon_lock() argument
865 num_pages = ctl->n_pages; in vmballoon_lock()
873 list_for_each_entry(page, &ctl->pages, lru) in vmballoon_lock()
876 batch_status = vmballoon_lock_op(b, ctl->n_pages, ctl->page_size, in vmballoon_lock()
877 ctl->op); in vmballoon_lock()
897 if (!vmballoon_handle_one_result(b, page, ctl->page_size, in vmballoon_lock()
905 list_move(&page->lru, &ctl->refused_pages); in vmballoon_lock()
906 ctl->n_pages--; in vmballoon_lock()
907 ctl->n_refused_pages++; in vmballoon_lock()
945 struct vmballoon_ctl *ctl) in vmballoon_release_refused_pages() argument
948 ctl->page_size); in vmballoon_release_refused_pages()
950 vmballoon_release_page_list(&ctl->refused_pages, &ctl->n_refused_pages, in vmballoon_release_refused_pages()
951 ctl->page_size); in vmballoon_release_refused_pages()
1086 static void vmballoon_split_refused_pages(struct vmballoon_ctl *ctl) in vmballoon_split_refused_pages() argument
1091 order = vmballoon_page_order(ctl->page_size); in vmballoon_split_refused_pages()
1093 list_for_each_entry_safe(page, tmp, &ctl->refused_pages, lru) { in vmballoon_split_refused_pages()
1097 list_add(&page[i].lru, &ctl->prealloc_pages); in vmballoon_split_refused_pages()
1099 ctl->n_refused_pages = 0; in vmballoon_split_refused_pages()
1110 struct vmballoon_ctl ctl = { in vmballoon_inflate() local
1111 .pages = LIST_HEAD_INIT(ctl.pages), in vmballoon_inflate()
1112 .refused_pages = LIST_HEAD_INIT(ctl.refused_pages), in vmballoon_inflate()
1113 .prealloc_pages = LIST_HEAD_INIT(ctl.prealloc_pages), in vmballoon_inflate()
1122 VM_BUG_ON(!list_empty(&ctl.pages)); in vmballoon_inflate()
1123 VM_BUG_ON(ctl.n_pages != 0); in vmballoon_inflate()
1125 page_in_frames = vmballoon_page_in_frames(ctl.page_size); in vmballoon_inflate()
1132 alloc_error = vmballoon_alloc_page_list(b, &ctl, in vmballoon_inflate()
1136 lock_error = vmballoon_lock(b, &ctl); in vmballoon_inflate()
1146 atomic64_add(ctl.n_pages * page_in_frames, &b->size); in vmballoon_inflate()
1148 vmballoon_enqueue_page_list(b, &ctl.pages, &ctl.n_pages, in vmballoon_inflate()
1149 ctl.page_size); in vmballoon_inflate()
1156 ctl.n_refused_pages >= VMW_BALLOON_MAX_REFUSED) { in vmballoon_inflate()
1157 if (ctl.page_size == VMW_BALLOON_4K_PAGE) in vmballoon_inflate()
1164 vmballoon_split_refused_pages(&ctl); in vmballoon_inflate()
1165 ctl.page_size--; in vmballoon_inflate()
1176 if (ctl.n_refused_pages != 0) in vmballoon_inflate()
1177 vmballoon_release_refused_pages(b, &ctl); in vmballoon_inflate()
1179 vmballoon_release_page_list(&ctl.prealloc_pages, NULL, ctl.page_size); in vmballoon_inflate()
1199 struct vmballoon_ctl ctl = { in vmballoon_deflate() local
1200 .pages = LIST_HEAD_INIT(ctl.pages), in vmballoon_deflate()
1201 .refused_pages = LIST_HEAD_INIT(ctl.refused_pages), in vmballoon_deflate()
1213 page_in_frames = vmballoon_page_in_frames(ctl.page_size); in vmballoon_deflate()
1215 VM_BUG_ON(!list_empty(&ctl.pages)); in vmballoon_deflate()
1216 VM_BUG_ON(ctl.n_pages); in vmballoon_deflate()
1217 VM_BUG_ON(!list_empty(&ctl.refused_pages)); in vmballoon_deflate()
1218 VM_BUG_ON(ctl.n_refused_pages); in vmballoon_deflate()
1241 vmballoon_dequeue_page_list(b, &ctl.pages, &ctl.n_pages, in vmballoon_deflate()
1242 ctl.page_size, to_deflate_pages); in vmballoon_deflate()
1248 tried_frames += ctl.n_pages * page_in_frames; in vmballoon_deflate()
1258 vmballoon_lock(b, &ctl); in vmballoon_deflate()
1266 deflated_all = (ctl.n_pages == to_deflate_pages); in vmballoon_deflate()
1269 n_unlocked_frames = ctl.n_pages * page_in_frames; in vmballoon_deflate()
1274 ctl.page_size, ctl.n_pages); in vmballoon_deflate()
1277 vmballoon_release_page_list(&ctl.pages, &ctl.n_pages, in vmballoon_deflate()
1278 ctl.page_size); in vmballoon_deflate()
1281 vmballoon_enqueue_page_list(b, &ctl.refused_pages, in vmballoon_deflate()
1282 &ctl.n_refused_pages, in vmballoon_deflate()
1283 ctl.page_size); in vmballoon_deflate()
1287 if (ctl.page_size == b->max_page_size) in vmballoon_deflate()
1289 ctl.page_size++; in vmballoon_deflate()