Re: [Xen-devel] [PATCH] xen/gntdev: Use mempolicy instead of VM_IO flag to avoid NUMA balancing

From: David Vrabel
Date: Wed Nov 16 2016 - 12:20:53 EST


On 16/11/16 17:02, Boris Ostrovsky wrote:
> Commit 9c17d96500f7 ("xen/gntdev: Grant maps should not be subject to
> NUMA balancing") set VM_IO flag to prevent grant maps from being
> subjected to NUMA balancing.
>
> It was discovered recently this this flag may cause page allocation
> failures with the following stack:

It's not an allocation failure.

"It was discovered recently that this flag causes get_user_pages() to
always fail with -EFAULT."

> check_vma_flags
> __get_user_pages
> __get_user_pages_locked
> __get_user_pages_unlocked
> get_user_pages_fast
> iov_iter_get_pages
> dio_refill_pages
> do_direct_IO
> do_blockdev_direct_IO
> do_blockdev_direct_IO
> ext4_direct_IO_read
> generic_file_read_iter
> aio_run_iocb
>
> (which can happen if guest's vdisk has direct-io-safe option).
>
> To avoid this, instead of setting VM_IO use mempolicy that prohibits page
> migration (i.e. clear policy's MPOL_F_MOF|MPOL_F_MORON)

Reviewed-by: David Vrabel <david.vrabel@xxxxxxxxxx>

With the corrected commit message.

David