lkml.org 
[lkml]   [2018]   [Mar]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 5/8] trace_uprobe: Support SDT markers having reference count (semaphore)
    On 03/13, Ravi Bangoria wrote:
    >
    > @@ -1053,6 +1056,9 @@ int uprobe_mmap(struct vm_area_struct *vma)
    > struct uprobe *uprobe, *u;
    > struct inode *inode;
    >
    > + if (uprobe_mmap_callback)
    > + uprobe_mmap_callback(vma);
    > +
    > if (no_uprobe_events() || !valid_vma(vma, true))
    > return 0;

    probe_event_enable() does

    uprobe_register();
    /* WINDOW */
    sdt_increment_ref_ctr();

    what if uprobe_mmap() is called in between? The counter(s) in this vma
    will be incremented twice, no?

    > +static struct vm_area_struct *
    > +sdt_find_vma(struct mm_struct *mm, struct trace_uprobe *tu)
    > +{
    > + struct vm_area_struct *tmp;
    > +
    > + for (tmp = mm->mmap; tmp != NULL; tmp = tmp->vm_next)
    > + if (sdt_valid_vma(tu, tmp))
    > + return tmp;
    > +
    > + return NULL;

    I can't understand the logic... Lets ignore sdt_valid_vma() for now.
    The caller has uprobe_map_info, why it can't simply do
    vma = find_vma(uprobe_map_info->vaddr)? and then check sdt_valid_vma().

    Oleg.

    \
     
     \ /
      Last update: 2018-03-15 15:23    [W:2.902 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site