Commit-ID: 15c03092a9fbcdd041f58e5f832bf76c21c42e6a
Gitweb: https://git.kernel.org/tip/15c03092a9fbcdd041f58e5f832bf76c21c42e6a
Author: Ravi Bangoria
AuthorDate: Thu, 10 Jan 2019 15:19:36 +0530
Committer: Arnaldo Carvalho de Melo
CommitDate: Thu, 10 Jan 2019 10:42:08 -0300
tools
Commit-ID: 0206131811fa6e4b3ed64b5f1c107e2815dcab42
Gitweb: https://git.kernel.org/tip/0206131811fa6e4b3ed64b5f1c107e2815dcab42
Author: Ravi Bangoria
AuthorDate: Thu, 10 Jan 2019 15:19:35 +0530
Committer: Arnaldo Carvalho de Melo
CommitDate: Thu, 10 Jan 2019 10:34:52 -0300
perf
We use syscall.tbl to generate system call table on powerpc.
unistd.h is no longer required now. Remove it.
Signed-off-by: Ravi Bangoria
---
tools/arch/powerpc/include/uapi/asm/unistd.h | 404 ---
tools/perf/check-headers.sh | 1 -
2 files changed, 405
Commit aff850393200 ("powerpc: add system call table generation support")
changed how systemcall table is generated for powerpc. Incorporate these
changes into perf as well.
Signed-off-by: Ravi Bangoria
---
tools/perf/arch/powerpc/Makefile | 15 +-
.../perf/arch/pow
Hi Arnaldo,
Yes. I'm aware of it. Just that I was busy with something else so couldn't do
it.
Thanks for reminding :). Will post a patch soon.
Ravi
On 1/8/19 10:34 PM, Arnaldo Carvalho de Melo wrote:
> Hi Ravi,
>
> I noticed that in:
>
> commit
Commit-ID: 57ddf09173c1e7d0511ead8924675c7198e56545
Gitweb: https://git.kernel.org/tip/57ddf09173c1e7d0511ead8924675c7198e56545
Author: Ravi Bangoria
AuthorDate: Fri, 16 Nov 2018 09:58:43 +0530
Committer: Arnaldo Carvalho de Melo
CommitDate: Mon, 17 Dec 2018 14:53:30 -0300
perf stat
Commit-ID: 6e269c85dcea8a41faac44dbd5130843080f0576
Gitweb: https://git.kernel.org/tip/6e269c85dcea8a41faac44dbd5130843080f0576
Author: Ravi Bangoria
AuthorDate: Fri, 16 Nov 2018 09:58:43 +0530
Committer: Arnaldo Carvalho de Melo
CommitDate: Thu, 29 Nov 2018 20:42:46 -0300
perf stat
b/scm/linux/kernel/git/torvalds/linux.git
> Branch: master
> Target: jetson-tk1
> Lab:lab-baylibre
> Config: multi_v7_defconfig
> Plan: boot
>
> Breaking commit found:
>
> ----
...@syzkaller.appspotmail.com
Fixes: 1cc33161a83d ("uprobes: Support SDT markers having reference count
(semaphore)")
Signed-off-by: Ravi Bangoria
---
kernel/events/uprobes.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
index 32
...@syzkaller.appspotmail.com
Fixes: 1cc33161a83d ("uprobes: Support SDT markers having reference count
(semaphore)")
Signed-off-by: Ravi Bangoria
---
kernel/events/uprobes.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
index 32
Hi Steve,
Please pull this patch.
Thanks.
On 11/15/18 6:13 PM, Oleg Nesterov wrote:
> On 11/15, Ravi Bangoria wrote:
>>
>> There could be a race between task exit and probe unregister:
>>
>> exit_mm()
>> mmput()
>> __mmput() upro
Hi Steve,
Please pull this patch.
Thanks.
On 11/15/18 6:13 PM, Oleg Nesterov wrote:
> On 11/15, Ravi Bangoria wrote:
>>
>> There could be a race between task exit and probe unregister:
>>
>> exit_mm()
>> mmput()
>> __mmput() upro
On 11/16/18 7:05 PM, Jiri Olsa wrote:
> On Fri, Nov 16, 2018 at 09:58:43AM +0530, Ravi Bangoria wrote:
>> Commit 0aa802a79469 ("perf stat: Get rid of extra clock display
>> function") introduced scale and unit for clock events. Thus,
>> perf_stat__update_shadow_
On 11/16/18 7:05 PM, Jiri Olsa wrote:
> On Fri, Nov 16, 2018 at 09:58:43AM +0530, Ravi Bangoria wrote:
>> Commit 0aa802a79469 ("perf stat: Get rid of extra clock display
>> function") introduced scale and unit for clock events. Thus,
>> perf_stat__update_shadow_
Commit-ID: eb08d006054e7e374592068919e32579988602d4
Gitweb: https://git.kernel.org/tip/eb08d006054e7e374592068919e32579988602d4
Author: Ravi Bangoria
AuthorDate: Thu, 15 Nov 2018 15:25:32 +0530
Committer: Arnaldo Carvalho de Melo
CommitDate: Wed, 21 Nov 2018 22:39:57 -0300
perf stat
Commit-ID: eb08d006054e7e374592068919e32579988602d4
Gitweb: https://git.kernel.org/tip/eb08d006054e7e374592068919e32579988602d4
Author: Ravi Bangoria
AuthorDate: Thu, 15 Nov 2018 15:25:32 +0530
Committer: Arnaldo Carvalho de Melo
CommitDate: Wed, 21 Nov 2018 22:39:57 -0300
perf stat
a802a79469 ("perf stat: Get rid of extra clock display function")
Signed-off-by: Ravi Bangoria
---
tools/perf/util/stat-shadow.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
index f0a8cec55c47..3c22c58b3e9
a802a79469 ("perf stat: Get rid of extra clock display function")
Signed-off-by: Ravi Bangoria
---
tools/perf/util/stat-shadow.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
index f0a8cec55c47..3c22c58b3e9
is results in a sightly different
values of shadow stats.
Reported-by: Anton Blanchard
Fixes: 0aa802a79469 ("perf stat: Get rid of extra clock display function")
Signed-off-by: Ravi Bangoria
---
tools/perf/util/stat-shadow.c | 13 +++--
tools/perf/util/stat.h| 2 +-
2 files c
is results in a sightly different
values of shadow stats.
Reported-by: Anton Blanchard
Fixes: 0aa802a79469 ("perf stat: Get rid of extra clock display function")
Signed-off-by: Ravi Bangoria
---
tools/perf/util/stat-shadow.c | 13 +++--
tools/perf/util/stat.h| 2 +-
2 files c
We already have function to check if a given event is either
SW_CPU_CLOCK or SW_TASK_CLOCK. Utilize it.
Signed-off-by: Ravi Bangoria
---
tools/perf/util/stat-shadow.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat
We already have function to check if a given event is either
SW_CPU_CLOCK or SW_TASK_CLOCK. Utilize it.
Signed-off-by: Ravi Bangoria
---
tools/perf/util/stat-shadow.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat
Hi Oleg,
On 11/14/18 9:36 PM, Oleg Nesterov wrote:
> On 11/14, Ravi Bangoria wrote:
>>
>> syzbot reported a kernel crash with delayed_uprobe_remove():
>> https://lkml.org/lkml/2018/11/1/1244
>>
>> Backtrace mentioned in the link points to a race between proc
Hi Oleg,
On 11/14/18 9:36 PM, Oleg Nesterov wrote:
> On 11/14, Ravi Bangoria wrote:
>>
>> syzbot reported a kernel crash with delayed_uprobe_remove():
>> https://lkml.org/lkml/2018/11/1/1244
>>
>> Backtrace mentioned in the link points to a race between proc
().
Reported-by: syzbot+cb1fb754b771caca0...@syzkaller.appspotmail.com
Signed-off-by: Ravi Bangoria
---
kernel/events/uprobes.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
index 96fb51f3994f..e527c4753d4f 100644
--- a/kernel/events/uprobes.c
+++ b
().
Reported-by: syzbot+cb1fb754b771caca0...@syzkaller.appspotmail.com
Signed-off-by: Ravi Bangoria
---
kernel/events/uprobes.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
index 96fb51f3994f..e527c4753d4f 100644
--- a/kernel/events/uprobes.c
+++ b
447feb3 gaih_inet.constprop.7+0xf43 (/usr/lib64/libc-2.26.so)
7fff94480a13 __GI_getaddrinfo+0x163 (inlined)
13c752d6f _init+0xbfb (/usr/bin/ping)
7fff9439371f generic_start_main.isra.0+0x13f
(/usr/lib64/libc-2.26.so)
7fff9439391b __libc_start_main+0xbb (/usr/lib64/libc-2.26.so)
LGTM.
Tested-by: Ravi Bangoria
447feb3 gaih_inet.constprop.7+0xf43 (/usr/lib64/libc-2.26.so)
7fff94480a13 __GI_getaddrinfo+0x163 (inlined)
13c752d6f _init+0xbfb (/usr/bin/ping)
7fff9439371f generic_start_main.isra.0+0x13f
(/usr/lib64/libc-2.26.so)
7fff9439391b __libc_start_main+0xbb (/usr/lib64/libc-2.26.so)
LGTM.
Tested-by: Ravi Bangoria
Hi Milian,
Seems this has a regression:
With acme/perf/urgent:
$ ./perf record -e cycles:u --call-graph=dwarf ls
$ ./perf script
ls 13585 602082.534478: 28032 cycles:u:
1f1f4 __GI___tunables_init+0xd3dc00a4
(/usr/lib64/ld-2.26.so)
Hi Milian,
Seems this has a regression:
With acme/perf/urgent:
$ ./perf record -e cycles:u --call-graph=dwarf ls
$ ./perf script
ls 13585 602082.534478: 28032 cycles:u:
1f1f4 __GI___tunables_init+0xd3dc00a4
(/usr/lib64/ld-2.26.so)
ort to avoid these tests being executed on
> s390 platform:
>
> [root@s8360046 perf]# ./perf test 22
> [root@s8360046 perf]# ./perf test -v 22
> 22: Watchpoint: Disabled
> [root@s8360046 perf]#
>
> Signed-off-by: Thomas Richter
Acked-by: Ravi Bangoria
Thanks,
Ravi
ort to avoid these tests being executed on
> s390 platform:
>
> [root@s8360046 perf]# ./perf test 22
> [root@s8360046 perf]# ./perf test -v 22
> 22: Watchpoint: Disabled
> [root@s8360046 perf]#
>
> Signed-off-by: Thomas Richter
Acked-by: Ravi Bangoria
Thanks,
Ravi
Hi Thomas,
On 09/28/2018 03:32 PM, Thomas-Mich Richter wrote:
> I can rework the patch to use the is_supported() member function. The
> down side is that the test does not show up in the list of executed tests
> anymore,
> unless some debug output is enabled:
Which should be fine because s390
Hi Thomas,
On 09/28/2018 03:32 PM, Thomas-Mich Richter wrote:
> I can rework the patch to use the is_supported() member function. The
> down side is that the test does not show up in the list of executed tests
> anymore,
> unless some debug output is enabled:
Which should be fine because s390
Hi Thomas,
On 09/28/2018 01:13 PM, Thomas Richter wrote:
> diff --git a/tools/perf/tests/builtin-test.c b/tools/perf/tests/builtin-test.c
> index 54ca7d87236f..e83c15a95c43 100644
> --- a/tools/perf/tests/builtin-test.c
> +++ b/tools/perf/tests/builtin-test.c
> @@ -124,7 +124,7 @@ static struct
Hi Thomas,
On 09/28/2018 01:13 PM, Thomas Richter wrote:
> diff --git a/tools/perf/tests/builtin-test.c b/tools/perf/tests/builtin-test.c
> index 54ca7d87236f..e83c15a95c43 100644
> --- a/tools/perf/tests/builtin-test.c
> +++ b/tools/perf/tests/builtin-test.c
> @@ -124,7 +124,7 @@ static struct
Hi Song,
On 09/25/2018 03:55 AM, Song Liu wrote:
> This patch tries to enable PMU sharing. To make perf event scheduling
> fast, we use special data structures.
>
> An array of "struct perf_event_dup" is added to the perf_event_context,
> to remember all the duplicated events under this ctx. All
Hi Song,
On 09/25/2018 03:55 AM, Song Liu wrote:
> This patch tries to enable PMU sharing. To make perf event scheduling
> fast, we use special data structures.
>
> An array of "struct perf_event_dup" is added to the perf_event_context,
> to remember all the duplicated events under this ctx. All
Commit-ID: 2e85d5979e8d2866db6185de231461b21159ef6f
Gitweb: https://git.kernel.org/tip/2e85d5979e8d2866db6185de231461b21159ef6f
Author: Ravi Bangoria
AuthorDate: Wed, 12 Sep 2018 11:42:29 +0530
Committer: Arnaldo Carvalho de Melo
CommitDate: Tue, 18 Sep 2018 17:21:13 -0300
perf test
Commit-ID: 2e85d5979e8d2866db6185de231461b21159ef6f
Gitweb: https://git.kernel.org/tip/2e85d5979e8d2866db6185de231461b21159ef6f
Author: Ravi Bangoria
AuthorDate: Wed, 12 Sep 2018 11:42:29 +0530
Committer: Arnaldo Carvalho de Melo
CommitDate: Tue, 18 Sep 2018 17:21:13 -0300
perf test
:
22.1: Read Only Watchpoint: Ok
22.2: Write Only Watchpoint : Ok
22.3: Read / Write Watchpoint : Ok
22.4: Modify Watchpoint : Ok
Signed-off-by: Ravi Bangoria
:
22.1: Read Only Watchpoint: Ok
22.2: Write Only Watchpoint : Ok
22.3: Read / Write Watchpoint : Ok
22.4: Modify Watchpoint : Ok
Signed-off-by: Ravi Bangoria
> While testing, I got curious, as a 'perf test' user, why one of the
> tests had the "Skip" result:
>
> [root@seventh ~]# perf test watchpoint
> 22: Watchpoint:
> 22.1: Read Only Watchpoint: Skip
> 22.2: Write Only
> While testing, I got curious, as a 'perf test' user, why one of the
> tests had the "Skip" result:
>
> [root@seventh ~]# perf test watchpoint
> 22: Watchpoint:
> 22.1: Read Only Watchpoint: Skip
> 22.2: Write Only
reveu:
>>>> On Mon, Sep 10, 2018 at 03:28:11PM +0530, Ravi Bangoria wrote:
>>>>> Ex on powerpc:
>>>>> $ sudo ./perf test 22
>>>>> 22: Watchpoint:
>>>>> 22.1: Re
reveu:
>>>> On Mon, Sep 10, 2018 at 03:28:11PM +0530, Ravi Bangoria wrote:
>>>>> Ex on powerpc:
>>>>> $ sudo ./perf test 22
>>>>> 22: Watchpoint:
>>>>> 22.1: Re
:
22.1: Read Only Watchpoint: Ok
22.2: Write Only Watchpoint : Ok
22.3: Read / Write Watchpoint : Ok
22.4: Modify Watchpoint : Ok
Signed-off-by: Ravi Bangoria
:
22.1: Read Only Watchpoint: Ok
22.2: Write Only Watchpoint : Ok
22.3: Read / Write Watchpoint : Ok
22.4: Modify Watchpoint : Ok
Signed-off-by: Ravi Bangoria
ward. Highest 40 bits of perf_event_attr.config is used to stored offset
> of the reference count (semaphore).
>
> Format information in /sys/bus/event_source/devices/uprobe/format/ is
> updated to reflect this new feature.
LGTM
Reviewed-and-tested-by: Ravi Bangoria
>
> Signed-off-
ward. Highest 40 bits of perf_event_attr.config is used to stored offset
> of the reference count (semaphore).
>
> Format information in /sys/bus/event_source/devices/uprobe/format/ is
> updated to reflect this new feature.
LGTM
Reviewed-and-tested-by: Ravi Bangoria
>
> Signed-off-
On 08/21/2018 01:04 PM, Naveen N. Rao wrote:
> Song Liu wrote:
>> I am testing the patch set with the following code:
>>
>> #include
>> #include
>>
>> volatile short semaphore = 0;
>>
>> int for_uprobe(int c)
>> {
>> printf("%d\n", c + 10);
>> return c + 1;
>> }
>>
>> int
On 08/21/2018 01:04 PM, Naveen N. Rao wrote:
> Song Liu wrote:
>> I am testing the patch set with the following code:
>>
>> #include
>> #include
>>
>> volatile short semaphore = 0;
>>
>> int for_uprobe(int c)
>> {
>> printf("%d\n", c + 10);
>> return c + 1;
>> }
>>
>> int
Hi Song,
On 08/21/2018 10:53 AM, Ravi Bangoria wrote:
> Hi Song,
>
>> However, if I start a.out AFTER enabling the uprobe, there is something
>> wrong:
>>
>> root@virt-test:~# ~/a.out
>> 11
>> semaphore 0 <<< this should be non-zero, as
Hi Song,
On 08/21/2018 10:53 AM, Ravi Bangoria wrote:
> Hi Song,
>
>> However, if I start a.out AFTER enabling the uprobe, there is something
>> wrong:
>>
>> root@virt-test:~# ~/a.out
>> 11
>> semaphore 0 <<< this should be non-zero, as
Hi Song,
> However, if I start a.out AFTER enabling the uprobe, there is something wrong:
>
> root@virt-test:~# ~/a.out
> 11
> semaphore 0 <<< this should be non-zero, as the uprobe is already
> enabled
Ok. I'm able to reproduce this. Digging deeper.
Ravi
Hi Song,
> However, if I start a.out AFTER enabling the uprobe, there is something wrong:
>
> root@virt-test:~# ~/a.out
> 11
> semaphore 0 <<< this should be non-zero, as the uprobe is already
> enabled
Ok. I'm able to reproduce this. Digging deeper.
Ravi
Hi Song,
> root@virt-test:~# ~/a.out
> 11
> semaphore 0
> semaphore 0
> semaphore 2 <<< when the uprobe is enabled
Yes, this happens when multiple vmas points to the same file portion.
Can you check /proc/`pgrep a.out`/maps.
Logic is simple. If we are going to patch an instruction,
Hi Song,
> root@virt-test:~# ~/a.out
> 11
> semaphore 0
> semaphore 0
> semaphore 2 <<< when the uprobe is enabled
Yes, this happens when multiple vmas points to the same file portion.
Can you check /proc/`pgrep a.out`/maps.
Logic is simple. If we are going to patch an instruction,
/tick
# ./perf probe sdt_tick:loop2
# ./perf stat -e sdt_tick:loop2 /tmp/tick
hi: 0
hi: 1
hi: 2
^C
Performance counter stats for '/tmp/tick':
3 sdt_tick:loop2
2.561851452 seconds time elapsed
Signed-off-by: Ravi Bangoria
Acked-by: Masami Hiramatsu
s not conflict with
any other existing entries.
Signed-off-by: Ravi Bangoria
Acked-by: Srikar Dronamraju
Reviewed-by: Song Liu
Reviewed-by: Oleg Nesterov
---
kernel/trace/trace_uprobe.c | 37 +++--
1 file changed, 35 insertions(+), 2 deletions(-)
diff --git a/
/tick
# ./perf probe sdt_tick:loop2
# ./perf stat -e sdt_tick:loop2 /tmp/tick
hi: 0
hi: 1
hi: 2
^C
Performance counter stats for '/tmp/tick':
3 sdt_tick:loop2
2.561851452 seconds time elapsed
Signed-off-by: Ravi Bangoria
Acked-by: Masami Hiramatsu
s not conflict with
any other existing entries.
Signed-off-by: Ravi Bangoria
Acked-by: Srikar Dronamraju
Reviewed-by: Song Liu
Reviewed-by: Oleg Nesterov
---
kernel/trace/trace_uprobe.c | 37 +++--
1 file changed, 35 insertions(+), 2 deletions(-)
diff --git a/
We assume to have only one reference counter for one uprobe.
Don't allow user to register multiple uprobes having same
inode+offset but different reference counter.
Signed-off-by: Ravi Bangoria
Acked-by: Srikar Dronamraju
Reviewed-by: Oleg Nesterov
---
kernel/events/uprobes.c | 19
nce counter'
in kernel / perf code.
Signed-off-by: Ravi Bangoria
Reviewed-by: Masami Hiramatsu
[Only trace_uprobe.c]
Reviewed-by: Oleg Nesterov
---
include/linux/uprobes.h | 5 +
kernel/events/uprobes.c | 259 ++--
kernel/trace/trace.c|
We assume to have only one reference counter for one uprobe.
Don't allow user to register multiple uprobes having same
inode+offset but different reference counter.
Signed-off-by: Ravi Bangoria
Acked-by: Srikar Dronamraju
Reviewed-by: Oleg Nesterov
---
kernel/events/uprobes.c | 19
nce counter'
in kernel / perf code.
Signed-off-by: Ravi Bangoria
Reviewed-by: Masami Hiramatsu
[Only trace_uprobe.c]
Reviewed-by: Oleg Nesterov
---
include/linux/uprobes.h | 5 +
kernel/events/uprobes.c | 259 ++--
kernel/trace/trace.c|
ssues/327#issuecomment-200576506
Ravi Bangoria (4):
Uprobes: Support SDT markers having reference count (semaphore)
Uprobes/sdt: Prevent multiple reference counter for same uprobe
trace_uprobe/sdt: Prevent multiple reference counter for same uprobe
perf probe: Support SDT markers having refere
ssues/327#issuecomment-200576506
Ravi Bangoria (4):
Uprobes: Support SDT markers having reference count (semaphore)
Uprobes/sdt: Prevent multiple reference counter for same uprobe
trace_uprobe/sdt: Prevent multiple reference counter for same uprobe
perf probe: Support SDT markers having refere
> +static int delayed_uprobe_install(struct vm_area_struct *vma)
> +{
> + struct list_head *pos, *q;
> + struct delayed_uprobe *du;
> + unsigned long vaddr;
> + int ret = 0, err = 0;
> +
> + mutex_lock(_uprobe_lock);
> + list_for_each_safe(pos, q, _uprobe_list) {
> +
> +static int delayed_uprobe_install(struct vm_area_struct *vma)
> +{
> + struct list_head *pos, *q;
> + struct delayed_uprobe *du;
> + unsigned long vaddr;
> + int ret = 0, err = 0;
> +
> + mutex_lock(_uprobe_lock);
> + list_for_each_safe(pos, q, _uprobe_list) {
> +
Hi Song,
On 08/13/2018 10:42 PM, Song Liu wrote:
> On Mon, Aug 13, 2018 at 6:17 AM, Oleg Nesterov wrote:
>> On 08/13, Ravi Bangoria wrote:
>>>
>>>> But damn, process creation (exec) is trivial. We could add a new
>>>> uprobe_exec()
>>>>
Hi Song,
On 08/13/2018 10:42 PM, Song Liu wrote:
> On Mon, Aug 13, 2018 at 6:17 AM, Oleg Nesterov wrote:
>> On 08/13, Ravi Bangoria wrote:
>>>
>>>> But damn, process creation (exec) is trivial. We could add a new
>>>> uprobe_exec()
>>>>
On 08/13/2018 06:47 PM, Oleg Nesterov wrote:
> On 08/13, Ravi Bangoria wrote:
>>
>>> But damn, process creation (exec) is trivial. We could add a new
>>> uprobe_exec()
>>> hook and avoid delayed_uprobe_install() in uprobe_mmap().
>>
>> I'm so
On 08/13/2018 06:47 PM, Oleg Nesterov wrote:
> On 08/13, Ravi Bangoria wrote:
>>
>>> But damn, process creation (exec) is trivial. We could add a new
>>> uprobe_exec()
>>> hook and avoid delayed_uprobe_install() in uprobe_mmap().
>>
>> I'm so
Hi Oleg,
On 08/13/2018 05:20 PM, Oleg Nesterov wrote:
> On 08/13, Ravi Bangoria wrote:
>>
>> On 08/11/2018 01:27 PM, Song Liu wrote:
>>>> +
>>>> +static void delayed_uprobe_delete(struct delayed_uprobe *du)
>>>> +{
>>>> +
Hi Oleg,
On 08/13/2018 05:20 PM, Oleg Nesterov wrote:
> On 08/13, Ravi Bangoria wrote:
>>
>> On 08/11/2018 01:27 PM, Song Liu wrote:
>>>> +
>>>> +static void delayed_uprobe_delete(struct delayed_uprobe *du)
>>>> +{
>>>> +
Hi Song,
On 08/11/2018 01:42 PM, Song Liu wrote:
> Do we really need this given we already have PATCH 4/6?
> uprobe_regsiter() can be called
> out of trace_uprobe, this patch won't catch all conflicts anyway.
Right but it, at least, catch all conflicts happening via trace_uprobe.
I don't mind
Hi Song,
On 08/11/2018 01:42 PM, Song Liu wrote:
> Do we really need this given we already have PATCH 4/6?
> uprobe_regsiter() can be called
> out of trace_uprobe, this patch won't catch all conflicts anyway.
Right but it, at least, catch all conflicts happening via trace_uprobe.
I don't mind
Hi Song,
On 08/13/2018 11:17 AM, Ravi Bangoria wrote:
>>> +
>>> +static void delayed_uprobe_remove(struct uprobe *uprobe, struct mm_struct
>>> *mm)
>>> +{
>>> + struct list_head *pos, *q;
>>> + struct de
Hi Song,
On 08/13/2018 11:17 AM, Ravi Bangoria wrote:
>>> +
>>> +static void delayed_uprobe_remove(struct uprobe *uprobe, struct mm_struct
>>> *mm)
>>> +{
>>> + struct list_head *pos, *q;
>>> + struct de
Hi Song,
On 08/11/2018 01:27 PM, Song Liu wrote:
>> +
>> +static void delayed_uprobe_delete(struct delayed_uprobe *du)
>> +{
>> + if (!du)
>> + return;
> Do we really need this check?
Not necessary though, but I would still like to keep it for a safety.
>
>> +
Hi Song,
On 08/11/2018 01:27 PM, Song Liu wrote:
>> +
>> +static void delayed_uprobe_delete(struct delayed_uprobe *du)
>> +{
>> + if (!du)
>> + return;
> Do we really need this check?
Not necessary though, but I would still like to keep it for a safety.
>
>> +
sdt_tick:loop2
2.561851452 seconds time elapsed
[1] https://sourceware.org/systemtap/wiki/UserSpaceProbeImplementation
Ravi Bangoria (6):
Uprobes: Simplify uprobe_register() body
Uprobe: Additional argument arch_uprobe to uprobe_write_opcode()
Uprobes: Support SDT markers having reference
sdt_tick:loop2
2.561851452 seconds time elapsed
[1] https://sourceware.org/systemtap/wiki/UserSpaceProbeImplementation
Ravi Bangoria (6):
Uprobes: Simplify uprobe_register() body
Uprobe: Additional argument arch_uprobe to uprobe_write_opcode()
Uprobes: Support SDT markers having reference
Simplify uprobe_register() function body and let __uprobe_register()
handle everything. Also move dependency functions around to fix build
failures.
Signed-off-by: Ravi Bangoria
---
kernel/events/uprobes.c | 69 ++---
1 file changed, 36 insertions
s not conflict with
any other existing entries.
Signed-off-by: Ravi Bangoria
---
kernel/trace/trace_uprobe.c | 37 +++--
1 file changed, 35 insertions(+), 2 deletions(-)
diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c
index bf2be098eb08..be6
Add addition argument 'arch_uprobe' to uprobe_write_opcode().
We need this in later set of patches.
Signed-off-by: Ravi Bangoria
---
arch/arm/probes/uprobes/core.c | 2 +-
arch/mips/kernel/uprobes.c | 2 +-
include/linux/uprobes.h| 2 +-
kernel/events/uprobes.c| 9
/tick
# ./perf probe sdt_tick:loop2
# ./perf stat -e sdt_tick:loop2 /tmp/tick
hi: 0
hi: 1
hi: 2
^C
Performance counter stats for '/tmp/tick':
3 sdt_tick:loop2
2.561851452 seconds time elapsed
Signed-off-by: Ravi Bangoria
Acked-by: Masami Hiramatsu
Simplify uprobe_register() function body and let __uprobe_register()
handle everything. Also move dependency functions around to fix build
failures.
Signed-off-by: Ravi Bangoria
---
kernel/events/uprobes.c | 69 ++---
1 file changed, 36 insertions
s not conflict with
any other existing entries.
Signed-off-by: Ravi Bangoria
---
kernel/trace/trace_uprobe.c | 37 +++--
1 file changed, 35 insertions(+), 2 deletions(-)
diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c
index bf2be098eb08..be6
Add addition argument 'arch_uprobe' to uprobe_write_opcode().
We need this in later set of patches.
Signed-off-by: Ravi Bangoria
---
arch/arm/probes/uprobes/core.c | 2 +-
arch/mips/kernel/uprobes.c | 2 +-
include/linux/uprobes.h| 2 +-
kernel/events/uprobes.c| 9
/tick
# ./perf probe sdt_tick:loop2
# ./perf stat -e sdt_tick:loop2 /tmp/tick
hi: 0
hi: 1
hi: 2
^C
Performance counter stats for '/tmp/tick':
3 sdt_tick:loop2
2.561851452 seconds time elapsed
Signed-off-by: Ravi Bangoria
Acked-by: Masami Hiramatsu
We assume to have only one reference counter for one uprobe.
Don't allow user to register multiple uprobes having same
inode+offset but different reference counter.
Signed-off-by: Ravi Bangoria
---
kernel/events/uprobes.c | 9 +
1 file changed, 9 insertions(+)
diff --git a/kernel
We assume to have only one reference counter for one uprobe.
Don't allow user to register multiple uprobes having same
inode+offset but different reference counter.
Signed-off-by: Ravi Bangoria
---
kernel/events/uprobes.c | 9 +
1 file changed, 9 insertions(+)
diff --git a/kernel
ing it as 'reference
counter' in kernel / perf code.
Signed-off-by: Ravi Bangoria
Reviewed-by: Masami Hiramatsu
[Only trace_uprobe.c]
---
include/linux/uprobes.h | 5 +
kernel/events/uprobes.c | 246 ++--
kernel/trace/trace.c| 2 +-
kernel/tr
ing it as 'reference
counter' in kernel / perf code.
Signed-off-by: Ravi Bangoria
Reviewed-by: Masami Hiramatsu
[Only trace_uprobe.c]
---
include/linux/uprobes.h | 5 +
kernel/events/uprobes.c | 246 ++--
kernel/trace/trace.c| 2 +-
kernel/tr
Hi Oleg,
>> I'm sorry. I didn't get this. How can uprobe go away without calling
>> uprobe_unregister()
>> -> rergister_for_each_vma()
>>-> remove_breakpoint()
>> And remove_breakpoint() will get called
>
> assuming that _unregister() will find the same vma with the probed insn.
Hi Oleg,
>> I'm sorry. I didn't get this. How can uprobe go away without calling
>> uprobe_unregister()
>> -> rergister_for_each_vma()
>>-> remove_breakpoint()
>> And remove_breakpoint() will get called
>
> assuming that _unregister() will find the same vma with the probed insn.
Hi Oleg,
Sorry for bit late reply.
On 08/03/2018 04:54 PM, Oleg Nesterov wrote:
> Hi Ravi,
>
> I was going to give up and ack this series, but it seems I noticed
> a bug...
>
> On 07/31, Ravi Bangoria wrote:
>>
>> +static int delayed_uprobe_add(struct uprobe
Hi Oleg,
Sorry for bit late reply.
On 08/03/2018 04:54 PM, Oleg Nesterov wrote:
> Hi Ravi,
>
> I was going to give up and ack this series, but it seems I noticed
> a bug...
>
> On 07/31, Ravi Bangoria wrote:
>>
>> +static int delayed_uprobe_add(struct uprobe
301 - 400 of 1366 matches
Mail list logo