How hard would it be to locate another potential hugepage when a subpage cannot be migrated immediately?
In my opinion, in-core operations should never be forced to wait on disk I/O unless it's necessary to prevent the entire operation from failing. On the other hand, there is definite value in allocating a hugepage up front, so it might make sense to put some effort toward locating a candidate hugepage which *can* be migrated rather than immediately falling back to individual pages.
If it's possible to try another hugepage, or fall back to individual pages, these options should come first.