On 02/01/2018 02:02 AM, Michal Hocko wrote: > On Wed 31-01-18 12:12:17, Andrew Morton wrote: >> On Wed, 31 Jan 2018 08:58:52 +0100 Michal Hocko <mho...@kernel.org> wrote: >> >>> On Wed 31-01-18 07:55:05, Anshuman Khandual wrote: >>>> On 01/30/2018 01:29 PM, Michal Hocko wrote: >>>>> On Tue 30-01-18 08:37:14, Anshuman Khandual wrote: >>>>>> alloc_contig_range() initiates compaction and eventual migration for >>>>>> the purpose of either CMA or HugeTLB allocation. At present, reason >>>>>> code remains the same MR_CMA for either of those cases. Lets add a >>>>>> new reason code which will differentiate the purpose of migration >>>>>> as HugeTLB allocation instead. >>>>> Why do we need it? >>>> >>>> The same reason why we have MR_CMA (maybe some other ones as well) at >>>> present, for reporting purpose through traces at the least. It just >>>> seemed like same reason code is being used for two different purpose >>>> of migration. >>> >>> But do we have any real user asking for this kind of information? >> >> It seems a reasonable cleanup: reusing MR_CMA for hugetlb just because >> it happens to do the right thing is a bit hacky - the two things aren't >> particularly related and a reader could be excused for feeling >> confusion. > > My bad! I thought this is a tracepoint thingy. But it seems to be only > used as a migration reason for page_owner. Now it makes more sense. > >> But the change seems incomplete: >> >>> + if (migratetype == MIGRATE_CMA) >>> + migrate_reason = MR_CMA; >>> + else >>> + migrate_reason = MR_HUGETLB; >> >> If we're going to do this cleanup then shouldn't we go all the way and >> add MIGRATE_HUGETLB? > > Yes. We can expect more users of alloc_contig_range in future. Maybe we > want to use MR_CONTIG_RANGE instead.
MR_CONTIG_RANGE can be a replacement for both MR_CMA and MR_HUGETLB.