Lines Matching refs:ksm_scan

130  * struct ksm_scan - cursor for scanning
136 * There is only the one ksm_scan instance of this cursor structure.
138 struct ksm_scan {
237 static struct ksm_scan ksm_scan = {
852 age = (unsigned char)(ksm_scan.seqnr - rmap_item->address);
1025 ksm_scan.mm_slot = mm_slot_entry(slot, struct ksm_mm_slot, slot);
1028 for (mm_slot = ksm_scan.mm_slot; mm_slot != &ksm_mm_head;
1029 mm_slot = ksm_scan.mm_slot) {
1058 ksm_scan.mm_slot = mm_slot_entry(slot, struct ksm_mm_slot, slot);
1074 ksm_scan.seqnr = 0;
1080 ksm_scan.mm_slot = &ksm_mm_head;
2058 rmap_item->address |= (ksm_scan.seqnr & SEQNR_MASK);
2321 mm_slot = ksm_scan.mm_slot;
2323 trace_ksm_start_scan(ksm_scan.seqnr, ksm_rmap_items);
2364 ksm_scan.mm_slot = mm_slot;
2373 ksm_scan.address = 0;
2374 ksm_scan.rmap_list = &mm_slot->rmap_list;
2379 vma_iter_init(&vmi, mm, ksm_scan.address);
2388 if (ksm_scan.address < vma->vm_start)
2389 ksm_scan.address = vma->vm_start;
2391 ksm_scan.address = vma->vm_end;
2393 while (ksm_scan.address < vma->vm_end) {
2396 *page = follow_page(vma, ksm_scan.address, FOLL_GET);
2398 ksm_scan.address += PAGE_SIZE;
2405 flush_anon_page(vma, *page, ksm_scan.address);
2408 ksm_scan.rmap_list, ksm_scan.address);
2410 ksm_scan.rmap_list =
2412 ksm_scan.address += PAGE_SIZE;
2420 ksm_scan.address += PAGE_SIZE;
2427 ksm_scan.address = 0;
2428 ksm_scan.rmap_list = &mm_slot->rmap_list;
2434 remove_trailing_rmap_items(ksm_scan.rmap_list);
2439 ksm_scan.mm_slot = mm_slot_entry(slot, struct ksm_mm_slot, slot);
2440 if (ksm_scan.address == 0) {
2466 * ksm_scan.mm_slot doesn't point to it anymore.
2472 mm_slot = ksm_scan.mm_slot;
2476 trace_ksm_stop_scan(ksm_scan.seqnr, ksm_rmap_items);
2477 ksm_scan.seqnr++;
2737 list_add_tail(&slot->mm_node, &ksm_scan.mm_slot->slot.mm_node);
2768 if (mm_slot && ksm_scan.mm_slot != mm_slot) {
2775 &ksm_scan.mm_slot->slot.mm_node);
3448 return sysfs_emit(buf, "%lu\n", ksm_scan.seqnr);