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  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 22 Dec 2014 12:52:10 -0200
From:	Arnaldo Carvalho de Melo <acme@...hat.com>
To:	Rickard Strandqvist <rickard_strandqvist@...ctrumdigital.se>
Cc:	Jiri Olsa <jolsa@...nel.org>, Namhyung Kim <namhyung@...nel.org>,
	linux-kernel@...r.kernel.org, acme@...nel.org
Subject: Re: [PATCH] tools: lib: traceevent: event-parse.c:  Remove some
 unused functions

Em Sat, Dec 20, 2014 at 01:45:41PM +0100, Rickard Strandqvist escreveu:
> Removes some functions that are not used anywhere:
> pevent_get_any_field_val() pevent_get_common_field_val() pevent_event_fields() pevent_event_common_fields() pevent_list_events() pevent_print_event() pevent_data_event_from_type() pevent_register_trace_clock() pevent_pid_is_registered()
> 
> This was partially found by using a static code analysis program called cppcheck.

Steven, Namhyung, Jiri:

Are you ok with me applying this patch? I'm all for it, dead code better
be removed, but I don't know what are your plans wrt synchronization
with the trace-cmd repo.

- Arnaldo
 
> Signed-off-by: Rickard Strandqvist <rickard_strandqvist@...ctrumdigital.se>
> ---
>  tools/lib/traceevent/event-parse.c |  240 ------------------------------------
>  tools/lib/traceevent/event-parse.h |   16 ---
>  2 files changed, 256 deletions(-)
> 
> diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c
> index cf3a44b..4287771 100644
> --- a/tools/lib/traceevent/event-parse.c
> +++ b/tools/lib/traceevent/event-parse.c
> @@ -206,35 +206,6 @@ static const char *find_cmdline(struct pevent *pevent, int pid)
>  	return "<...>";
>  }
>  
> -/**
> - * pevent_pid_is_registered - return if a pid has a cmdline registered
> - * @pevent: handle for the pevent
> - * @pid: The pid to check if it has a cmdline registered with.
> - *
> - * Returns 1 if the pid has a cmdline mapped to it
> - * 0 otherwise.
> - */
> -int pevent_pid_is_registered(struct pevent *pevent, int pid)
> -{
> -	const struct cmdline *comm;
> -	struct cmdline key;
> -
> -	if (!pid)
> -		return 1;
> -
> -	if (!pevent->cmdlines && cmdline_init(pevent))
> -		return 0;
> -
> -	key.pid = pid;
> -
> -	comm = bsearch(&key, pevent->cmdlines, pevent->cmdline_count,
> -		       sizeof(*pevent->cmdlines), cmdline_cmp);
> -
> -	if (comm)
> -		return 1;
> -	return 0;
> -}
> -
>  /*
>   * If the command lines have been converted to an array, then
>   * we must add this pid. This is much slower than when cmdlines
> @@ -317,11 +288,6 @@ int pevent_register_comm(struct pevent *pevent, const char *comm, int pid)
>  	return 0;
>  }
>  
> -void pevent_register_trace_clock(struct pevent *pevent, char *trace_clock)
> -{
> -	pevent->trace_clock = trace_clock;
> -}
> -
>  struct func_map {
>  	unsigned long long		addr;
>  	char				*func;
> @@ -4572,18 +4538,6 @@ int pevent_data_type(struct pevent *pevent, struct pevent_record *rec)
>  }
>  
>  /**
> - * pevent_data_event_from_type - find the event by a given type
> - * @pevent: a handle to the pevent
> - * @type: the type of the event.
> - *
> - * This returns the event form a given @type;
> - */
> -struct event_format *pevent_data_event_from_type(struct pevent *pevent, int type)
> -{
> -	return pevent_find_event(pevent, type);
> -}
> -
> -/**
>   * pevent_data_pid - parse the PID from raw data
>   * @pevent: a handle to the pevent
>   * @rec: the record to parse
> @@ -4653,75 +4607,6 @@ static bool is_timestamp_in_us(char *trace_clock, bool use_trace_clock)
>  	return false;
>  }
>  
> -void pevent_print_event(struct pevent *pevent, struct trace_seq *s,
> -			struct pevent_record *record, bool use_trace_clock)
> -{
> -	static const char *spaces = "                    "; /* 20 spaces */
> -	struct event_format *event;
> -	unsigned long secs;
> -	unsigned long usecs;
> -	unsigned long nsecs;
> -	const char *comm;
> -	void *data = record->data;
> -	int type;
> -	int pid;
> -	int len;
> -	int p;
> -	bool use_usec_format;
> -
> -	use_usec_format = is_timestamp_in_us(pevent->trace_clock,
> -							use_trace_clock);
> -	if (use_usec_format) {
> -		secs = record->ts / NSECS_PER_SEC;
> -		nsecs = record->ts - secs * NSECS_PER_SEC;
> -	}
> -
> -	if (record->size < 0) {
> -		do_warning("ug! negative record size %d", record->size);
> -		return;
> -	}
> -
> -	type = trace_parse_common_type(pevent, data);
> -
> -	event = pevent_find_event(pevent, type);
> -	if (!event) {
> -		do_warning("ug! no event found for type %d", type);
> -		return;
> -	}
> -
> -	pid = parse_common_pid(pevent, data);
> -	comm = find_cmdline(pevent, pid);
> -
> -	if (pevent->latency_format) {
> -		trace_seq_printf(s, "%8.8s-%-5d %3d",
> -		       comm, pid, record->cpu);
> -		pevent_data_lat_fmt(pevent, s, record);
> -	} else
> -		trace_seq_printf(s, "%16s-%-5d [%03d]", comm, pid, record->cpu);
> -
> -	if (use_usec_format) {
> -		if (pevent->flags & PEVENT_NSEC_OUTPUT) {
> -			usecs = nsecs;
> -			p = 9;
> -		} else {
> -			usecs = (nsecs + 500) / NSECS_PER_USEC;
> -			p = 6;
> -		}
> -
> -		trace_seq_printf(s, " %5lu.%0*lu: %s: ",
> -					secs, p, usecs, event->name);
> -	} else
> -		trace_seq_printf(s, " %12llu: %s: ",
> -					record->ts, event->name);
> -
> -	/* Space out the event names evenly. */
> -	len = strlen(event->name);
> -	if (len < 20)
> -		trace_seq_printf(s, "%.*s", 20 - len, spaces);
> -
> -	pevent_event_info(s, event, record);
> -}
> -
>  static int events_id_cmp(const void *a, const void *b)
>  {
>  	struct event_format * const * ea = a;
> @@ -4770,53 +4655,6 @@ static int events_system_cmp(const void *a, const void *b)
>  	return events_id_cmp(a, b);
>  }
>  
> -struct event_format **pevent_list_events(struct pevent *pevent, enum event_sort_type sort_type)
> -{
> -	struct event_format **events;
> -	int (*sort)(const void *a, const void *b);
> -
> -	events = pevent->sort_events;
> -
> -	if (events && pevent->last_type == sort_type)
> -		return events;
> -
> -	if (!events) {
> -		events = malloc(sizeof(*events) * (pevent->nr_events + 1));
> -		if (!events)
> -			return NULL;
> -
> -		memcpy(events, pevent->events, sizeof(*events) * pevent->nr_events);
> -		events[pevent->nr_events] = NULL;
> -
> -		pevent->sort_events = events;
> -
> -		/* the internal events are sorted by id */
> -		if (sort_type == EVENT_SORT_ID) {
> -			pevent->last_type = sort_type;
> -			return events;
> -		}
> -	}
> -
> -	switch (sort_type) {
> -	case EVENT_SORT_ID:
> -		sort = events_id_cmp;
> -		break;
> -	case EVENT_SORT_NAME:
> -		sort = events_name_cmp;
> -		break;
> -	case EVENT_SORT_SYSTEM:
> -		sort = events_system_cmp;
> -		break;
> -	default:
> -		return events;
> -	}
> -
> -	qsort(events, pevent->nr_events, sizeof(*events), sort);
> -	pevent->last_type = sort_type;
> -
> -	return events;
> -}
> -
>  static struct format_field **
>  get_event_fields(const char *type, const char *name,
>  		 int count, struct format_field *list)
> @@ -4848,34 +4686,6 @@ get_event_fields(const char *type, const char *name,
>  	return fields;
>  }
>  
> -/**
> - * pevent_event_common_fields - return a list of common fields for an event
> - * @event: the event to return the common fields of.
> - *
> - * Returns an allocated array of fields. The last item in the array is NULL.
> - * The array must be freed with free().
> - */
> -struct format_field **pevent_event_common_fields(struct event_format *event)
> -{
> -	return get_event_fields("common", event->name,
> -				event->format.nr_common,
> -				event->format.common_fields);
> -}
> -
> -/**
> - * pevent_event_fields - return a list of event specific fields for an event
> - * @event: the event to return the fields of.
> - *
> - * Returns an allocated array of fields. The last item in the array is NULL.
> - * The array must be freed with free().
> - */
> -struct format_field **pevent_event_fields(struct event_format *event)
> -{
> -	return get_event_fields("event", event->name,
> -				event->format.nr_fields,
> -				event->format.fields);
> -}
> -
>  static void print_fields(struct trace_seq *s, struct print_flag_sym *field)
>  {
>  	trace_seq_printf(s, "{ %s, %s }", field->value, field->str);
> @@ -5467,56 +5277,6 @@ int pevent_get_field_val(struct trace_seq *s, struct event_format *event,
>  }
>  
>  /**
> - * pevent_get_common_field_val - find a common field and return its value
> - * @s: The seq to print to on error
> - * @event: the event that the field is for
> - * @name: The name of the field
> - * @record: The record with the field name.
> - * @val: place to store the value of the field.
> - * @err: print default error if failed.
> - *
> - * Returns 0 on success -1 on field not found.
> - */
> -int pevent_get_common_field_val(struct trace_seq *s, struct event_format *event,
> -				const char *name, struct pevent_record *record,
> -				unsigned long long *val, int err)
> -{
> -	struct format_field *field;
> -
> -	if (!event)
> -		return -1;
> -
> -	field = pevent_find_common_field(event, name);
> -
> -	return get_field_val(s, field, name, record, val, err);
> -}
> -
> -/**
> - * pevent_get_any_field_val - find a any field and return its value
> - * @s: The seq to print to on error
> - * @event: the event that the field is for
> - * @name: The name of the field
> - * @record: The record with the field name.
> - * @val: place to store the value of the field.
> - * @err: print default error if failed.
> - *
> - * Returns 0 on success -1 on field not found.
> - */
> -int pevent_get_any_field_val(struct trace_seq *s, struct event_format *event,
> -			     const char *name, struct pevent_record *record,
> -			     unsigned long long *val, int err)
> -{
> -	struct format_field *field;
> -
> -	if (!event)
> -		return -1;
> -
> -	field = pevent_find_any_field(event, name);
> -
> -	return get_field_val(s, field, name, record, val, err);
> -}
> -
> -/**
>   * pevent_print_num_field - print a field and a format
>   * @s: The seq to print to
>   * @fmt: The printf format to print the field with.
> diff --git a/tools/lib/traceevent/event-parse.h b/tools/lib/traceevent/event-parse.h
> index 7a3873f..8e50f9d 100644
> --- a/tools/lib/traceevent/event-parse.h
> +++ b/tools/lib/traceevent/event-parse.h
> @@ -597,15 +597,10 @@ enum trace_flag_type {
>  };
>  
>  int pevent_register_comm(struct pevent *pevent, const char *comm, int pid);
> -void pevent_register_trace_clock(struct pevent *pevent, char *trace_clock);
>  int pevent_register_function(struct pevent *pevent, char *name,
>  			     unsigned long long addr, char *mod);
>  int pevent_register_print_string(struct pevent *pevent, const char *fmt,
>  				 unsigned long long addr);
> -int pevent_pid_is_registered(struct pevent *pevent, int pid);
> -
> -void pevent_print_event(struct pevent *pevent, struct trace_seq *s,
> -			struct pevent_record *record, bool use_trace_clock);
>  
>  int pevent_parse_header_page(struct pevent *pevent, char *buf, unsigned long size,
>  			     int long_size);
> @@ -625,12 +620,6 @@ void *pevent_get_field_raw(struct trace_seq *s, struct event_format *event,
>  int pevent_get_field_val(struct trace_seq *s, struct event_format *event,
>  			 const char *name, struct pevent_record *record,
>  			 unsigned long long *val, int err);
> -int pevent_get_common_field_val(struct trace_seq *s, struct event_format *event,
> -				const char *name, struct pevent_record *record,
> -				unsigned long long *val, int err);
> -int pevent_get_any_field_val(struct trace_seq *s, struct event_format *event,
> -			     const char *name, struct pevent_record *record,
> -			     unsigned long long *val, int err);
>  
>  int pevent_print_num_field(struct trace_seq *s, const char *fmt,
>  			   struct event_format *event, const char *name,
> @@ -672,7 +661,6 @@ pevent_find_event_by_name(struct pevent *pevent, const char *sys, const char *na
>  void pevent_data_lat_fmt(struct pevent *pevent,
>  			 struct trace_seq *s, struct pevent_record *record);
>  int pevent_data_type(struct pevent *pevent, struct pevent_record *rec);
> -struct event_format *pevent_data_event_from_type(struct pevent *pevent, int type);
>  int pevent_data_pid(struct pevent *pevent, struct pevent_record *rec);
>  const char *pevent_data_comm_from_pid(struct pevent *pevent, int pid);
>  void pevent_event_info(struct trace_seq *s, struct event_format *event,
> @@ -680,10 +668,6 @@ void pevent_event_info(struct trace_seq *s, struct event_format *event,
>  int pevent_strerror(struct pevent *pevent, enum pevent_errno errnum,
>  		    char *buf, size_t buflen);
>  
> -struct event_format **pevent_list_events(struct pevent *pevent, enum event_sort_type);
> -struct format_field **pevent_event_common_fields(struct event_format *event);
> -struct format_field **pevent_event_fields(struct event_format *event);
> -
>  static inline int pevent_get_cpus(struct pevent *pevent)
>  {
>  	return pevent->cpus;
> -- 
> 1.7.10.4
--
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