Lines Matching full:order

40  * Use it to store both the magic and the order.
45 unsigned int order; member
69 * The serializing side uses two levels of xarrays to manage chunks of per-order
70 * 512 byte bitmaps. For instance if PAGE_SIZE = 4096, the entire 1G order of a
71 * 1TB system would fit inside a single 512 byte bitmap. For order 0 allocations
73 * 512K of bitmap memory will be needed for order 0.
90 * to order.
96 /* Points to kho_mem_phys, each order gets its own bitmap tree */
165 const unsigned int order = in __kho_unpreserve() local
167 const unsigned long pfn_high = pfn >> order; in __kho_unpreserve()
169 physxa = xa_load(&track->orders, order); in __kho_unpreserve()
179 pfn += 1 << order; in __kho_unpreserve()
184 unsigned int order) in __kho_preserve_order() argument
188 const unsigned long pfn_high = pfn >> order; in __kho_preserve_order()
195 physxa = xa_load(&track->orders, order); in __kho_preserve_order()
204 physxa = xa_cmpxchg(&track->orders, order, NULL, new_physxa, in __kho_preserve_order()
241 * check also implicitly makes sure phys is order-aligned since for in kho_restore_page()
242 * non-order-aligned phys addresses, magic will never be set. in kho_restore_page()
244 if (WARN_ON_ONCE(info.magic != KHO_PAGE_MAGIC || info.order > MAX_PAGE_ORDER)) in kho_restore_page()
246 nr_pages = (1 << info.order); in kho_restore_page()
253 /* For higher order folios, tail pages get a page count of zero. */ in kho_restore_page()
257 if (info.order > 0) in kho_restore_page()
258 prep_compound_page(page, info.order); in kho_restore_page()
279 * kho_restore_pages - restore list of contiguous order 0 pages.
283 * Restore a contiguous list of order 0 pages that was preserved with
295 const unsigned int order = in kho_restore_pages() local
301 split_page(page, order); in kho_restore_pages()
302 pfn += 1 << order; in kho_restore_pages()
312 * process. Each chunk holds bitmaps of the same order and each block of bitmaps
315 * but the KHO successor kernel only needs to process them once in order.
330 unsigned int order; member
346 unsigned long order) in new_chunk() argument
353 chunk->hdr.order = order; in new_chunk()
376 unsigned long order; in kho_mem_serialize() local
378 xa_for_each(&ser->track.orders, order, physxa) { in kho_mem_serialize()
382 chunk = new_chunk(chunk, order); in kho_mem_serialize()
393 chunk = new_chunk(chunk, order); in kho_mem_serialize()
401 << (order + PAGE_SHIFT); in kho_mem_serialize()
415 static void __init deserialize_bitmap(unsigned int order, in deserialize_bitmap() argument
422 int sz = 1 << (order + PAGE_SHIFT); in deserialize_bitmap()
424 elm->phys_start + (bit << (order + PAGE_SHIFT)); in deserialize_bitmap()
431 info.order = order; in deserialize_bitmap()
454 deserialize_bitmap(chunk->hdr.order, in kho_mem_deserialize()
744 * Instructs KHO to preserve the whole folio across kexec. The order
752 const unsigned int order = folio_order(folio); in kho_preserve_folio() local
755 return __kho_preserve_order(track, pfn, order); in kho_preserve_folio()
764 * Preserve a contiguous list of order 0 pages. Must be restored using
765 * kho_restore_pages() to ensure the pages are restored properly as order 0.
779 const unsigned int order = in kho_preserve_pages() local
782 err = __kho_preserve_order(track, pfn, order); in kho_preserve_pages()
788 pfn += 1 << order; in kho_preserve_pages()
911 unsigned int order, flags, nr_contig_pages; in kho_preserve_vmalloc() local
922 order = get_vm_area_page_order(vm); in kho_preserve_vmalloc()
929 nr_contig_pages = (1 << order); in kho_preserve_vmalloc()
948 preservation->order = order; in kho_preserve_vmalloc()
971 unsigned int align, order, shift, vm_flags; in kho_restore_vmalloc() local
987 order = preservation->order; in kho_restore_vmalloc()
988 contig_pages = (1 << order); in kho_restore_vmalloc()
989 shift = PAGE_SHIFT + order; in kho_restore_vmalloc()
1073 unsigned long order; in kho_abort() local
1076 xa_for_each(&kho_out.ser.track.orders, order, physxa) { in kho_abort()