As per the documentation( https://www.linuxjournal.com/article/6930), 
which says:
    Flag                Description
__GFP_REPEAT   The kernel repeats the allocation if it fails.
__GFP_NOFAIL   The kernel can repeat the allocation. 

So, both of them may cause the kernel to repeat the allocation operation. 
How can I choose between them?
What are the major differences?

Thank you for your attention to this matter.
Looking forward to hearing from you.