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