Function report |
Source Code:mm\page_alloc.c |
Create Date:2022-07-28 15:04:15 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:move_freepages_block
Proto:int move_freepages_block(struct zone *zone, struct page *page, int migratetype, int *num_movable)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct zone * | zone | |
| struct page * | page | |
| int | migratetype | |
| int * | num_movable |
| 2284 | If num_movable Then num_movable = 0 |
| 2287 | start_pfn = page_to_pfn(page) |
| 2288 | start_pfn = start_pfn & ~(pageblock_nr_pages - 1) |
| 2289 | start_page = pfn_to_page(start_pfn) |
| 2290 | end_page = start_page + pageblock_nr_pages - 1 |
| 2291 | end_pfn = start_pfn + pageblock_nr_pages - 1 |
| 2294 | If Not zone_spans_pfn(zone, start_pfn) Then start_page = page |
| 2296 | If Not zone_spans_pfn(zone, end_pfn) Then Return 0 |
| Name | Describe |
|---|---|
| steal_suitable_fallback | This function implements actual steal behaviour. If order is large enough,* we can steal whole pageblock. If not, we first move freepages in this* pageblock to our migratetype and determine how many already-allocated pages |
| reserve_highatomic_pageblock | Reserve a pageblock for exclusive use of high-order atomic allocations if* there are no empty page blocks that contain a page with a suitable order |
| unreserve_highatomic_pageblock | Used when an allocation is about to fail under memory pressure |
| set_migratetype_isolate | |
| unset_migratetype_isolate |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |