On Mon, 25 Feb 2013 11:13:08 +0900 Minchan Kim <minchan@xxxxxxxxxx> wrote: > > > > > > > > ... > > > > > > @@ -683,7 +683,7 @@ static void free_one_page(struct zone *zone, struct page *page, int order, > > > zone->pages_scanned = 0; > > > > > > __free_one_page(page, zone, order, migratetype); > > > - if (unlikely(migratetype != MIGRATE_ISOLATE)) > > > + if (unlikely(!is_migrate_isolate(migratetype))) > > > __mod_zone_freepage_state(zone, 1 << order, migratetype); > > > spin_unlock(&zone->lock); > > > } > > > > The code both before and after this patch is assuming that the > > migratetype in free_one_page is likely to be MIGRATE_ISOLATE. Seems > > wrong. If CONFIG_MEMORY_ISOLATION=n this ends up doing > > if(unlikely(true)) which is harmless-but-amusing. > > >From the beginning of [2139cbe627, cma: fix counting of isolated pages], > it was wrong. We can't make sure it's very likely. > If it is called by order-0 page free path, it is but if it is called by > high order page free path, we can't. > So I think it would be better to remove unlikley. Order-0 pages surely preponderate, so I'd say that "likely" is the way to go. I don't recall anyone ever demonstrating that likely/unlikely actually does anything useful. It would be interesting to have a play around, see if it actually does good things to the code generation. I think someone (perhaps in or near Dave Jones?) once had a patch which added counters to likely/unlikely, so the kernel can accumulate and then report upon the hit/miss ratio at each site. iirc, an alarmingly large number of the sites were deoptimisations! > They are trivial patch so send it now or send it after you release > first mmotm after finishing merge window? It's in mainline now. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>