Messages in this thread | | | Date | Thu, 15 Apr 2021 10:28:23 +0200 | From | Oscar Salvador <> | Subject | Re: [PATCH v7 5/7] mm: Make alloc_contig_range handle free hugetlb pages |
| |
On Wed, Apr 14, 2021 at 02:26:21PM +0200, David Hildenbrand wrote: > > +static inline int isolate_or_dissolve_huge_page(struct page *page) > > +{ > > + return -ENOMEM; > > Without CONFIG_HUGETLB_PAGE, there is no way someone could possible pass in > something valid. Although it doesn't matter too much, -EINVAL or similar > sounds a bit better.
I guess we could, was just to make it consistent with the kind of error we return when we have it enabled.
> > @@ -809,6 +809,7 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn, > > bool skip_on_failure = false; > > unsigned long next_skip_pfn = 0; > > bool skip_updated = false; > > + bool fatal_error = false; > > Can't we use "ret == -ENOMEM" instead of fatal_error?
Yes, we can, I will see how it looks.
[...]
> > + /* > > + * Fence off gigantic pages as there is a cyclic dependency between > > + * alloc_contig_range and them. Return -ENOME as this has the effect > > s/-ENOME/-ENOMEM/
thanks, I missed that one.
> > > + * of bailing out right away without further retrying. > > + */ > > + if (hstate_is_gigantic(h)) > > + return -ENOMEM; > > + > > + return alloc_and_dissolve_huge_page(h, head); > > +} > > + > > struct page *alloc_huge_page(struct vm_area_struct *vma, > > unsigned long addr, int avoid_reserve) > > { > > > > Complicated stuff, but looks good to me.
Thanks for having a look!
-- Oscar Salvador SUSE L3
| |