On 06/02/2017 18:33, Dr. David Alan Gilbert (git) wrote:
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
>
> We need extra Linux kernel support (~4.11) to support userfaults
> on hugetlbfs; check for them.
>
> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> Reviewed-by: Juan Quintela <quintela@redhat.com>
> ---
> migration/postcopy-ram.c | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c
> index 6b30b43..102fb61 100644
> --- a/migration/postcopy-ram.c
> +++ b/migration/postcopy-ram.c
> @@ -81,6 +81,17 @@ static bool ufd_version_check(int ufd)
> return false;
> }
>
> + if (getpagesize() != ram_pagesize_summary()) {
> + bool have_hp = false;
> + /* We've got a huge page */
> +#ifdef UFFD_FEATURE_MISSING_HUGETLBFS
> + have_hp = api_struct.features & UFFD_FEATURE_MISSING_HUGETLBFS;
> +#endif
> + if (!have_hp) {
> + error_report("Userfault on this host does not support huge pages");
> + return false;
> + }
> + }
> return true;
> }
>
> @@ -115,7 +126,6 @@ bool postcopy_ram_supported_by_host(void)
> if (!ufd_version_check(ufd)) {
> goto out;
> }
> - /* TODO: Only allow huge pages if the kernel supports it */
>
> /*
> * userfault and mlock don't go together; we'll put it back later if
>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>