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

From: Ravi Bangoria
Date: Mon Mar 19 2018 - 00:26:27 EST


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?

Thanks,
Ravi