Re: LTP regressions due to 6dc296e7df4c ("mm: make sure all file VMAs have ->vm_ops set")

From: Oleg Nesterov
Date: Mon Sep 14 2015 - 13:49:08 EST


On 09/14, Oleg Nesterov wrote:
>
> On 09/14, Kirill A. Shutemov wrote:
> >
> > Fix is below. I don't really like it, but I cannot find any better
> > solution.
>
> Me too...
>
> But this change "documents" the nasty special "vm_file && !vm_ops" case, and
> I am not sure how we can remove it later...
>
> So perhaps we should change vma_is_anonymous() back to check ->fault too,
>
> static inline bool vma_is_anonymous(struct vm_area_struct *vma)
> {
> - return !vma->vm_ops;
> + return !vma->vm_ops || !vma->vm_ops->fault;
> }
>
> and remove the "vma->vm_file && !vma->vm_ops" checks in mmap_region() paths.
^^^

sorry, I actually meant "or remove". But perhaps "and" makes sense too.

Say, if we change vma_is_anonymous() as above, then we can kill
arch_vma_name() on x86. mpx_mmap() can install the dummy vm_ops with
the single ->name() method.

> I dunno.

Yes. Up to you.

Oleg.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/