Messages in this thread | | | Date | Mon, 17 Mar 2014 17:36:53 -0700 | From | John Stultz <> | Subject | Re: [PATCH 1/3] vrange: Add vrange syscall and handle splitting/merging and marking vmas |
| |
On 03/17/2014 02:43 AM, Jan Kara wrote: > On Mon 17-03-14 10:21:18, Jan Kara wrote: >> On Fri 14-03-14 11:33:31, John Stultz wrote: >>> + for (;;) { >>> + unsigned long new_flags; >>> + pgoff_t pgoff; >>> + unsigned long tmp; >>> + >>> + if (!vma) >>> + goto out; >>> + >>> + if (vma->vm_flags & (VM_SPECIAL|VM_LOCKED|VM_MIXEDMAP| >>> + VM_HUGETLB)) >>> + goto out; >>> + >>> + /* We don't support volatility on files for now */ >>> + if (vma->vm_file) { >>> + ret = -EINVAL; >>> + goto out; >>> + } >>> + >>> + new_flags = vma->vm_flags; >>> + >>> + if (start < vma->vm_start) { >>> + start = vma->vm_start; >>> + if (start >= end) >>> + goto out; >>> + } > One more question: This seems to silently skip any holes between VMAs. Is > that really intended? I'd expect that marking unmapped range as volatile / > non-volatile should return error... In any case what happens should be > defined in the description.
So.. initially it was by design, but as I look at madvise and think about it further, it does make more sense to throw errors if memory in the range is not mapped.
I'll try to rework things to adapt to this.
thanks -john
| |