mm: correct the comment about the value for buddy _mapcount
Set _mapcount PAGE_BUDDY_MAPCOUNT_VALUE to make the page buddy. Not the magic number -2. Signed-off-by: Wang Sheng-Hui <shhuiw@gmail.com> Cc: Mel Gorman <mel@csn.ul.ie> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
fa0f281cf9
commit
cf6fe94538
1 changed files with 7 additions and 4 deletions
|
@ -489,8 +489,10 @@ __find_buddy_index(unsigned long page_idx, unsigned int order)
|
|||
* (c) a page and its buddy have the same order &&
|
||||
* (d) a page and its buddy are in the same zone.
|
||||
*
|
||||
* For recording whether a page is in the buddy system, we set ->_mapcount -2.
|
||||
* Setting, clearing, and testing _mapcount -2 is serialized by zone->lock.
|
||||
* For recording whether a page is in the buddy system, we set ->_mapcount
|
||||
* PAGE_BUDDY_MAPCOUNT_VALUE.
|
||||
* Setting, clearing, and testing _mapcount PAGE_BUDDY_MAPCOUNT_VALUE is
|
||||
* serialized by zone->lock.
|
||||
*
|
||||
* For recording page's order, we use page_private(page).
|
||||
*/
|
||||
|
@ -528,8 +530,9 @@ static inline int page_is_buddy(struct page *page, struct page *buddy,
|
|||
* as necessary, plus some accounting needed to play nicely with other
|
||||
* parts of the VM system.
|
||||
* At each level, we keep a list of pages, which are heads of continuous
|
||||
* free pages of length of (1 << order) and marked with _mapcount -2. Page's
|
||||
* order is recorded in page_private(page) field.
|
||||
* free pages of length of (1 << order) and marked with _mapcount
|
||||
* PAGE_BUDDY_MAPCOUNT_VALUE. Page's order is recorded in page_private(page)
|
||||
* field.
|
||||
* So when we are allocating or freeing one, we can derive the state of the
|
||||
* other. That is, if we allocate a small block, and both were
|
||||
* free, the remainder of the region must be split into blocks.
|
||||
|
|
Loading…
Reference in a new issue