• Oleg Nesterov's avatar
    uprobes: Teach find_active_uprobe() to clear MMF_HAS_UPROBES · 499a4f3e
    Oleg Nesterov authored
    The wrong MMF_HAS_UPROBES doesn't really hurt, just it triggers
    the "slow" and unnecessary handle_swbp() path if the task hits
    the non-uprobe breakpoint.
    
    So this patch changes find_active_uprobe() to check every valid
    vma and clear MMF_HAS_UPROBES if no uprobes were found. This is
    adds the slow O(n) path, but it is only called in unlikely case
    when the task hits the normal breakpoint first time after
    uprobe_unregister().
    
    Note the "not strictly accurate" comment in mmf_recalc_uprobes().
    We can fix this, we only need to teach vma_has_uprobes() to return
    a bit more more info, but I am not sure this worth the trouble.
    Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
    Acked-by: default avatarSrikar Dronamraju <srikar@linux.vnet.ibm.com>
    499a4f3e
uprobes.c 38.6 KB