Lines Matching refs:ksm_scan

129  * struct ksm_scan - cursor for scanning
135 * There is only the one ksm_scan instance of this cursor structure.
137 struct ksm_scan {
238 static struct ksm_scan ksm_scan = {
810 age = (unsigned char)(ksm_scan.seqnr - rmap_item->address);
975 ksm_scan.mm_slot = list_entry(ksm_mm_head.mm_list.next,
979 for (mm_slot = ksm_scan.mm_slot;
980 mm_slot != &ksm_mm_head; mm_slot = ksm_scan.mm_slot) {
998 ksm_scan.mm_slot = list_entry(mm_slot->mm_list.next,
1014 ksm_scan.seqnr = 0;
1020 ksm_scan.mm_slot = &ksm_mm_head;
1986 rmap_item->address |= (ksm_scan.seqnr & SEQNR_MASK);
2241 slot = ksm_scan.mm_slot;
2280 ksm_scan.mm_slot = slot;
2289 ksm_scan.address = 0;
2290 ksm_scan.rmap_list = &slot->rmap_list;
2298 vma = find_vma(mm, ksm_scan.address);
2303 if (ksm_scan.address < vma->vm_start)
2304 ksm_scan.address = vma->vm_start;
2306 ksm_scan.address = vma->vm_end;
2308 while (ksm_scan.address < vma->vm_end) {
2311 *page = follow_page(vma, ksm_scan.address, FOLL_GET);
2313 ksm_scan.address += PAGE_SIZE;
2318 flush_anon_page(vma, *page, ksm_scan.address);
2321 ksm_scan.rmap_list, ksm_scan.address);
2323 ksm_scan.rmap_list =
2325 ksm_scan.address += PAGE_SIZE;
2332 ksm_scan.address += PAGE_SIZE;
2338 ksm_scan.address = 0;
2339 ksm_scan.rmap_list = &slot->rmap_list;
2345 remove_trailing_rmap_items(slot, ksm_scan.rmap_list);
2348 ksm_scan.mm_slot = list_entry(slot->mm_list.next,
2350 if (ksm_scan.address == 0) {
2375 * ksm_scan.mm_slot doesn't point to it anymore.
2381 slot = ksm_scan.mm_slot;
2385 ksm_scan.seqnr++;
2524 list_add_tail(&mm_slot->mm_list, &ksm_scan.mm_slot->mm_list);
2552 if (mm_slot && ksm_scan.mm_slot != mm_slot) {
2559 &ksm_scan.mm_slot->mm_list);
3135 return sprintf(buf, "%lu\n", ksm_scan.seqnr);