Lines Matching refs:ctl

660 				     struct vmballoon_ctl *ctl,  in vmballoon_alloc_page_list()  argument
672 if (!list_empty(&ctl->prealloc_pages)) { in vmballoon_alloc_page_list()
673 page = list_first_entry(&ctl->prealloc_pages, in vmballoon_alloc_page_list()
677 if (ctl->page_size == VMW_BALLOON_2M_PAGE) in vmballoon_alloc_page_list()
684 ctl->page_size); in vmballoon_alloc_page_list()
689 list_add(&page->lru, &ctl->pages); in vmballoon_alloc_page_list()
695 ctl->page_size); in vmballoon_alloc_page_list()
699 ctl->n_pages = i; in vmballoon_alloc_page_list()
701 return req_n_pages == ctl->n_pages ? 0 : -ENOMEM; in vmballoon_alloc_page_list()
853 static int vmballoon_lock(struct vmballoon *b, struct vmballoon_ctl *ctl) in vmballoon_lock() argument
859 num_pages = ctl->n_pages; in vmballoon_lock()
867 list_for_each_entry(page, &ctl->pages, lru) in vmballoon_lock()
870 batch_status = vmballoon_lock_op(b, ctl->n_pages, ctl->page_size, in vmballoon_lock()
871 ctl->op); in vmballoon_lock()
891 if (!vmballoon_handle_one_result(b, page, ctl->page_size, in vmballoon_lock()
899 list_move(&page->lru, &ctl->refused_pages); in vmballoon_lock()
900 ctl->n_pages--; in vmballoon_lock()
901 ctl->n_refused_pages++; in vmballoon_lock()
939 struct vmballoon_ctl *ctl) in vmballoon_release_refused_pages() argument
942 ctl->page_size); in vmballoon_release_refused_pages()
944 vmballoon_release_page_list(&ctl->refused_pages, &ctl->n_refused_pages, in vmballoon_release_refused_pages()
945 ctl->page_size); in vmballoon_release_refused_pages()
1080 static void vmballoon_split_refused_pages(struct vmballoon_ctl *ctl) in vmballoon_split_refused_pages() argument
1085 order = vmballoon_page_order(ctl->page_size); in vmballoon_split_refused_pages()
1087 list_for_each_entry_safe(page, tmp, &ctl->refused_pages, lru) { in vmballoon_split_refused_pages()
1091 list_add(&page[i].lru, &ctl->prealloc_pages); in vmballoon_split_refused_pages()
1093 ctl->n_refused_pages = 0; in vmballoon_split_refused_pages()
1104 struct vmballoon_ctl ctl = { in vmballoon_inflate() local
1105 .pages = LIST_HEAD_INIT(ctl.pages), in vmballoon_inflate()
1106 .refused_pages = LIST_HEAD_INIT(ctl.refused_pages), in vmballoon_inflate()
1107 .prealloc_pages = LIST_HEAD_INIT(ctl.prealloc_pages), in vmballoon_inflate()
1116 VM_BUG_ON(!list_empty(&ctl.pages)); in vmballoon_inflate()
1117 VM_BUG_ON(ctl.n_pages != 0); in vmballoon_inflate()
1119 page_in_frames = vmballoon_page_in_frames(ctl.page_size); in vmballoon_inflate()
1126 alloc_error = vmballoon_alloc_page_list(b, &ctl, in vmballoon_inflate()
1130 lock_error = vmballoon_lock(b, &ctl); in vmballoon_inflate()
1140 atomic64_add(ctl.n_pages * page_in_frames, &b->size); in vmballoon_inflate()
1142 vmballoon_enqueue_page_list(b, &ctl.pages, &ctl.n_pages, in vmballoon_inflate()
1143 ctl.page_size); in vmballoon_inflate()
1150 ctl.n_refused_pages >= VMW_BALLOON_MAX_REFUSED) { in vmballoon_inflate()
1151 if (ctl.page_size == VMW_BALLOON_4K_PAGE) in vmballoon_inflate()
1158 vmballoon_split_refused_pages(&ctl); in vmballoon_inflate()
1159 ctl.page_size--; in vmballoon_inflate()
1170 if (ctl.n_refused_pages != 0) in vmballoon_inflate()
1171 vmballoon_release_refused_pages(b, &ctl); in vmballoon_inflate()
1173 vmballoon_release_page_list(&ctl.prealloc_pages, NULL, ctl.page_size); in vmballoon_inflate()
1193 struct vmballoon_ctl ctl = { in vmballoon_deflate() local
1194 .pages = LIST_HEAD_INIT(ctl.pages), in vmballoon_deflate()
1195 .refused_pages = LIST_HEAD_INIT(ctl.refused_pages), in vmballoon_deflate()
1207 page_in_frames = vmballoon_page_in_frames(ctl.page_size); in vmballoon_deflate()
1209 VM_BUG_ON(!list_empty(&ctl.pages)); in vmballoon_deflate()
1210 VM_BUG_ON(ctl.n_pages); in vmballoon_deflate()
1211 VM_BUG_ON(!list_empty(&ctl.refused_pages)); in vmballoon_deflate()
1212 VM_BUG_ON(ctl.n_refused_pages); in vmballoon_deflate()
1235 vmballoon_dequeue_page_list(b, &ctl.pages, &ctl.n_pages, in vmballoon_deflate()
1236 ctl.page_size, to_deflate_pages); in vmballoon_deflate()
1242 tried_frames += ctl.n_pages * page_in_frames; in vmballoon_deflate()
1252 vmballoon_lock(b, &ctl); in vmballoon_deflate()
1260 deflated_all = (ctl.n_pages == to_deflate_pages); in vmballoon_deflate()
1263 n_unlocked_frames = ctl.n_pages * page_in_frames; in vmballoon_deflate()
1268 ctl.page_size, ctl.n_pages); in vmballoon_deflate()
1271 vmballoon_release_page_list(&ctl.pages, &ctl.n_pages, in vmballoon_deflate()
1272 ctl.page_size); in vmballoon_deflate()
1275 vmballoon_enqueue_page_list(b, &ctl.refused_pages, in vmballoon_deflate()
1276 &ctl.n_refused_pages, in vmballoon_deflate()
1277 ctl.page_size); in vmballoon_deflate()
1281 if (ctl.page_size == b->max_page_size) in vmballoon_deflate()
1283 ctl.page_size++; in vmballoon_deflate()