On 08/30, Oleg Nesterov wrote:
>
>       - This patch won't fix all problems because uprobe_perf_filter()
>         filters by mm, not by pid. The changelog/patch assumes that it
>         is a "PID filter", but it is not.
>
>         See 
> https://lore.kernel.org/linux-trace-kernel/[email protected]/

Let me provide another example.

spawn.c:

        #include <spawn.h>
        #include <unistd.h>

        int main(int argc, char *argv[])
        {
                int pid;
                sleep(3); // wait for bpftrace to start
                posix_spawn(&pid, argv[1], NULL, NULL, argv+1, NULL);
                for (;;)
                        pause();
        }

Now,

        $ ./spawn /usr/bin/true &
        bpftrace -p $! -e 'uprobe:/usr/lib64/libc.so.6:sigprocmask { 
printf("%d\n", pid); }'
        [2] 212851
        Attaching 1 probe...
        212855
        ^C
        $ ./spawn /xxxxxxxxxxxx &
        bpftrace -p $! -e 'uprobe:/usr/lib64/libc.so.6:_exit { printf("%d\n", 
pid); }'
        [3] 212860
        Attaching 1 probe...
        212865
        ^C

This patch can't help in this case.

Oleg.


Reply via email to