Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 250911
b: refs/heads/master
c: 6d3163c
h: refs/heads/master
i:
  250909: 6b25d0a
  250907: 44ebf0e
  250903: bab40a4
  250895: 3e161ab
  250879: 8f06f45
v: v3
  • Loading branch information
Arve Hjønnevåg authored and Linus Torvalds committed May 25, 2011
1 parent 0742d12 commit 4520d5b
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0091a47da0b720ca39511c7d90dcc768cafcaf58
refs/heads/master: 6d3163ce86dd386b4f7bda80241d7fea2bc0bb1d
19 changes: 17 additions & 2 deletions trunk/mm/page_alloc.c
Original file line number Diff line number Diff line change
Expand Up @@ -3328,6 +3328,20 @@ static inline unsigned long wait_table_bits(unsigned long size)

#define LONG_ALIGN(x) (((x)+(sizeof(long))-1)&~((sizeof(long))-1))

/*
* Check if a pageblock contains reserved pages
*/
static int pageblock_is_reserved(unsigned long start_pfn, unsigned long end_pfn)
{
unsigned long pfn;

for (pfn = start_pfn; pfn < end_pfn; pfn++) {
if (!pfn_valid_within(pfn) || PageReserved(pfn_to_page(pfn)))
return 1;
}
return 0;
}

/*
* Mark a number of pageblocks as MIGRATE_RESERVE. The number
* of blocks reserved is based on min_wmark_pages(zone). The memory within
Expand All @@ -3337,7 +3351,7 @@ static inline unsigned long wait_table_bits(unsigned long size)
*/
static void setup_zone_migrate_reserve(struct zone *zone)
{
unsigned long start_pfn, pfn, end_pfn;
unsigned long start_pfn, pfn, end_pfn, block_end_pfn;
struct page *page;
unsigned long block_migratetype;
int reserve;
Expand Down Expand Up @@ -3367,7 +3381,8 @@ static void setup_zone_migrate_reserve(struct zone *zone)
continue;

/* Blocks with reserved pages will never free, skip them. */
if (PageReserved(page))
block_end_pfn = min(pfn + pageblock_nr_pages, end_pfn);
if (pageblock_is_reserved(pfn, block_end_pfn))
continue;

block_migratetype = get_pageblock_migratetype(page);
Expand Down

0 comments on commit 4520d5b

Please sign in to comment.