On 8/13/19 6:34 AM, David Hildenbrand wrote: >>>>> +static int process_free_page(struct page *page, >>>>> + struct page_reporting_config *phconf, int count) >>>>> +{ >>>>> + int mt, order, ret = 0; [...] >>>>> +/** >>>>> + * zone_reporting_init - For each zone initializes the page reporting fields >>>>> + * and allocates the respective bitmap. >>>>> + * >>>>> + * This function returns 0 on successful initialization, -ENOMEM otherwise. >>>>> + */ >>>>> +static int zone_reporting_init(void) >>>>> +{ >>>>> + struct zone *zone; >>>>> + int ret; >>>>> + >>>>> + for_each_populated_zone(zone) { >>>>> +#ifdef CONFIG_ZONE_DEVICE >>>>> + /* we can not report pages which are not in the buddy */ >>>>> + if (zone_idx(zone) == ZONE_DEVICE) >>>>> + continue; >>>>> +#endif >>>> I'm pretty sure this isn't needed since I don't think the ZONE_DEVICE >>>> zone will be considered "populated". >>>> >>> I think you are right (although it's confusing, we will have present >>> sections part of a zone but the zone has no present_pages - screams like >>> a re factoring - leftover from ZONE_DEVICE introduction). >> >> I think in that case it is safe to have this check here. >> What do you guys suggest? > If it's not needed, I'd say drop it (eventually add a comment). Comment to mention that we do not expect a zone with non-buddy page to be initialized here? > > -- Thanks Nitesh