2016-03-14 21:30 GMT+09:00 Vlastimil Babka <vbabka@xxxxxxx>:
Now I see why this happen. I enabled CONFIG_DEBUG_PAGEALLOC
and it makes difference.
I tested on x86_64, gcc (Ubuntu 4.8.4-2ubuntu1~14.04.1) 4.8.4.
With CONFIG_CMA + CONFIG_DEBUG_PAGEALLOC
./scripts/bloat-o-meter page_alloc_base.o page_alloc_vlastimil_orig.o
add/remove: 0/0 grow/shrink: 2/0 up/down: 510/0 (510)
function old new delta
free_one_page 1050 1334 +284
free_pcppages_bulk 1396 1622 +226
./scripts/bloat-o-meter page_alloc_base.o page_alloc_mine.o
add/remove: 0/0 grow/shrink: 2/0 up/down: 351/0 (351)
function old new delta
free_one_page 1050 1230 +180
free_pcppages_bulk 1396 1567 +171
With CONFIG_CMA + !CONFIG_DEBUG_PAGEALLOC
(pa_b is base, pa_v is yours and pa_m is mine)
./scripts/bloat-o-meter pa_b.o pa_v.o
add/remove: 0/0 grow/shrink: 1/1 up/down: 88/-23 (65)
function old new delta
free_one_page 761 849 +88
free_pcppages_bulk 1117 1094 -23
./scripts/bloat-o-meter pa_b.o pa_m.o
add/remove: 0/0 grow/shrink: 2/0 up/down: 329/0 (329)
function old new delta
free_one_page 761 1031 +270
free_pcppages_bulk 1117 1176 +59
Still, it has difference but less than before.
Maybe, we are still using different configuration. Could you
check if CONFIG_DEBUG_VM is enabled or not? In my case, it's not
enabled. And, do you think this bloat isn't acceptable?
Thanks.