RE: [PATCH 2/2] tracing: send_sigqueue() needstrace_signal_generate() too

From: Seiji Aguchi
Date: Wed Nov 30 2011 - 11:24:45 EST


>-----Original Message-----
>From: linux-kernel-owner@xxxxxxxxxxxxxxx [mailto:linux-kernel-owner@xxxxxxxxxxxxxxx] On Behalf Of Oleg Nesterov
>Sent: Tuesday, November 22, 2011 3:53 PM
>To: Steven Rostedt
>Cc: Frederic Weisbecker; Ingo Molnar; Jiri Olsa; Masami Hiramatsu; Seiji Aguchi; linux-kernel@xxxxxxxxxxxxxxx
>Subject: [PATCH 2/2] tracing: send_sigqueue() needs trace_signal_generate() too
>
>Add trace_signal_generate() into send_sigqueue().
>
>send_sigqueue() is very similar to __send_signal(), just it uses
>the preallocated info. It should do the same wrt tracing.
>

Looks good.
Reviewed-by: Seiji Aguchi <seiji.aguchi@xxxxxxx>

>Reported-by: Seiji Aguchi <saguchi@xxxxxxxxxx>
>Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
>---
> kernel/signal.c | 6 +++++-
> 1 files changed, 5 insertions(+), 1 deletions(-)
>
>diff --git a/kernel/signal.c b/kernel/signal.c
>index 5f130f6..7366f68 100644
>--- a/kernel/signal.c
>+++ b/kernel/signal.c
>@@ -1559,7 +1559,7 @@ int send_sigqueue(struct sigqueue *q, struct task_struct *t, int group)
> int sig = q->info.si_signo;
> struct sigpending *pending;
> unsigned long flags;
>- int ret;
>+ int ret, result;
>
> BUG_ON(!(q->flags & SIGQUEUE_PREALLOC));
>
>@@ -1568,6 +1568,7 @@ int send_sigqueue(struct sigqueue *q, struct task_struct *t, int group)
> goto ret;
>
> ret = 1; /* the signal is ignored */
>+ result = TRACE_SIGNAL_IGNORED;
> if (!prepare_signal(sig, t, 0))
> goto out;
>
>@@ -1579,6 +1580,7 @@ int send_sigqueue(struct sigqueue *q, struct task_struct *t, int group)
> */
> BUG_ON(q->info.si_code != SI_TIMER);
> q->info.si_overrun++;
>+ result = TRACE_SIGNAL_ALREADY_PENDING;
> goto out;
> }
> q->info.si_overrun = 0;
>@@ -1588,7 +1590,9 @@ int send_sigqueue(struct sigqueue *q, struct task_struct *t, int group)
> list_add_tail(&q->list, &pending->list);
> sigaddset(&pending->signal, sig);
> complete_signal(sig, t, group);
>+ result = TRACE_SIGNAL_DELIVERED;
> out:
>+ trace_signal_generate(sig, &q->info, t, group, result);
> unlock_task_sighand(t, &flags);
> ret:
> return ret;
>--
>1.5.5.1
>
>
>--
>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>the body of a message to majordomo@xxxxxxxxxxxxxxx
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/