Re: [RFC v8 PATCH 2/5] uprobes: introduce has_uprobes helper

From: Yang Shi
Date: Thu Aug 23 2018 - 12:08:54 EST




On 8/23/18 8:15 AM, Oleg Nesterov wrote:
On 08/22, Srikar Dronamraju wrote:
* Vlastimil Babka <vbabka@xxxxxxx> [2018-08-22 12:55:59]:

On 08/15/2018 08:49 PM, Yang Shi wrote:
We need check if mm or vma has uprobes in the following patch to check
if a vma could be unmapped with holding read mmap_sem.
Confused... why can't we call uprobe_munmap() under read_lock(mmap_sem) ?

I'm not sure if it is safe or not because it is not recommended and not safe to update vma's vm flags with read mmap_sem. uprobe_munmap() may update mm flags (MMF_RECALC_UPROBES). So, it sounds safer to not call it under read mmap_sem.


OK, it can race with find_active_uprobe() but I do not see anything really
wrong, and a false-positive MMF_RECALC_UPROBES is fine.

Thanks for confirming this. If it is ok to have such race, we don't have to have has_uprobes() helper anymore since it can be just called under read mmap_sem without any special handling.

Yang


Again, I think we should simply kill uprobe_munmap(), but this needs another
discussion.

Oleg.