mm/page_alloc.c: remove unlikely() from the current_order test
In __rmqueue_fallback(), current_order loops down from MAX_ORDER - 1 to the order passed. MAX_ORDER is typically 11 and pageblock_order is typically 9 on x86. Integer division truncates, so pageblock_order / 2 is 4. For the first eight iterations, it's guaranteed that current_order >= pageblock_order / 2 if it even gets that far! So just remove the unlikely(), it's completely bogus. Signed-off-by: Zhang Yanfei <zhangyanfei@cn.fujitsu.com> Suggested-by: David Rientjes <rientjes@google.com> Acked-by: David Rientjes <rientjes@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
b21fbccd4b
Коммит
345606d429
|
@ -1046,7 +1046,7 @@ __rmqueue_fallback(struct zone *zone, int order, int start_migratetype)
|
|||
* MIGRATE_CMA areas.
|
||||
*/
|
||||
if (!is_migrate_cma(migratetype) &&
|
||||
(unlikely(current_order >= pageblock_order / 2) ||
|
||||
(current_order >= pageblock_order / 2 ||
|
||||
start_migratetype == MIGRATE_RECLAIMABLE ||
|
||||
page_group_by_mobility_disabled)) {
|
||||
int pages;
|
||||
|
|
Загрузка…
Ссылка в новой задаче