• Home
  • Raw
  • Download

Lines Matching refs:batch

185 	struct mmu_gather_batch *batch;  in tlb_next_batch()  local
187 batch = tlb->active; in tlb_next_batch()
188 if (batch->next) { in tlb_next_batch()
189 tlb->active = batch->next; in tlb_next_batch()
196 batch = (void *)__get_free_pages(GFP_NOWAIT | __GFP_NOWARN, 0); in tlb_next_batch()
197 if (!batch) in tlb_next_batch()
201 batch->next = NULL; in tlb_next_batch()
202 batch->nr = 0; in tlb_next_batch()
203 batch->max = MAX_GATHER_BATCH; in tlb_next_batch()
205 tlb->active->next = batch; in tlb_next_batch()
206 tlb->active = batch; in tlb_next_batch()
230 tlb->batch = NULL; in tlb_gather_mmu()
250 struct mmu_gather_batch *batch; in tlb_flush_mmu_free() local
252 for (batch = &tlb->local; batch; batch = batch->next) { in tlb_flush_mmu_free()
253 free_pages_and_swap_cache(batch->pages, batch->nr); in tlb_flush_mmu_free()
254 batch->nr = 0; in tlb_flush_mmu_free()
271 struct mmu_gather_batch *batch, *next; in tlb_finish_mmu() local
278 for (batch = tlb->local.next; batch; batch = next) { in tlb_finish_mmu()
279 next = batch->next; in tlb_finish_mmu()
280 free_pages((unsigned long)batch, 0); in tlb_finish_mmu()
293 struct mmu_gather_batch *batch; in __tlb_remove_page() local
297 batch = tlb->active; in __tlb_remove_page()
298 batch->pages[batch->nr++] = page; in __tlb_remove_page()
299 if (batch->nr == batch->max) { in __tlb_remove_page()
302 batch = tlb->active; in __tlb_remove_page()
304 VM_BUG_ON_PAGE(batch->nr > batch->max, page); in __tlb_remove_page()
306 return batch->max - batch->nr; in __tlb_remove_page()
337 struct mmu_table_batch *batch; in tlb_remove_table_rcu() local
340 batch = container_of(head, struct mmu_table_batch, rcu); in tlb_remove_table_rcu()
342 for (i = 0; i < batch->nr; i++) in tlb_remove_table_rcu()
343 __tlb_remove_table(batch->tables[i]); in tlb_remove_table_rcu()
345 free_page((unsigned long)batch); in tlb_remove_table_rcu()
350 struct mmu_table_batch **batch = &tlb->batch; in tlb_table_flush() local
352 if (*batch) { in tlb_table_flush()
353 call_rcu_sched(&(*batch)->rcu, tlb_remove_table_rcu); in tlb_table_flush()
354 *batch = NULL; in tlb_table_flush()
360 struct mmu_table_batch **batch = &tlb->batch; in tlb_remove_table() local
371 if (*batch == NULL) { in tlb_remove_table()
372 *batch = (struct mmu_table_batch *)__get_free_page(GFP_NOWAIT | __GFP_NOWARN); in tlb_remove_table()
373 if (*batch == NULL) { in tlb_remove_table()
377 (*batch)->nr = 0; in tlb_remove_table()
379 (*batch)->tables[(*batch)->nr++] = table; in tlb_remove_table()
380 if ((*batch)->nr == MAX_TABLE_BATCH) in tlb_remove_table()