Re: [PATCH 5/8] trace_uprobe: Support SDT markers having reference count (semaphore)

From: Oleg Nesterov
Date: Mon Mar 19 2018 - 09:46:31 EST


On 03/19, Ravi Bangoria wrote:
>
> Hi Oleg,
>
> On 03/14/2018 10:29 PM, Oleg Nesterov wrote:
> > On 03/13, Ravi Bangoria wrote:
> >> +static bool sdt_valid_vma(struct trace_uprobe *tu, struct vm_area_struct *vma)
> >> +{
> >> + unsigned long vaddr = vma_offset_to_vaddr(vma, tu->ref_ctr_offset);
> >> +
> >> + return tu->ref_ctr_offset &&
> >> + vma->vm_file &&
> >> + file_inode(vma->vm_file) == tu->inode &&
> >> + vma->vm_flags & VM_WRITE &&
> >> + vma->vm_start <= vaddr &&
> >> + vma->vm_end > vaddr;
> >> +}
> > Perhaps in this case a simple
> >
> > ref_ctr_offset < vma->vm_end - vma->vm_start
> >
> > check without vma_offset_to_vaddr() makes more sense, but I won't insist.
> >
>
> I still don't get this. This seems a comparison between file offset and size
> of the vma. Shouldn't we need to consider pg_off here?

Indeed, I am stupid ;)

Oleg.