Doing so will cause the grant to be unmapped and then, during
fault handling, the fault to be mistakenly treated as NUMA hint
fault.
In addition, even if we those maps could partcipate in NUMA
balancing it wouldn't provide any benefit since we wouldn't be
able to determine physical page's node (even if/when VNUMA is
implemented).
Marking grant maps' VMAs as VM_IO will exclude them from being
part of NUMA balancing.
Signed-off-by: Boris Ostrovsky <[email protected]>
---
drivers/xen/gntdev.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c
index 67b9163..bf312df 100644
--- a/drivers/xen/gntdev.c
+++ b/drivers/xen/gntdev.c
@@ -802,7 +802,7 @@ static int gntdev_mmap(struct file *flip, struct vm_area_struct *vma)
vma->vm_ops = &gntdev_vmops;
- vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP;
+ vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP | VM_IO;
if (use_ptemod)
vma->vm_flags |= VM_DONTCOPY;
--
1.7.1
On 11/10/2015 02:36 PM, Konrad Rzeszutek Wilk wrote:
> On Tue, Nov 10, 2015 at 02:22:44PM -0500, Boris Ostrovsky wrote:
>> Doing so will cause the grant to be unmapped and then, during
>> fault handling, the fault to be mistakenly treated as NUMA hint
>> fault.
>>
>> In addition, even if we those maps could partcipate in NUMA
>> balancing it wouldn't provide any benefit since we wouldn't be
>> able to determine physical page's node (even if/when VNUMA is
>> implemented).
>>
>> Marking grant maps' VMAs as VM_IO will exclude them from being
>> part of NUMA balancing.
>>
> Should this be 'cc:[email protected]' ?
This bug becomes a real problem with 4.4, now that NUMA balancing is on
by default.
But we should probably include it in stable too. I'll resubmit it then
with CC tag.
-boris
>
>
>> Signed-off-by: Boris Ostrovsky <[email protected]>
>> ---
>> drivers/xen/gntdev.c | 2 +-
>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c
>> index 67b9163..bf312df 100644
>> --- a/drivers/xen/gntdev.c
>> +++ b/drivers/xen/gntdev.c
>> @@ -802,7 +802,7 @@ static int gntdev_mmap(struct file *flip, struct vm_area_struct *vma)
>>
>> vma->vm_ops = &gntdev_vmops;
>>
>> - vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP;
>> + vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP | VM_IO;
>>
>> if (use_ptemod)
>> vma->vm_flags |= VM_DONTCOPY;
>> --
>> 1.7.1
>>