@gregkh @sima “eventually calling __get_free_pages”?
You have to realize that when the GFP_xyz flags were introduced - back in 1992 - “get_free_page()” was the only way to allocate memory.
So “GFP” wasn’t some odd internal thing. There was nothing else (ok, there was a very simply malloc() library on top of that “you can free and allocate one page” mode).
No “eventually” about it. It was the thing.