Re: [PATCH v2 1/3] hugetlb: simplify prep_compound_gigantic_page ref count racing code

From: Oscar Salvador
Date: Tue Aug 10 2021 - 05:29:18 EST


On 2021-08-09 20:48, Mike Kravetz wrote:
Code in prep_compound_gigantic_page waits for a rcu grace period if it
notices a temporarily inflated ref count on a tail page. This was due
to the identified potential race with speculative page cache references
which could only last for a rcu grace period. This is overly complicated
as this situation is VERY unlikely to ever happen. Instead, just quickly
return an error.
Also, only print a warning in prep_compound_gigantic_page instead of
multiple callers.

The above makes sense to me.
My only question would be: gather_bootmem_prealloc() is an __init function.
Can we have speculative refcounts due to e.g: pagecache at that early stage?
I think we cannot, but I am not really sure.

We might be able to remove that else() in case we cannot have such scenarios.


--
Oscar Salvador
SUSE L3