lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20151102055816.GA434@swordfish>
Date:	Mon, 2 Nov 2015 14:58:16 +0900
From:	Sergey Senozhatsky <sergey.senozhatsky.work@...il.com>
To:	Stephen Rothwell <sfr@...b.auug.org.au>,
	Steven Rostedt <rostedt@...dmis.org>
Cc:	linux-next@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: linux-next: Tree for Nov 2

On (11/02/15 15:40), Stephen Rothwell wrote:
> Hi all,
> 
> Changes since 20151101:
> 


Hi,

unregister_trace_sched_switch/register_trace_prio_sched_switch/etc.
(see the log below. 80-cols unfriendly. sorry.)
expect proto to contain 'bool preempt'

TRACE_EVENT(sched_switch,

        TP_PROTO(bool preempt,
                 struct task_struct *prev,
                 struct task_struct *next),


event_filter_pid_sched_switch_probe_post() and
event_filter_pid_sched_switch_probe_pre() are missing it.
which results in:

kernel/trace/trace_events.c: In function ‘__ftrace_clear_event_pids’:
kernel/trace/trace_events.c:579:32: warning: passing argument 1 of ‘unregister_trace_sched_switch’ from incompatible pointer type [-Wincompatible-pointer-types]
  unregister_trace_sched_switch(event_filter_pid_sched_switch_probe_pre, tr);
                                ^
In file included from include/trace/events/sched.h:8:0,
                 from kernel/trace/trace_events.c:25:
include/linux/tracepoint.h:223:2: note: expected ‘void (*)(void *, bool,  struct task_struct *, struct task_struct *) {aka void (*)(void *, _Bool,  struct task_struct *, struct task_struct *)}’ but argument is of type ‘void (*)(void *, struct task_struct *, struct task_struct *)’
  unregister_trace_##name(void (*probe)(data_proto), void *data) \
  ^
include/linux/tracepoint.h:357:3: note: in expansion of macro ‘__DECLARE_TRACE’
   __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), 1, \
   ^
include/linux/tracepoint.h:491:2: note: in expansion of macro ‘DECLARE_TRACE’
  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
  ^
include/trace/events/sched.h:124:1: note: in expansion of macro ‘TRACE_EVENT’
 TRACE_EVENT(sched_switch,
 ^
kernel/trace/trace_events.c:580:32: warning: passing argument 1 of ‘unregister_trace_sched_switch’ from incompatible pointer type [-Wincompatible-pointer-types]
  unregister_trace_sched_switch(event_filter_pid_sched_switch_probe_post, tr);
                                ^
In file included from include/trace/events/sched.h:8:0,
                 from kernel/trace/trace_events.c:25:
include/linux/tracepoint.h:223:2: note: expected ‘void (*)(void *, bool,  struct task_struct *, struct task_struct *) {aka void (*)(void *, _Bool,  struct task_struct *, struct task_struct *)}’ but argument is of type ‘void (*)(void *, struct task_struct *, struct task_struct *)’
  unregister_trace_##name(void (*probe)(data_proto), void *data) \
  ^
include/linux/tracepoint.h:357:3: note: in expansion of macro ‘__DECLARE_TRACE’
   __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), 1, \
   ^
include/linux/tracepoint.h:491:2: note: in expansion of macro ‘DECLARE_TRACE’
  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
  ^
include/trace/events/sched.h:124:1: note: in expansion of macro ‘TRACE_EVENT’
 TRACE_EVENT(sched_switch,
 ^
kernel/trace/trace_events.c: In function ‘ftrace_event_pid_write’:
kernel/trace/trace_events.c:1723:36: warning: passing argument 1 of ‘register_trace_prio_sched_switch’ from incompatible pointer type [-Wincompatible-pointer-types]
   register_trace_prio_sched_switch(event_filter_pid_sched_switch_probe_pre,
                                    ^
In file included from include/trace/events/sched.h:8:0,
                 from kernel/trace/trace_events.c:25:
include/linux/tracepoint.h:216:2: note: expected ‘void (*)(void *, bool,  struct task_struct *, struct task_struct *) {aka void (*)(void *, _Bool,  struct task_struct *, struct task_struct *)}’ but argument is of type ‘void (*)(void *, struct task_struct *, struct task_struct *)’
  register_trace_prio_##name(void (*probe)(data_proto), void *data,\
  ^
include/linux/tracepoint.h:357:3: note: in expansion of macro ‘__DECLARE_TRACE’
   __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), 1, \
   ^
include/linux/tracepoint.h:491:2: note: in expansion of macro ‘DECLARE_TRACE’
  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
  ^
include/trace/events/sched.h:124:1: note: in expansion of macro ‘TRACE_EVENT’
 TRACE_EVENT(sched_switch,
 ^
kernel/trace/trace_events.c:1725:36: warning: passing argument 1 of ‘register_trace_prio_sched_switch’ from incompatible pointer type [-Wincompatible-pointer-types]
   register_trace_prio_sched_switch(event_filter_pid_sched_switch_probe_post,
                                    ^
In file included from include/trace/events/sched.h:8:0,
                 from kernel/trace/trace_events.c:25:
include/linux/tracepoint.h:216:2: note: expected ‘void (*)(void *, bool,  struct task_struct *, struct task_struct *) {aka void (*)(void *, _Bool,  struct task_struct *, struct task_struct *)}’ but argument is of type ‘void (*)(void *, struct task_struct *, struct task_struct *)’
  register_trace_prio_##name(void (*probe)(data_proto), void *data,\
  ^
include/linux/tracepoint.h:357:3: note: in expansion of macro ‘__DECLARE_TRACE’
   __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), 1, \
   ^
include/linux/tracepoint.h:491:2: note: in expansion of macro ‘DECLARE_TRACE’
  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
  ^
include/trace/events/sched.h:124:1: note: in expansion of macro ‘TRACE_EVENT’
 TRACE_EVENT(sched_switch,




something like this, I guess.

===8<===8<===8<===8<===

Add missing 'bool preempt' argument as required by
sched_switch's trace event proto:

: TRACE_EVENT(sched_switch,
:
:         TP_PROTO(bool preempt,
:                  struct task_struct *prev,
:                  struct task_struct *next),
...

to event_filter_pid_sched_switch_probe_post() and
event_filter_pid_sched_switch_probe_pre() functions.

kernel/trace/trace_events.c: In function ‘__ftrace_clear_event_pids’:
kernel/trace/trace_events.c:579:32: warning: passing argument 1 of
  ‘unregister_trace_sched_switch’ from incompatible pointer type
  [-Wincompatible-pointer-types]
  unregister_trace_sched_switch(event_filter_pid_sched_switch_probe_pre, tr);
                                ^
In file included from include/trace/events/sched.h:8:0,
                 from kernel/trace/trace_events.c:25:
include/linux/tracepoint.h:223:2: note: expected
  ‘void (*)(void *, bool,  struct task_struct *, struct task_struct *)
{aka void (*)(void *, _Bool,  struct task_struct *, struct task_struct *)}’
but argument is of type
  ‘void (*)(void *, struct task_struct *, struct task_struct *)’
  unregister_trace_##name(void (*probe)(data_proto), void *data) \
  ^
include/linux/tracepoint.h:357:3: note: in expansion of macro ‘__DECLARE_TRACE’
   __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), 1, \
   ^
include/linux/tracepoint.h:491:2: note: in expansion of macro ‘DECLARE_TRACE’
  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
  ^
include/trace/events/sched.h:124:1: note: in expansion of macro ‘TRACE_EVENT’
 TRACE_EVENT(sched_switch,
 ^

Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@...il.com>
---
 kernel/trace/trace_events.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index fb0261e..0d86f0c 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -506,7 +506,7 @@ check_ignore_pid(struct trace_pid_list *filtered_pids, struct task_struct *task)
 }
 
 static void
-event_filter_pid_sched_switch_probe_pre(void *data,
+event_filter_pid_sched_switch_probe_pre(void *data, bool preempt,
 		    struct task_struct *prev, struct task_struct *next)
 {
 	struct trace_array *tr = data;
@@ -520,7 +520,7 @@ event_filter_pid_sched_switch_probe_pre(void *data,
 }
 
 static void
-event_filter_pid_sched_switch_probe_post(void *data,
+event_filter_pid_sched_switch_probe_post(void *data, bool preempt,
 		    struct task_struct *prev, struct task_struct *next)
 {
 	struct trace_array *tr = data;
-- 
2.6.2.402.g2635c2b

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ