Console Output

Skipping 158 KB.. Full Log
1:  
1: -	bpf_map__set_value_size(obj->maps.stackmap,
1: -				env.perf_max_stack_depth * sizeof(unsigned long));
1: -	bpf_map__set_max_entries(obj->maps.stackmap, env.stack_storage_size);
1: +  bpf_map__set_value_size(obj->maps.stackmap,
1: +                          env.perf_max_stack_depth * sizeof(unsigned long));
1: +  bpf_map__set_max_entries(obj->maps.stackmap, env.stack_storage_size);
1:  
1: -	err = offcputime_bpf__load(obj);
1: -	if (err) {
1: -		fprintf(stderr, "failed to load BPF programs\n");
1: -		goto cleanup;
1: -	}
1: -	ksyms = ksyms__load();
1: -	if (!ksyms) {
1: -		fprintf(stderr, "failed to load kallsyms\n");
1: -		goto cleanup;
1: -	}
1: -	syms_cache = syms_cache__new(0);
1: -	if (!syms_cache) {
1: -		fprintf(stderr, "failed to create syms_cache\n");
1: -		goto cleanup;
1: -	}
1: -	err = offcputime_bpf__attach(obj);
1: -	if (err) {
1: -		fprintf(stderr, "failed to attach BPF programs\n");
1: -		goto cleanup;
1: -	}
1: +  err = offcputime_bpf__load(obj);
1: +  if (err) {
1: +    fprintf(stderr, "failed to load BPF programs\n");
1: +    goto cleanup;
1: +  }
1: +  ksyms = ksyms__load();
1: +  if (!ksyms) {
1: +    fprintf(stderr, "failed to load kallsyms\n");
1: +    goto cleanup;
1: +  }
1: +  syms_cache = syms_cache__new(0);
1: +  if (!syms_cache) {
1: +    fprintf(stderr, "failed to create syms_cache\n");
1: +    goto cleanup;
1: +  }
1: +  err = offcputime_bpf__attach(obj);
1: +  if (err) {
1: +    fprintf(stderr, "failed to attach BPF programs\n");
1: +    goto cleanup;
1: +  }
1:  
1: -	signal(SIGINT, sig_handler);
1: +  signal(SIGINT, sig_handler);
1:  
1: -	/*
1: -	 * We'll get sleep interrupted when someone presses Ctrl-C (which will
1: -	 * be "handled" with noop by sig_handler).
1: -	 */
1: -	sleep(env.duration);
1: +  /*
1: +   * We'll get sleep interrupted when someone presses Ctrl-C (which will
1: +   * be "handled" with noop by sig_handler).
1: +   */
1: +  sleep(env.duration);
1:  
1: -	print_map(ksyms, syms_cache, obj);
1: +  print_map(ksyms, syms_cache, obj);
1:  
1:  cleanup:
1: -	offcputime_bpf__destroy(obj);
1: -	syms_cache__free(syms_cache);
1: -	ksyms__free(ksyms);
1: -	return err != 0;
1: +  offcputime_bpf__destroy(obj);
1: +  syms_cache__free(syms_cache);
1: +  ksyms__free(ksyms);
1: +  return err != 0;
1:  }
1: diff --git a/libbpf-tools/offcputime.h b/libbpf-tools/offcputime.h
1: index 43ca364..46b13e5 100644
1: --- a/libbpf-tools/offcputime.h
1: +++ b/libbpf-tools/offcputime.h
1: @@ -2,18 +2,18 @@
1:  #ifndef __OFFCPUTIME_H
1:  #define __OFFCPUTIME_H
1:  
1: -#define TASK_COMM_LEN		16
1: +#define TASK_COMM_LEN 16
1:  
1:  struct key_t {
1: -	__u32 pid;
1: -	__u32 tgid;
1: -	int user_stack_id;
1: -	int kern_stack_id;
1: +  __u32 pid;
1: +  __u32 tgid;
1: +  int user_stack_id;
1: +  int kern_stack_id;
1:  };
1:  
1:  struct val_t {
1: -	__u64 delta;
1: -	char comm[TASK_COMM_LEN];
1: +  __u64 delta;
1: +  char comm[TASK_COMM_LEN];
1:  };
1:  
1:  #endif /* __OFFCPUTIME_H */
1: diff --git a/libbpf-tools/trace_helpers.c b/libbpf-tools/trace_helpers.c
1: index 9ea0bb8..1f16b47 100644
1: --- a/libbpf-tools/trace_helpers.c
1: +++ b/libbpf-tools/trace_helpers.c
1: @@ -4,26 +4,28 @@
1:  // Based on ksyms improvements from Andrii Nakryiko, add more helpers.
1:  // 28-Feb-2020   Wenbo Zhang   Created this.
1:  #define _GNU_SOURCE
1: +#include "trace_helpers.h"
1: +#include <bpf/btf.h>
1: +#include <bpf/libbpf.h>
1:  #include <ctype.h>
1: +#include <errno.h>
1: +#include <fcntl.h>
1: +#include <limits.h>
1:  #include <stdio.h>
1:  #include <stdlib.h>
1:  #include <string.h>
1: -#include <unistd.h>
1: -#include <errno.h>
1: -#include <fcntl.h>
1:  #include <sys/resource.h>
1:  #include <time.h>
1: -#include <bpf/btf.h>
1: -#include <bpf/libbpf.h>
1: -#include <limits.h>
1: -#include "trace_helpers.h"
1: +#include <unistd.h>
1:  #include "uprobe_helpers.h"
1:  
1: -#define min(x, y) ({				\
1: -	typeof(x) _min1 = (x);			\
1: -	typeof(y) _min2 = (y);			\
1: -	(void) (&_min1 == &_min2);		\
1: -	_min1 < _min2 ? _min1 : _min2; })
1: +#define min(x, y)                  \
1: +  ({                               \
1: +    typeof(x) _min1 = (x);         \
1: +    typeof(y) _min2 = (y);         \
1: +    (void)(&_min1 == &_min2);      \
1: +    _min1 < _min2 ? _min1 : _min2; \
1: +  })
1:  
1:  #define DISK_NAME_LEN	32
1:  
1: @@ -179,596 +181,556 @@ const struct ksym *ksyms__get_symbol(const struct ksyms *ksyms,
1:  }
1:  
1:  struct load_range {
1: -	uint64_t start;
1: -	uint64_t end;
1: -	uint64_t file_off;
1: +  uint64_t start;
1: +  uint64_t end;
1: +  uint64_t file_off;
1:  };
1:  
1:  enum elf_type {
1: -	EXEC,
1: -	DYN,
1: -	PERF_MAP,
1: -	VDSO,
1: -	UNKNOWN,
1: +  EXEC,
1: +  DYN,
1: +  PERF_MAP,
1: +  VDSO,
1: +  UNKNOWN,
1:  };
1:  
1:  struct dso {
1: -	char *name;
1: -	struct load_range *ranges;
1: -	int range_sz;
1: -	/* Dyn's first text section virtual addr at execution */
1: -	uint64_t sh_addr;
1: -	/* Dyn's first text section file offset */
1: -	uint64_t sh_offset;
1: -	enum elf_type type;
1: -
1: -	struct sym *syms;
1: -	int syms_sz;
1: -	int syms_cap;
1: -
1: -	/*
1: -	 * libbpf's struct btf is actually a pretty efficient
1: -	 * "set of strings" data structure, so we create an
1: -	 * empty one and use it to store symbol names.
1: -	 */
1: -	struct btf *btf;
1: +  char *name;
1: +  struct load_range *ranges;
1: +  int range_sz;
1: +  /* Dyn's first text section virtual addr at execution */
1: +  uint64_t sh_addr;
1: +  /* Dyn's first text section file offset */
1: +  uint64_t sh_offset;
1: +  enum elf_type type;
1: +
1: +  struct sym *syms;
1: +  int syms_sz;
1: +  int syms_cap;
1: +
1: +  /*
1: +   * libbpf's struct btf is actually a pretty efficient
1: +   * "set of strings" data structure, so we create an
1: +   * empty one and use it to store symbol names.
1: +   */
1: +  struct btf *btf;
1:  };
1:  
1:  struct map {
1: -	uint64_t start_addr;
1: -	uint64_t end_addr;
1: -	uint64_t file_off;
1: -	uint64_t dev_major;
1: -	uint64_t dev_minor;
1: -	uint64_t inode;
1: +  uint64_t start_addr;
1: +  uint64_t end_addr;
1: +  uint64_t file_off;
1: +  uint64_t dev_major;
1: +  uint64_t dev_minor;
1: +  uint64_t inode;
1:  };
1:  
1:  struct syms {
1: -	struct dso *dsos;
1: -	int dso_sz;
1: +  struct dso *dsos;
1: +  int dso_sz;
1:  };
1:  
1: -static bool is_file_backed(const char *mapname)
1: -{
1: +static bool is_file_backed(const char *mapname) {
1:  #define STARTS_WITH(mapname, prefix) \
1: -	(!strncmp(mapname, prefix, sizeof(prefix) - 1))
1: -
1: -	return mapname[0] && !(
1: -		STARTS_WITH(mapname, "//anon") ||
1: -		STARTS_WITH(mapname, "/dev/zero") ||
1: -		STARTS_WITH(mapname, "/anon_hugepage") ||
1: -		STARTS_WITH(mapname, "[stack") ||
1: -		STARTS_WITH(mapname, "/SYSV") ||
1: -		STARTS_WITH(mapname, "[heap]") ||
1: -		STARTS_WITH(mapname, "[vsyscall]"));
1: -}
1: -
1: -static bool is_perf_map(const char *path)
1: -{
1: -	return false;
1: +  (!strncmp(mapname, prefix, sizeof(prefix) - 1))
1: +
1: +  return mapname[0] &&
1: +         !(STARTS_WITH(mapname, "//anon") ||
1: +           STARTS_WITH(mapname, "/dev/zero") ||
1: +           STARTS_WITH(mapname, "/anon_hugepage") ||
1: +           STARTS_WITH(mapname, "[stack") || STARTS_WITH(mapname, "/SYSV") ||
1: +           STARTS_WITH(mapname, "[heap]") ||
1: +           STARTS_WITH(mapname, "[vsyscall]"));
1:  }
1:  
1: -static bool is_vdso(const char *path)
1: -{
1: -	return !strcmp(path, "[vdso]");
1: -}
1: -
1: -static int get_elf_type(const char *path)
1: -{
1: -	GElf_Ehdr hdr;
1: -	void *res;
1: -	Elf *e;
1: -	int fd;
1: -
1: -	if (is_vdso(path))
1: -		return -1;
1: -	e = open_elf(path, &fd);
1: -	if (!e)
1: -		return -1;
1: -	res = gelf_getehdr(e, &hdr);
1: -	close_elf(e, fd);
1: -	if (!res)
1: -		return -1;
1: -	return hdr.e_type;
1: +static bool is_perf_map(const char *path) { return false; }
1: +
1: +static bool is_vdso(const char *path) { return !strcmp(path, "[vdso]"); }
1: +
1: +static int get_elf_type(const char *path) {
1: +  GElf_Ehdr hdr;
1: +  void *res;
1: +  Elf *e;
1: +  int fd;
1: +
1: +  if (is_vdso(path))
1: +    return -1;
1: +  e = open_elf(path, &fd);
1: +  if (!e)
1: +    return -1;
1: +  res = gelf_getehdr(e, &hdr);
1: +  close_elf(e, fd);
1: +  if (!res)
1: +    return -1;
1: +  return hdr.e_type;
1:  }
1:  
1:  static int get_elf_text_scn_info(const char *path, uint64_t *addr,
1: -				 uint64_t *offset)
1: -{
1: -	Elf_Scn *section = NULL;
1: -	int fd = -1, err = -1;
1: -	GElf_Shdr header;
1: -	size_t stridx;
1: -	Elf *e = NULL;
1: -	char *name;
1: -
1: -	e = open_elf(path, &fd);
1: -	if (!e)
1: -		goto err_out;
1: -	err = elf_getshdrstrndx(e, &stridx);
1: -	if (err < 0)
1: -		goto err_out;
1: -
1: -	err = -1;
1: -	while ((section = elf_nextscn(e, section)) != 0) {
1: -		if (!gelf_getshdr(section, &header))
1: -			continue;
1: -
1: -		name = elf_strptr(e, stridx, header.sh_name);
1: -		if (name && !strcmp(name, ".text")) {
1: -			*addr = (uint64_t)header.sh_addr;
1: -			*offset = (uint64_t)header.sh_offset;
1: -			err = 0;
1: -			break;
1: -		}
1: -	}
1: +                                 uint64_t *offset) {
1: +  Elf_Scn *section = NULL;
1: +  int fd = -1, err = -1;
1: +  GElf_Shdr header;
1: +  size_t stridx;
1: +  Elf *e = NULL;
1: +  char *name;
1: +
1: +  e = open_elf(path, &fd);
1: +  if (!e)
1: +    goto err_out;
1: +  err = elf_getshdrstrndx(e, &stridx);
1: +  if (err < 0)
1: +    goto err_out;
1: +
1: +  err = -1;
1: +  while ((section = elf_nextscn(e, section)) != 0) {
1: +    if (!gelf_getshdr(section, &header))
1: +      continue;
1: +
1: +    name = elf_strptr(e, stridx, header.sh_name);
1: +    if (name && !strcmp(name, ".text")) {
1: +      *addr = (uint64_t)header.sh_addr;
1: +      *offset = (uint64_t)header.sh_offset;
1: +      err = 0;
1: +      break;
1: +    }
1: +  }
1:  
1:  err_out:
1: -	close_elf(e, fd);
1: -	return err;
1: +  close_elf(e, fd);
1: +  return err;
1:  }
1:  
1: -static int syms__add_dso(struct syms *syms, struct map *map, const char *name)
1: -{
1: -	struct dso *dso = NULL;
1: -	int i, type;
1: -	void *tmp;
1: -
1: -	for (i = 0; i < syms->dso_sz; i++) {
1: -		if (!strcmp(syms->dsos[i].name, name)) {
1: -			dso = &syms->dsos[i];
1: -			break;
1: -		}
1: -	}
1: -
1: -	if (!dso) {
1: -		tmp = realloc(syms->dsos, (syms->dso_sz + 1) *
1: -			      sizeof(*syms->dsos));
1: -		if (!tmp)
1: -			return -1;
1: -		syms->dsos = tmp;
1: -		dso = &syms->dsos[syms->dso_sz++];
1: -		memset(dso, 0, sizeof(*dso));
1: -		dso->name = strdup(name);
1: -		dso->btf = btf__new_empty();
1: -	}
1: -
1: -	tmp = realloc(dso->ranges, (dso->range_sz + 1) * sizeof(*dso->ranges));
1: -	if (!tmp)
1: -		return -1;
1: -	dso->ranges = tmp;
1: -	dso->ranges[dso->range_sz].start = map->start_addr;
1: -	dso->ranges[dso->range_sz].end = map->end_addr;
1: -	dso->ranges[dso->range_sz].file_off = map->file_off;
1: -	dso->range_sz++;
1: -	type = get_elf_type(name);
1: -	if (type == ET_EXEC) {
1: -		dso->type = EXEC;
1: -	} else if (type == ET_DYN) {
1: -		dso->type = DYN;
1: -		if (get_elf_text_scn_info(name, &dso->sh_addr, &dso->sh_offset) < 0)
1: -			return -1;
1: -	} else if (is_perf_map(name)) {
1: -		dso->type = PERF_MAP;
1: -	} else if (is_vdso(name)) {
1: -		dso->type = VDSO;
1: -	} else {
1: -		dso->type = UNKNOWN;
1: -	}
1: -	return 0;
1: +static int syms__add_dso(struct syms *syms, struct map *map, const char *name) {
1: +  struct dso *dso = NULL;
1: +  int i, type;
1: +  void *tmp;
1: +
1: +  for (i = 0; i < syms->dso_sz; i++) {
1: +    if (!strcmp(syms->dsos[i].name, name)) {
1: +      dso = &syms->dsos[i];
1: +      break;
1: +    }
1: +  }
1: +
1: +  if (!dso) {
1: +    tmp = realloc(syms->dsos, (syms->dso_sz + 1) * sizeof(*syms->dsos));
1: +    if (!tmp)
1: +      return -1;
1: +    syms->dsos = tmp;
1: +    dso = &syms->dsos[syms->dso_sz++];
1: +    memset(dso, 0, sizeof(*dso));
1: +    dso->name = strdup(name);
1: +    dso->btf = btf__new_empty();
1: +  }
1: +
1: +  tmp = realloc(dso->ranges, (dso->range_sz + 1) * sizeof(*dso->ranges));
1: +  if (!tmp)
1: +    return -1;
1: +  dso->ranges = tmp;
1: +  dso->ranges[dso->range_sz].start = map->start_addr;
1: +  dso->ranges[dso->range_sz].end = map->end_addr;
1: +  dso->ranges[dso->range_sz].file_off = map->file_off;
1: +  dso->range_sz++;
1: +  type = get_elf_type(name);
1: +  if (type == ET_EXEC) {
1: +    dso->type = EXEC;
1: +  } else if (type == ET_DYN) {
1: +    dso->type = DYN;
1: +    if (get_elf_text_scn_info(name, &dso->sh_addr, &dso->sh_offset) < 0)
1: +      return -1;
1: +  } else if (is_perf_map(name)) {
1: +    dso->type = PERF_MAP;
1: +  } else if (is_vdso(name)) {
1: +    dso->type = VDSO;
1: +  } else {
1: +    dso->type = UNKNOWN;
1: +  }
1: +  return 0;
1:  }
1:  
1:  static struct dso *syms__find_dso(const struct syms *syms, unsigned long addr,
1: -				  uint64_t *offset)
1: -{
1: -	struct load_range *range;
1: -	struct dso *dso;
1: -	int i, j;
1: -
1: -	for (i = 0; i < syms->dso_sz; i++) {
1: -		dso = &syms->dsos[i];
1: -		for (j = 0; j < dso->range_sz; j++) {
1: -			range = &dso->ranges[j];
1: -			if (addr <= range->start || addr >= range->end)
1: -				continue;
1: -			if (dso->type == DYN || dso->type == VDSO) {
1: -				/* Offset within the mmap */
1: -				*offset = addr - range->start + range->file_off;
1: -				/* Offset within the ELF for dyn symbol lookup */
1: -				*offset += dso->sh_addr - dso->sh_offset;
1: -			} else {
1: -				*offset = addr;
1: -			}
1: -
1: -			return dso;
1: -		}
1: -	}
1: -
1: -	return NULL;
1: +                                  uint64_t *offset) {
1: +  struct load_range *range;
1: +  struct dso *dso;
1: +  int i, j;
1: +
1: +  for (i = 0; i < syms->dso_sz; i++) {
1: +    dso = &syms->dsos[i];
1: +    for (j = 0; j < dso->range_sz; j++) {
1: +      range = &dso->ranges[j];
1: +      if (addr <= range->start || addr >= range->end)
1: +        continue;
1: +      if (dso->type == DYN || dso->type == VDSO) {
1: +        /* Offset within the mmap */
1: +        *offset = addr - range->start + range->file_off;
1: +        /* Offset within the ELF for dyn symbol lookup */
1: +        *offset += dso->sh_addr - dso->sh_offset;
1: +      } else {
1: +        *offset = addr;
1: +      }
1: +
1: +      return dso;
1: +    }
1: +  }
1: +
1: +  return NULL;
1:  }
1:  
1: -static int dso__load_sym_table_from_perf_map(struct dso *dso)
1: -{
1: -	return -1;
1: -}
1: +static int dso__load_sym_table_from_perf_map(struct dso *dso) { return -1; }
1:  
1:  static int dso__add_sym(struct dso *dso, const char *name, uint64_t start,
1: -			uint64_t size)
1: -{
1: -	struct sym *sym;
1: -	size_t new_cap;
1: -	void *tmp;
1: -	int off;
1: -
1: -	off = btf__add_str(dso->btf, name);
1: -	if (off < 0)
1: -		return off;
1: -
1: -	if (dso->syms_sz + 1 > dso->syms_cap) {
1: -		new_cap = dso->syms_cap * 4 / 3;
1: -		if (new_cap < 1024)
1: -			new_cap = 1024;
1: -		tmp = realloc(dso->syms, sizeof(*dso->syms) * new_cap);
1: -		if (!tmp)
1: -			return -1;
1: -		dso->syms = tmp;
1: -		dso->syms_cap = new_cap;
1: -	}
1: -
1: -	sym = &dso->syms[dso->syms_sz++];
1: -	/* while constructing, re-use pointer as just a plain offset */
1: -	sym->name = (void*)(unsigned long)off;
1: -	sym->start = start;
1: -	sym->size = size;
1: -
1: -	return 0;
1: +                        uint64_t size) {
1: +  struct sym *sym;
1: +  size_t new_cap;
1: +  void *tmp;
1: +  int off;
1: +
1: +  off = btf__add_str(dso->btf, name);
1: +  if (off < 0)
1: +    return off;
1: +
1: +  if (dso->syms_sz + 1 > dso->syms_cap) {
1: +    new_cap = dso->syms_cap * 4 / 3;
1: +    if (new_cap < 1024)
1: +      new_cap = 1024;
1: +    tmp = realloc(dso->syms, sizeof(*dso->syms) * new_cap);
1: +    if (!tmp)
1: +      return -1;
1: +    dso->syms = tmp;
1: +    dso->syms_cap = new_cap;
1: +  }
1: +
1: +  sym = &dso->syms[dso->syms_sz++];
1: +  /* while constructing, re-use pointer as just a plain offset */
1: +  sym->name = (void *)(unsigned long)off;
1: +  sym->start = start;
1: +  sym->size = size;
1: +
1: +  return 0;
1:  }
1:  
1: -static int sym_cmp(const void *p1, const void *p2)
1: -{
1: -	const struct sym *s1 = p1, *s2 = p2;
1: +static int sym_cmp(const void *p1, const void *p2) {
1: +  const struct sym *s1 = p1, *s2 = p2;
1:  
1: -	if (s1->start == s2->start)
1: -		return strcmp(s1->name, s2->name);
1: -	return s1->start < s2->start ? -1 : 1;
1: +  if (s1->start == s2->start)
1: +    return strcmp(s1->name, s2->name);
1: +  return s1->start < s2->start ? -1 : 1;
1:  }
1:  
1:  static int dso__add_syms(struct dso *dso, Elf *e, Elf_Scn *section,
1: -			 size_t stridx, size_t symsize)
1: -{
1: -	Elf_Data *data = NULL;
1: +                         size_t stridx, size_t symsize) {
1: +  Elf_Data *data = NULL;
1:  
1: -	while ((data = elf_getdata(section, data)) != 0) {
1: -		size_t i, symcount = data->d_size / symsize;
1: +  while ((data = elf_getdata(section, data)) != 0) {
1: +    size_t i, symcount = data->d_size / symsize;
1:  
1: -		if (data->d_size % symsize)
1: -			return -1;
1: +    if (data->d_size % symsize)
1: +      return -1;
1:  
1: -		for (i = 0; i < symcount; ++i) {
1: -			const char *name;
1: -			GElf_Sym sym;
1: +    for (i = 0; i < symcount; ++i) {
1: +      const char *name;
1: +      GElf_Sym sym;
1:  
1: -			if (!gelf_getsym(data, (int)i, &sym))
1: -				continue;
1: -			if (!(name = elf_strptr(e, stridx, sym.st_name)))
1: -				continue;
1: -			if (name[0] == '\0')
1: -				continue;
1: +      if (!gelf_getsym(data, (int)i, &sym))
1: +        continue;
1: +      if (!(name = elf_strptr(e, stridx, sym.st_name)))
1: +        continue;
1: +      if (name[0] == '\0')
1: +        continue;
1:  
1: -			if (sym.st_value == 0)
1: -				continue;
1: +      if (sym.st_value == 0)
1: +        continue;
1:  
1: -			if (dso__add_sym(dso, name, sym.st_value, sym.st_size))
1: -				goto err_out;
1: -		}
1: -	}
1: +      if (dso__add_sym(dso, name, sym.st_value, sym.st_size))
1: +        goto err_out;
1: +    }
1: +  }
1:  
1: -	return 0;
1: +  return 0;
1:  
1:  err_out:
1: -	return -1;
1: +  return -1;
1:  }
1:  
1: -static void dso__free_fields(struct dso *dso)
1: -{
1: -	if (!dso)
1: -		return;
1: +static void dso__free_fields(struct dso *dso) {
1: +  if (!dso)
1: +    return;
1:  
1: -	free(dso->name);
1: -	free(dso->ranges);
1: -	free(dso->syms);
1: -	btf__free(dso->btf);
1: +  free(dso->name);
1: +  free(dso->ranges);
1: +  free(dso->syms);
1: +  btf__free(dso->btf);
1:  }
1:  
1: -static int dso__load_sym_table_from_elf(struct dso *dso, int fd)
1: -{
1: -	Elf_Scn *section = NULL;
1: -	Elf *e;
1: -	int i;
1: +static int dso__load_sym_table_from_elf(struct dso *dso, int fd) {
1: +  Elf_Scn *section = NULL;
1: +  Elf *e;
1: +  int i;
1:  
1: -	e = fd > 0 ? open_elf_by_fd(fd) : open_elf(dso->name, &fd);
1: -	if (!e)
1: -		return -1;
1: +  e = fd > 0 ? open_elf_by_fd(fd) : open_elf(dso->name, &fd);
1: +  if (!e)
1: +    return -1;
1:  
1: -	while ((section = elf_nextscn(e, section)) != 0) {
1: -		GElf_Shdr header;
1: +  while ((section = elf_nextscn(e, section)) != 0) {
1: +    GElf_Shdr header;
1:  
1: -		if (!gelf_getshdr(section, &header))
1: -			continue;
1: +    if (!gelf_getshdr(section, &header))
1: +      continue;
1:  
1: -		if (header.sh_type != SHT_SYMTAB &&
1: -		    header.sh_type != SHT_DYNSYM)
1: -			continue;
1: +    if (header.sh_type != SHT_SYMTAB && header.sh_type != SHT_DYNSYM)
1: +      continue;
1:  
1: -		if (dso__add_syms(dso, e, section, header.sh_link,
1: -				  header.sh_entsize))
1: -			goto err_out;
1: -	}
1: +    if (dso__add_syms(dso, e, section, header.sh_link, header.sh_entsize))
1: +      goto err_out;
1: +  }
1:  
1: -	/* now when strings are finalized, adjust pointers properly */
1: -	for (i = 0; i < dso->syms_sz; i++)
1: -		dso->syms[i].name =
1: -			btf__name_by_offset(dso->btf,
1: -					    (unsigned long)dso->syms[i].name);
1: +  /* now when strings are finalized, adjust pointers properly */
1: +  for (i = 0; i < dso->syms_sz; i++)
1: +    dso->syms[i].name =
1: +        btf__name_by_offset(dso->btf, (unsigned long)dso->syms[i].name);
1:  
1: -	qsort(dso->syms, dso->syms_sz, sizeof(*dso->syms), sym_cmp);
1: +  qsort(dso->syms, dso->syms_sz, sizeof(*dso->syms), sym_cmp);
1:  
1: -	close_elf(e, fd);
1: -	return 0;
1: +  close_elf(e, fd);
1: +  return 0;
1:  
1:  err_out:
1: -	dso__free_fields(dso);
1: -	close_elf(e, fd);
1: -	return -1;
1: +  dso__free_fields(dso);
1: +  close_elf(e, fd);
1: +  return -1;
1:  }
1:  
1: -static int create_tmp_vdso_image(struct dso *dso)
1: -{
1: -	uint64_t start_addr, end_addr;
1: -	long pid = getpid();
1: -	char buf[PATH_MAX];
1: -	void *image = NULL;
1: -	char tmpfile[128];
1: -	int ret, fd = -1;
1: -	uint64_t sz;
1: -	char *name;
1: -	FILE *f;
1: -
1: -	snprintf(tmpfile, sizeof(tmpfile), "/proc/%ld/maps", pid);
1: -	f = fopen(tmpfile, "r");
1: -	if (!f)
1: -		return -1;
1: -
1: -	while (true) {
1: -		ret = fscanf(f, "%lx-%lx %*s %*x %*x:%*x %*u%[^\n]",
1: -			     &start_addr, &end_addr, buf);
1: -		if (ret == EOF && feof(f))
1: -			break;
1: -		if (ret != 3)
1: -			goto err_out;
1: -
1: -		name = buf;
1: -		while (isspace(*name))
1: -			name++;
1: -		if (!is_file_backed(name))
1: -			continue;
1: -		if (is_vdso(name))
1: -			break;
1: -	}
1: -
1: -	sz = end_addr - start_addr;
1: -	image = malloc(sz);
1: -	if (!image)
1: -		goto err_out;
1: -	memcpy(image, (void *)start_addr, sz);
1: -
1: -	snprintf(tmpfile, sizeof(tmpfile),
1: -		 "/tmp/libbpf_%ld_vdso_image_XXXXXX", pid);
1: -	fd = mkostemp(tmpfile, O_CLOEXEC);
1: -	if (fd < 0) {
1: -		fprintf(stderr, "failed to create temp file: %s\n",
1: -			strerror(errno));
1: -		goto err_out;
1: -	}
1: -	/* Unlink the file to avoid leaking */
1: -	if (unlink(tmpfile) == -1)
1: -		fprintf(stderr, "failed to unlink %s: %s\n", tmpfile,
1: -			strerror(errno));
1: -	if (write(fd, image, sz) == -1) {
1: -		fprintf(stderr, "failed to write to vDSO image: %s\n",
1: -			strerror(errno));
1: -		close(fd);
1: -		fd = -1;
1: -		goto err_out;
1: -	}
1: +static int create_tmp_vdso_image(struct dso *dso) {
1: +  uint64_t start_addr, end_addr;
1: +  long pid = getpid();
1: +  char buf[PATH_MAX];
1: +  void *image = NULL;
1: +  char tmpfile[128];
1: +  int ret, fd = -1;
1: +  uint64_t sz;
1: +  char *name;
1: +  FILE *f;
1: +
1: +  snprintf(tmpfile, sizeof(tmpfile), "/proc/%ld/maps", pid);
1: +  f = fopen(tmpfile, "r");
1: +  if (!f)
1: +    return -1;
1: +
1: +  while (true) {
1: +    ret = fscanf(f, "%lx-%lx %*s %*x %*x:%*x %*u%[^\n]", &start_addr, &end_addr,
1: +                 buf);
1: +    if (ret == EOF && feof(f))
1: +      break;
1: +    if (ret != 3)
1: +      goto err_out;
1: +
1: +    name = buf;
1: +    while (isspace(*name))
1: +      name++;
1: +    if (!is_file_backed(name))
1: +      continue;
1: +    if (is_vdso(name))
1: +      break;
1: +  }
1: +
1: +  sz = end_addr - start_addr;
1: +  image = malloc(sz);
1: +  if (!image)
1: +    goto err_out;
1: +  memcpy(image, (void *)start_addr, sz);
1: +
1: +  snprintf(tmpfile, sizeof(tmpfile), "/tmp/libbpf_%ld_vdso_image_XXXXXX", pid);
1: +  fd = mkostemp(tmpfile, O_CLOEXEC);
1: +  if (fd < 0) {
1: +    fprintf(stderr, "failed to create temp file: %s\n", strerror(errno));
1: +    goto err_out;
1: +  }
1: +  /* Unlink the file to avoid leaking */
1: +  if (unlink(tmpfile) == -1)
1: +    fprintf(stderr, "failed to unlink %s: %s\n", tmpfile, strerror(errno));
1: +  if (write(fd, image, sz) == -1) {
1: +    fprintf(stderr, "failed to write to vDSO image: %s\n", strerror(errno));
1: +    close(fd);
1: +    fd = -1;
1: +    goto err_out;
1: +  }
1:  
1:  err_out:
1: -	fclose(f);
1: -	free(image);
1: -	return fd;
1: +  fclose(f);
1: +  free(image);
1: +  return fd;
1:  }
1:  
1: -static int dso__load_sym_table_from_vdso_image(struct dso *dso)
1: -{
1: -	int fd = create_tmp_vdso_image(dso);
1: +static int dso__load_sym_table_from_vdso_image(struct dso *dso) {
1: +  int fd = create_tmp_vdso_image(dso);
1:  
1: -	if (fd < 0)
1: -		return -1;
1: -	return dso__load_sym_table_from_elf(dso, fd);
1: +  if (fd < 0)
1: +    return -1;
1: +  return dso__load_sym_table_from_elf(dso, fd);
1:  }
1:  
1: -static int dso__load_sym_table(struct dso *dso)
1: -{
1: -	if (dso->type == UNKNOWN)
1: -		return -1;
1: -	if (dso->type == PERF_MAP)
1: -		return dso__load_sym_table_from_perf_map(dso);
1: -	if (dso->type == EXEC || dso->type == DYN)
1: -		return dso__load_sym_table_from_elf(dso, 0);
1: -	if (dso->type == VDSO)
1: -		return dso__load_sym_table_from_vdso_image(dso);
1: -	return -1;
1: +static int dso__load_sym_table(struct dso *dso) {
1: +  if (dso->type == UNKNOWN)
1: +    return -1;
1: +  if (dso->type == PERF_MAP)
1: +    return dso__load_sym_table_from_perf_map(dso);
1: +  if (dso->type == EXEC || dso->type == DYN)
1: +    return dso__load_sym_table_from_elf(dso, 0);
1: +  if (dso->type == VDSO)
1: +    return dso__load_sym_table_from_vdso_image(dso);
1: +  return -1;
1:  }
1:  
1: -static struct sym *dso__find_sym(struct dso *dso, uint64_t offset)
1: -{
1: -	unsigned long sym_addr;
1: -	int start, end, mid;
1: +static struct sym *dso__find_sym(struct dso *dso, uint64_t offset) {
1: +  unsigned long sym_addr;
1: +  int start, end, mid;
1:  
1: -	if (!dso->syms && dso__load_sym_table(dso))
1: -		return NULL;
1: +  if (!dso->syms && dso__load_sym_table(dso))
1: +    return NULL;
1:  
1: -	start = 0;
1: -	end = dso->syms_sz - 1;
1: +  start = 0;
1: +  end = dso->syms_sz - 1;
1:  
1: -	/* find largest sym_addr <= addr using binary search */
1: -	while (start < end) {
1: -		mid = start + (end - start + 1) / 2;
1: -		sym_addr = dso->syms[mid].start;
1: +  /* find largest sym_addr <= addr using binary search */
1: +  while (start < end) {
1: +    mid = start + (end - start + 1) / 2;
1: +    sym_addr = dso->syms[mid].start;
1:  
1: -		if (sym_addr <= offset)
1: -			start = mid;
1: -		else
1: -			end = mid - 1;
1: -	}
1: +    if (sym_addr <= offset)
1: +      start = mid;
1: +    else
1: +      end = mid - 1;
1: +  }
1:  
1: -	if (start == end && dso->syms[start].start <= offset)
1: -		return &dso->syms[start];
1: -	return NULL;
1: +  if (start == end && dso->syms[start].start <= offset)
1: +    return &dso->syms[start];
1: +  return NULL;
1:  }
1:  
1: -struct syms *syms__load_file(const char *fname)
1: -{
1: -	char buf[PATH_MAX], perm[5];
1: -	struct syms *syms;
1: -	struct map map;
1: -	char *name;
1: -	FILE *f;
1: -	int ret;
1: -
1: -	f = fopen(fname, "r");
1: -	if (!f)
1: -		return NULL;
1: -
1: -	syms = calloc(1, sizeof(*syms));
1: -	if (!syms)
1: -		goto err_out;
1: -
1: -	while (true) {
1: -		ret = fscanf(f, "%lx-%lx %4s %lx %lx:%lx %lu%[^\n]",
1: -			     &map.start_addr, &map.end_addr, perm,
1: -			     &map.file_off, &map.dev_major,
1: -			     &map.dev_minor, &map.inode, buf);
1: -		if (ret == EOF && feof(f))
1: -			break;
1: -		if (ret != 8)	/* perf-<PID>.map */
1: -			goto err_out;
1: -
1: -		if (perm[2] != 'x')
1: -			continue;
1: -
1: -		name = buf;
1: -		while (isspace(*name))
1: -			name++;
1: -		if (!is_file_backed(name))
1: -			continue;
1: -
1: -		if (syms__add_dso(syms, &map, name))
1: -			goto err_out;
1: -	}
1: -
1: -	fclose(f);
1: -	return syms;
1: +struct syms *syms__load_file(const char *fname) {
1: +  char buf[PATH_MAX], perm[5];
1: +  struct syms *syms;
1: +  struct map map;
1: +  char *name;
1: +  FILE *f;
1: +  int ret;
1: +
1: +  f = fopen(fname, "r");
1: +  if (!f)
1: +    return NULL;
1: +
1: +  syms = calloc(1, sizeof(*syms));
1: +  if (!syms)
1: +    goto err_out;
1: +
1: +  while (true) {
1: +    ret = fscanf(f, "%lx-%lx %4s %lx %lx:%lx %lu%[^\n]", &map.start_addr,
1: +                 &map.end_addr, perm, &map.file_off, &map.dev_major,
1: +                 &map.dev_minor, &map.inode, buf);
1: +    if (ret == EOF && feof(f))
1: +      break;
1: +    if (ret != 8) /* perf-<PID>.map */
1: +      goto err_out;
1: +
1: +    if (perm[2] != 'x')
1: +      continue;
1: +
1: +    name = buf;
1: +    while (isspace(*name))
1: +      name++;
1: +    if (!is_file_backed(name))
1: +      continue;
1: +
1: +    if (syms__add_dso(syms, &map, name))
1: +      goto err_out;
1: +  }
1: +
1: +  fclose(f);
1: +  return syms;
1:  
1:  err_out:
1: -	syms__free(syms);
1: -	fclose(f);
1: -	return NULL;
1: +  syms__free(syms);
1: +  fclose(f);
1: +  return NULL;
1:  }
1:  
1: -struct syms *syms__load_pid(pid_t tgid)
1: -{
1: -	char fname[128];
1: +struct syms *syms__load_pid(pid_t tgid) {
1: +  char fname[128];
1:  
1: -	snprintf(fname, sizeof(fname), "/proc/%ld/maps", (long)tgid);
1: -	return syms__load_file(fname);
1: +  snprintf(fname, sizeof(fname), "/proc/%ld/maps", (long)tgid);
1: +  return syms__load_file(fname);
1:  }
1:  
1: -void syms__free(struct syms *syms)
1: -{
1: -	int i;
1: +void syms__free(struct syms *syms) {
1: +  int i;
1:  
1: -	if (!syms)
1: -		return;
1: +  if (!syms)
1: +    return;
1:  
1: -	for (i = 0; i < syms->dso_sz; i++)
1: -		dso__free_fields(&syms->dsos[i]);
1: -	free(syms->dsos);
1: -	free(syms);
1: +  for (i = 0; i < syms->dso_sz; i++)
1: +    dso__free_fields(&syms->dsos[i]);
1: +  free(syms->dsos);
1: +  free(syms);
1:  }
1:  
1: -const struct sym *syms__map_addr(const struct syms *syms, unsigned long addr)
1: -{
1: -	struct dso *dso;
1: -	uint64_t offset;
1: +const struct sym *syms__map_addr(const struct syms *syms, unsigned long addr) {
1: +  struct dso *dso;
1: +  uint64_t offset;
1:  
1: -	dso = syms__find_dso(syms, addr, &offset);
1: -	if (!dso)
1: -		return NULL;
1: -	return dso__find_sym(dso, offset);
1: +  dso = syms__find_dso(syms, addr, &offset);
1: +  if (!dso)
1: +    return NULL;
1: +  return dso__find_sym(dso, offset);
1:  }
1:  
1:  struct syms_cache {
1: -	struct {
1: -		struct syms *syms;
1: -		int tgid;
1: -	} *data;
1: -	int nr;
1: +  struct {
1: +    struct syms *syms;
1: +    int tgid;
1: +  } * data;
1: +  int nr;
1:  };
1:  
1: -struct syms_cache *syms_cache__new(int nr)
1: -{
1: -	struct syms_cache *syms_cache;
1: +struct syms_cache *syms_cache__new(int nr) {
1: +  struct syms_cache *syms_cache;
1:  
1: -	syms_cache = calloc(1, sizeof(*syms_cache));
1: -	if (!syms_cache)
1: -		return NULL;
1: -	if (nr > 0)
1: -		syms_cache->data = calloc(nr, sizeof(*syms_cache->data));
1: -	return syms_cache;
1: +  syms_cache = calloc(1, sizeof(*syms_cache));
1: +  if (!syms_cache)
1: +    return NULL;
1: +  if (nr > 0)
1: +    syms_cache->data = calloc(nr, sizeof(*syms_cache->data));
1: +  return syms_cache;
1:  }
1:  
1: -void syms_cache__free(struct syms_cache *syms_cache)
1: -{
1: -	int i;
1: +void syms_cache__free(struct syms_cache *syms_cache) {
1: +  int i;
1:  
1: -	if (!syms_cache)
1: -		return;
1: +  if (!syms_cache)
1: +    return;
1:  
1: -	for (i = 0; i < syms_cache->nr; i++)
1: -		syms__free(syms_cache->data[i].syms);
1: -	free(syms_cache->data);
1: -	free(syms_cache);
1: +  for (i = 0; i < syms_cache->nr; i++)
1: +    syms__free(syms_cache->data[i].syms);
1: +  free(syms_cache->data);
1: +  free(syms_cache);
1:  }
1:  
1: -struct syms *syms_cache__get_syms(struct syms_cache *syms_cache, int tgid)
1: -{
1: -	void *tmp;
1: -	int i;
1: -
1: -	for (i = 0; i < syms_cache->nr; i++) {
1: -		if (syms_cache->data[i].tgid == tgid)
1: -			return syms_cache->data[i].syms;
1: -	}
1: -
1: -	tmp = realloc(syms_cache->data, (syms_cache->nr + 1) *
1: -		      sizeof(*syms_cache->data));
1: -	if (!tmp)
1: -		return NULL;
1: -	syms_cache->data = tmp;
1: -	syms_cache->data[syms_cache->nr].syms = syms__load_pid(tgid);
1: -	syms_cache->data[syms_cache->nr].tgid = tgid;
1: -	return syms_cache->data[syms_cache->nr++].syms;
1: +struct syms *syms_cache__get_syms(struct syms_cache *syms_cache, int tgid) {
1: +  void *tmp;
1: +  int i;
1: +
1: +  for (i = 0; i < syms_cache->nr; i++) {
1: +    if (syms_cache->data[i].tgid == tgid)
1: +      return syms_cache->data[i].syms;
1: +  }
1: +
1: +  tmp = realloc(syms_cache->data,
1: +                (syms_cache->nr + 1) * sizeof(*syms_cache->data));
1: +  if (!tmp)
1: +    return NULL;
1: +  syms_cache->data = tmp;
1: +  syms_cache->data[syms_cache->nr].syms = syms__load_pid(tgid);
1: +  syms_cache->data[syms_cache->nr].tgid = tgid;
1: +  return syms_cache->data[syms_cache->nr++].syms;
1:  }
1:  
1:  struct partitions {
1: @@ -929,32 +891,31 @@ void print_log2_hist(unsigned int *vals, int vals_size, const char *val_type)
1:  }
1:  
1:  void print_linear_hist(unsigned int *vals, int vals_size, unsigned int base,
1: -		       unsigned int step, const char *val_type)
1: -{
1: -	int i, stars_max = 40, idx_min = -1, idx_max = -1;
1: -	unsigned int val, val_max = 0;
1: -
1: -	for (i = 0; i < vals_size; i++) {
1: -		val = vals[i];
1: -		if (val > 0) {
1: -			idx_max = i;
1: -			if (idx_min < 0)
1: -				idx_min = i;
1: -		}
1: -		if (val > val_max)
1: -			val_max = val;
1: -	}
1: -
1: -	if (idx_max < 0)
1: -		return;
1: -
1: -	printf("     %-13s : count     distribution\n", val_type);
1: -	for (i = idx_min; i <= idx_max; i++) {
1: -		val = vals[i];
1: -		printf("        %-10d : %-8d |", base + i * step, val);
1: -		print_stars(val, val_max, stars_max);
1: -		printf("|\n");
1: -	}
1: +                       unsigned int step, const char *val_type) {
1: +  int i, stars_max = 40, idx_min = -1, idx_max = -1;
1: +  unsigned int val, val_max = 0;
1: +
1: +  for (i = 0; i < vals_size; i++) {
1: +    val = vals[i];
1: +    if (val > 0) {
1: +      idx_max = i;
1: +      if (idx_min < 0)
1: +        idx_min = i;
1: +    }
1: +    if (val > val_max)
1: +      val_max = val;
1: +  }
1: +
1: +  if (idx_max < 0)
1: +    return;
1: +
1: +  printf("     %-13s : count     distribution\n", val_type);
1: +  for (i = idx_min; i <= idx_max; i++) {
1: +    val = vals[i];
1: +    printf("        %-10d : %-8d |", base + i * step, val);
1: +    print_stars(val, val_max, stars_max);
1: +    printf("|\n");
1: +  }
1:  }
1:  
1:  unsigned long long get_ktime_ns(void)
1: diff --git a/libbpf-tools/trace_helpers.h b/libbpf-tools/trace_helpers.h
1: index 90d07fe..98fdbeb 100644
1: --- a/libbpf-tools/trace_helpers.h
1: +++ b/libbpf-tools/trace_helpers.h
1: @@ -21,9 +21,9 @@ const struct ksym *ksyms__get_symbol(const struct ksyms *ksyms,
1:  				     const char *name);
1:  
1:  struct sym {
1: -	const char *name;
1: -	unsigned long start;
1: -	unsigned long size;
1: +  const char *name;
1: +  unsigned long start;
1: +  unsigned long size;
1:  };
1:  
1:  struct syms;
1: diff --git a/libbpf-tools/uprobe_helpers.c b/libbpf-tools/uprobe_helpers.c
1: index 4a627a9..ec7ccd1 100644
1: --- a/libbpf-tools/uprobe_helpers.c
1: +++ b/libbpf-tools/uprobe_helpers.c
1: @@ -159,63 +159,60 @@ int resolve_binary_path(const char *binary, pid_t pid, char *path, size_t path_s
1:   * Opens an elf at `path` of kind ELF_K_ELF.  Returns NULL on failure.  On
1:   * success, close with close_elf(e, fd_close).
1:   */
1: -Elf *open_elf(const char *path, int *fd_close)
1: -{
1: -	int fd;
1: -	Elf *e;
1: +Elf *open_elf(const char *path, int *fd_close) {
1: +  int fd;
1: +  Elf *e;
1:  
1: -	if (elf_version(EV_CURRENT) == EV_NONE) {
1: -		warn("elf init failed\n");
1: -		return NULL;
1: -	}
1: -	fd = open(path, O_RDONLY);
1: -	if (fd < 0) {
1: -		warn("Could not open %s\n", path);
1: -		return NULL;
1: -	}
1: -	e = elf_begin(fd, ELF_C_READ, NULL);
1: -	if (!e) {
1: -		warn("elf_begin failed: %s\n", elf_errmsg(-1));
1: -		close(fd);
1: -		return NULL;
1: -	}
1: -	if (elf_kind(e) != ELF_K_ELF) {
1: -		warn("elf kind %d is not ELF_K_ELF\n", elf_kind(e));
1: -		elf_end(e);
1: -		close(fd);
1: -		return NULL;
1: -	}
1: -	*fd_close = fd;
1: -	return e;
1: +  if (elf_version(EV_CURRENT) == EV_NONE) {
1: +    warn("elf init failed\n");
1: +    return NULL;
1: +  }
1: +  fd = open(path, O_RDONLY);
1: +  if (fd < 0) {
1: +    warn("Could not open %s\n", path);
1: +    return NULL;
1: +  }
1: +  e = elf_begin(fd, ELF_C_READ, NULL);
1: +  if (!e) {
1: +    warn("elf_begin failed: %s\n", elf_errmsg(-1));
1: +    close(fd);
1: +    return NULL;
1: +  }
1: +  if (elf_kind(e) != ELF_K_ELF) {
1: +    warn("elf kind %d is not ELF_K_ELF\n", elf_kind(e));
1: +    elf_end(e);
1: +    close(fd);
1: +    return NULL;
1: +  }
1: +  *fd_close = fd;
1: +  return e;
1:  }
1:  
1: -Elf *open_elf_by_fd(int fd)
1: -{
1: -	Elf *e;
1: +Elf *open_elf_by_fd(int fd) {
1: +  Elf *e;
1:  
1: -	if (elf_version(EV_CURRENT) == EV_NONE) {
1: -		warn("elf init failed\n");
1: -		return NULL;
1: -	}
1: -	e = elf_begin(fd, ELF_C_READ, NULL);
1: -	if (!e) {
1: -		warn("elf_begin failed: %s\n", elf_errmsg(-1));
1: -		close(fd);
1: -		return NULL;
1: -	}
1: -	if (elf_kind(e) != ELF_K_ELF) {
1: -		warn("elf kind %d is not ELF_K_ELF\n", elf_kind(e));
1: -		elf_end(e);
1: -		close(fd);
1: -		return NULL;
1: -	}
1: -	return e;
1: +  if (elf_version(EV_CURRENT) == EV_NONE) {
1: +    warn("elf init failed\n");
1: +    return NULL;
1: +  }
1: +  e = elf_begin(fd, ELF_C_READ, NULL);
1: +  if (!e) {
1: +    warn("elf_begin failed: %s\n", elf_errmsg(-1));
1: +    close(fd);
1: +    return NULL;
1: +  }
1: +  if (elf_kind(e) != ELF_K_ELF) {
1: +    warn("elf kind %d is not ELF_K_ELF\n", elf_kind(e));
1: +    elf_end(e);
1: +    close(fd);
1: +    return NULL;
1: +  }
1: +  return e;
1:  }
1:  
1: -void close_elf(Elf *e, int fd_close)
1: -{
1: -	elf_end(e);
1: -	close(fd_close);
1: +void close_elf(Elf *e, int fd_close) {
1: +  elf_end(e);
1: +  close(fd_close);
1:  }
1:  
1:  /* Returns the offset of a function in the elf file `path`, or -1 on failure. */
1: diff --git a/libbpf-tools/uprobe_helpers.h b/libbpf-tools/uprobe_helpers.h
1: index 47f77bb..a78bb44 100644
1: --- a/libbpf-tools/uprobe_helpers.h
1: +++ b/libbpf-tools/uprobe_helpers.h
1: @@ -3,9 +3,9 @@
1:  #ifndef __UPROBE_HELPERS_H
1:  #define __UPROBE_HELPERS_H
1:  
1: +#include <gelf.h>
1:  #include <sys/types.h>
1:  #include <unistd.h>
1: -#include <gelf.h>
1:  
1:  int get_pid_binary_path(pid_t pid, char *path, size_t path_sz);
1:  int get_pid_lib_path(pid_t pid, const char *lib, char *path, size_t path_sz);
1: Ignoring changes in the following files (wrong extension):
1:     libbpf-tools/Makefile
1:     libbpf-tools/.gitignore
1: Running clang-format on the following files:
1:     libbpf-tools/offcputime.c
1:     libbpf-tools/uprobe_helpers.h
1:     libbpf-tools/offcputime.h
1:     libbpf-tools/uprobe_helpers.c
1:     libbpf-tools/offcputime.bpf.c
1:     libbpf-tools/trace_helpers.h
1:     libbpf-tools/trace_helpers.c
1: old tree: 25e0207b054c11cf3c24bb00aa4388c911d9b9e2
1: new tree: 306bb95d105082fbfb33426a22fcba3ffe90a949
 1/45 Test  #1: style-check ......................   Passed    1.34 sec
test 2
      Start  2: c_test_static

2: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "c_test_static" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/cc/test_static"
2: Test timeout computed to be: 9.99988e+06
2: clang -cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -emit-llvm-uselists -disable-free -disable-llvm-verifier -discard-value-names -main-file-name main.c -mrelocation-model static -mthread-model posix -fmath-errno -masm-verbose -mconstructor-aliases -fuse-init-array -target-cpu x86-64 -momit-leaf-frame-pointer -dwarf-column-info -debugger-tuning=gdb -coverage-file /usr/src/kernels/4.13.16-100.fc25.x86_64/main.c -nostdsysteminc -nobuiltininc -resource-dir ../lib64/clang/3.9.1 -isystem /virtual/lib/clang/include -include ./include/linux/kconfig.h -include /virtual/include/bcc/bpf.h -include /virtual/include/bcc/helpers.h -isystem /virtual/include -I /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/cc -D __BPF_TRACING__ -I arch/x86/include/ -I /lib/modules/4.13.16-100.fc25.x86_64/build/arch/x86/include/generated -I include -I /lib/modules/4.13.16-100.fc25.x86_64/build/include -I arch/x86/include/uapi -I /lib/modules/4.13.16-100.fc25.x86_64/build/arch/x86/include/generated/uapi -I include/uapi -I /lib/modules/4.13.16-100.fc25.x86_64/build/include/generated/uapi -D __KERNEL__ -D KBUILD_MODNAME="bcc" -O2 -Wno-deprecated-declarations -Wno-gnu-variable-sized-type-not-at-end -Wno-pragma-once-outside-header -Wno-address-of-packed-member -Wno-unknown-warning-option -Wno-unused-value -Wno-pointer-sign -fdebug-compilation-dir /usr/src/kernels/4.13.16-100.fc25.x86_64 -ferror-limit 19 -fmessage-length 0 -fobjc-runtime=gcc -fdiagnostics-show-option -vectorize-loops -vectorize-slp -o main.bc -x c /virtual/main.c
2: #if defined(BPF_LICENSE)
2: #error BPF_LICENSE cannot be specified through cflags
2: #endif
2: #if !defined(CONFIG_CC_STACKPROTECTOR)
2: #if defined(CONFIG_CC_STACKPROTECTOR_AUTO) \
2:     || defined(CONFIG_CC_STACKPROTECTOR_REGULAR) \
2:     || defined(CONFIG_CC_STACKPROTECTOR_STRONG)
2: #define CONFIG_CC_STACKPROTECTOR
2: #endif
2: #endif
2: #define bpf_probe_read_kernel bpf_probe_read
2: #define bpf_probe_read_kernel_str bpf_probe_read_str
2: #define bpf_probe_read_user bpf_probe_read
2: #define bpf_probe_read_user_str bpf_probe_read_str
2: BPF_TABLE("array", int, int, stats, 10);
2: 
2: #include <bcc/footer.h>
2: Running from kernel directory at: /lib/modules/4.13.16-100.fc25.x86_64/source
 2/45 Test  #2: c_test_static ....................   Passed    1.34 sec
test 3
      Start  3: test_libbcc

3: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "c_test_all" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/cc/test_libbcc"
3: Test timeout computed to be: 9.99988e+06
3: Parse error:
3:     4@i%ra+1r
3: -------^
3: unshare: failed to execute ruby: No such file or directory
3: 
3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3: test_libbcc is a Catch v1.4.0 host application.
3: Run with -? for options
3: 
3: -------------------------------------------------------------------------------
3: test probing running Ruby process in namespaces
3:   in separate mount namespace
3: -------------------------------------------------------------------------------
3: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/cc/test_usdt_probes.cc:352
3: ...............................................................................
3: 
3: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/cc/test_usdt_probes.cc:367: FAILED:
3:   REQUIRE( res.msg() == "" )
3: with expansion:
3:   "Unable to load USDT ruby:gc__mark__begin from binary  PID 6471 for probe
3:   on_event"
3:   ==
3:   ""
3: 
3: unshare: unrecognized option '--kill-child'
3: 
3: Usage:
3:  unshare [options] <program> [<argument>...]
3: 
3: Run a program with some namespaces unshared from the parent.
3: 
3: Options:
3:  -m, --mount[=<file>]      unshare mounts namespace
3:  -u, --uts[=<file>]        unshare UTS namespace (hostname etc)
3:  -i, --ipc[=<file>]        unshare System V IPC namespace
3:  -n, --net[=<file>]        unshare network namespace
3:  -p, --pid[=<file>]        unshare pid namespace
3:  -U, --user[=<file>]       unshare user namespace
3:  -C, --cgroup[=<file>]     unshare cgroup namespace
3:  -f, --fork                fork before launching <program>
3:      --mount-proc[=<dir>]  mount proc filesystem first (implies --mount)
3:  -r, --map-root-user       map current user to root (implies --user)
3:      --propagation slave|shared|private|unchanged
3:                            modify mount propagation in mount namespace
3:  -s, --setgroups allow|deny  control the setgroups syscall in user namespaces
3: 
3:  -h, --help     display this help and exit
3:  -V, --version  output version information and exit
3: 
3: For more details see unshare(1).
3: -------------------------------------------------------------------------------
3: test probing running Ruby process in namespaces
3:   in separate mount namespace and separate PID namespace
3: -------------------------------------------------------------------------------
3: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/cc/test_usdt_probes.cc:352
3: ...............................................................................
3: 
3: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/cc/test_usdt_probes.cc:393: FAILED:
3:   REQUIRE( res.msg() == "" )
3: with expansion:
3:   "Unable to load USDT ruby:gc__mark__begin from binary  PID 32627 for probe
3:   on_event"
3:   ==
3:   ""
3: 
3: ===============================================================================
3: test cases:  40 |  39 passed | 1 failed as expected
3: assertions: 646 | 644 passed | 2 failed as expected
3: 
 3/45 Test  #3: test_libbcc ......................   Passed   13.60 sec
test 4
      Start  4: py_test_stat1_b

4: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_stat1_b" "namespace" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_stat1.py" "test_stat1.b" "proto.b"
4: Test timeout computed to be: 9.99988e+06
4: Actual changes:
4: tx-checksumming: off
4: 	tx-checksum-ip-generic: off
4: 	tx-checksum-sctp: off
4: tcp-segmentation-offload: off
4: 	tx-tcp-segmentation: off [requested on]
4: 	tx-tcp-ecn-segmentation: off [requested on]
4: 	tx-tcp-mangleid-segmentation: off [requested on]
4: 	tx-tcp6-segmentation: off [requested on]
4: udp-fragmentation-offload: off [requested on]
4: .PING 172.16.1.1 (172.16.1.1) 56(84) bytes of data.
4: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
4: --- 172.16.1.1 ping statistics ---
4: 100 packets transmitted, 100 received, 0% packet loss, time 1ms
4: rtt min/avg/max/mdev = 0.003/0.006/0.119/0.011 ms, ipg/ewma 0.013/0.005 ms
4: .
4: ----------------------------------------------------------------------
4: Ran 2 tests in 0.435s
4: 
4: OK
 4/45 Test  #4: py_test_stat1_b ..................   Passed    1.12 sec
test 5
      Start  5: py_test_bpf_log

5: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_bpf_prog" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_bpf_log.py"
5: Test timeout computed to be: 9.99988e+06
 5/45 Test  #5: py_test_bpf_log ..................   Passed    0.85 sec
test 6
      Start  6: py_test_stat1_c

6: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_stat1_c" "namespace" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_stat1.py" "test_stat1.c"
6: Test timeout computed to be: 9.99988e+06
6: Actual changes:
6: tx-checksumming: off
6: 	tx-checksum-ip-generic: off
6: 	tx-checksum-sctp: off
6: tcp-segmentation-offload: off
6: 	tx-tcp-segmentation: off [requested on]
6: 	tx-tcp-ecn-segmentation: off [requested on]
6: 	tx-tcp-mangleid-segmentation: off [requested on]
6: 	tx-tcp6-segmentation: off [requested on]
6: udp-fragmentation-offload: off [requested on]
6: .PING 172.16.1.1 (172.16.1.1) 56(84) bytes of data.
6: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
6: --- 172.16.1.1 ping statistics ---
6: 100 packets transmitted, 100 received, 0% packet loss, time 1ms
6: rtt min/avg/max/mdev = 0.004/0.006/0.117/0.011 ms, ipg/ewma 0.016/0.005 ms
6: .
6: ----------------------------------------------------------------------
6: Ran 2 tests in 0.412s
6: 
6: OK
 6/45 Test  #6: py_test_stat1_c ..................   Passed    0.68 sec
test 7
      Start  7: py_test_xlate1_c

7: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_xlate1_c" "namespace" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_xlate1.py" "test_xlate1.c"
7: Test timeout computed to be: 9.99988e+06
7: Actual changes:
7: tx-checksumming: off
7: 	tx-checksum-ip-generic: off
7: 	tx-checksum-sctp: off
7: tcp-segmentation-offload: off
7: 	tx-tcp-segmentation: off [requested on]
7: 	tx-tcp-ecn-segmentation: off [requested on]
7: 	tx-tcp-mangleid-segmentation: off [requested on]
7: 	tx-tcp6-segmentation: off [requested on]
7: udp-fragmentation-offload: off [requested on]
7: PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
7: 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.041 ms
7: 
7: --- 192.168.1.1 ping statistics ---
7: 1 packets transmitted, 1 received, 0% packet loss, time 0ms
7: rtt min/avg/max/mdev = 0.041/0.041/0.041/0.000 ms
7: .
7: ----------------------------------------------------------------------
7: Ran 1 test in 0.445s
7: 
7: OK
 7/45 Test  #7: py_test_xlate1_c .................   Passed    0.76 sec
test 8
      Start  8: py_test_call1

8: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_call1_c" "namespace" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_call1.py" "test_call1.c"
8: Test timeout computed to be: 9.99988e+06
8: Actual changes:
8: tx-checksumming: off
8: 	tx-checksum-ip-generic: off
8: 	tx-checksum-sctp: off
8: tcp-segmentation-offload: off
8: 	tx-tcp-segmentation: off [requested on]
8: 	tx-tcp-ecn-segmentation: off [requested on]
8: 	tx-tcp-mangleid-segmentation: off [requested on]
8: 	tx-tcp6-segmentation: off [requested on]
8: udp-fragmentation-offload: off [requested on]
8: .
8: ----------------------------------------------------------------------
8: Ran 1 test in 0.244s
8: 
8: OK
 8/45 Test  #8: py_test_call1 ....................   Passed    0.77 sec
test 9
      Start  9: py_test_trace1

9: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_trace1" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_trace1.py" "test_trace1.b" "kprobe.b"
9: Test timeout computed to be: 9.99988e+06
9: .
9: ----------------------------------------------------------------------
9: Ran 1 test in 0.280s
9: 
9: OK
9: ('fd 8:', 'stat1 0', 'stat2 1')
9: ('fd ffff9a5314e43c00:', 'stat1 2', 'stat2 0')
9: ('fd a:', 'stat1 200', 'stat2 100')
9: ('fd 9:', 'stat1 1', 'stat2 1')
 9/45 Test  #9: py_test_trace1 ...................   Passed    0.43 sec
test 10
      Start 10: py_test_trace2

10: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_trace2" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_trace2.py"
10: Test timeout computed to be: 9.99988e+06
10: .
10: ----------------------------------------------------------------------
10: Ran 1 test in 3.787s
10: 
10: OK
10: ('ptr ffff9a5313802640:', 'stat1 (0 100)')
10: ('ptr ffff9a53147fcc80:', 'stat1 (0 10)')
10: ('ptr ffff9a5313450000:', 'stat1 (0 21)')
10: ('ptr ffff9a5313232640:', 'stat1 (0 2)')
10: ('ptr ffff9a5316a24c80:', 'stat1 (0 41)')
10: ('ptr ffff9a5313ca4c80:', 'stat1 (0 5)')
10: ('ptr ffff9a53134dcc80:', 'stat1 (0 2)')
10: ('ptr ffff9a5316a1cc80:', 'stat1 (0 3)')
10: ('ptr ffffffff91e10480:', 'stat1 (0 101)')
10/45 Test #10: py_test_trace2 ...................   Passed    3.88 sec
test 11
      Start 11: py_test_trace3_c

11: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_trace3_c" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_trace3.py" "test_trace3.c"
11: Test timeout computed to be: 9.99988e+06
11: 1024+0 records in
11: 1024+0 records out
11: 4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.00320396 s, 1.3 GB/s
11: 1024+0 records in
11: 1024+0 records out
11: 4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.00355523 s, 1.2 GB/s
11: ('latency 0:', 'count 0')
11: ('latency 1:', 'count 0')
11: ('latency 2:', 'count 0')
11: ('latency 3:', 'count 0')
11: ('latency 4:', 'count 0')
11: ('latency 5:', 'count 0')
11: ('latency 6:', 'count 0')
11: ('latency 7:', 'count 0')
11: ('latency 8:', 'count 0')
11: ('latency 9:', 'count 0')
11: ('latency 10:', 'count 0')
11: ('latency 11:', 'count 0')
11: ('latency 12:', 'count 0')
11: ('latency 13:', 'count 0')
11: ('latency 14:', 'count 0')
11: ('latency 15:', 'count 0')
11: ('latency 16:', 'count 0')
11: ('latency 17:', 'count 0')
11: ('latency 18:', 'count 0')
11: ('latency 19:', 'count 0')
11: ('latency 20:', 'count 0')
11: ('latency 21:', 'count 0')
11: ('latency 22:', 'count 0')
11: ('latency 23:', 'count 0')
11: ('latency 24:', 'count 0')
11: ('latency 25:', 'count 0')
11: ('latency 26:', 'count 0')
11: ('latency 27:', 'count 0')
11: ('latency 28:', 'count 0')
11: ('latency 29:', 'count 0')
11: ('latency 30:', 'count 0')
11: ('latency 31:', 'count 0')
11: ('latency 32:', 'count 0')
11: ('latency 33:', 'count 0')
11: ('latency 34:', 'count 0')
11: ('latency 35:', 'count 0')
11: ('latency 36:', 'count 0')
11: ('latency 37:', 'count 0')
11: ('latency 38:', 'count 0')
11: ('latency 39:', 'count 0')
11: ('latency 40:', 'count 0')
11: ('latency 41:', 'count 0')
11: ('latency 42:', 'count 0')
11: ('latency 43:', 'count 0')
11: ('latency 44:', 'count 0')
11: ('latency 45:', 'count 1')
11: ('latency 46:', 'count 1')
11: ('latency 47:', 'count 1')
11: ('latency 48:', 'count 1')
11: ('latency 49:', 'count 0')
11: ('latency 50:', 'count 0')
11: ('latency 51:', 'count 0')
11: ('latency 52:', 'count 0')
11: ('latency 53:', 'count 0')
11: ('latency 54:', 'count 0')
11: ('latency 55:', 'count 0')
11: ('latency 56:', 'count 0')
11: ('latency 57:', 'count 3')
11: ('latency 58:', 'count 11')
11: ('latency 59:', 'count 11')
11: ('latency 60:', 'count 0')
11: ('latency 61:', 'count 3')
11: ('latency 62:', 'count 0')
11: ('latency 63:', 'count 1')
11: ('latency 64:', 'count 10')
11: ('latency 65:', 'count 19')
11: ('latency 66:', 'count 23')
11: ('latency 67:', 'count 10')
11: ('latency 68:', 'count 37')
11: ('latency 69:', 'count 67')
11: ('latency 70:', 'count 79')
11: ('latency 71:', 'count 8')
11: ('latency 72:', 'count 15')
11: ('latency 73:', 'count 5')
11: ('latency 74:', 'count 5')
11: ('latency 75:', 'count 43')
11: ('latency 76:', 'count 11')
11: ('latency 77:', 'count 7')
11: ('latency 78:', 'count 54')
11: ('latency 79:', 'count 63')
11: ('latency 80:', 'count 38')
11: ('latency 81:', 'count 0')
11: ('latency 82:', 'count 0')
11: ('latency 83:', 'count 0')
11: ('latency 84:', 'count 0')
11: ('latency 85:', 'count 0')
11: ('latency 86:', 'count 0')
11: ('latency 87:', 'count 0')
11: ('latency 88:', 'count 0')
11: ('latency 89:', 'count 0')
11: ('latency 90:', 'count 0')
11: ('latency 91:', 'count 0')
11: ('latency 92:', 'count 0')
11: ('latency 93:', 'count 0')
11: ('latency 94:', 'count 0')
11: ('latency 95:', 'count 0')
11: ('latency 96:', 'count 0')
11: ('latency 97:', 'count 0')
11: ('latency 98:', 'count 0')
11: ('latency 99:', 'count 0')
11: .
11: ----------------------------------------------------------------------
11: Ran 1 test in 1.652s
11: 
11: OK
11/45 Test #11: py_test_trace3_c .................   Passed    1.78 sec
test 12
      Start 12: py_test_trace4

12: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_trace4" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_trace4.py"
12: Test timeout computed to be: 9.99988e+06
12: ..
12: ----------------------------------------------------------------------
12: Ran 2 tests in 1.308s
12: 
12: OK
12/45 Test #12: py_test_trace4 ...................   Passed    1.47 sec
test 13
      Start 13: py_test_trace_maxactive

13: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_trace_maxactive" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_trace_maxactive.py"
13: Test timeout computed to be: 9.99988e+06
13: .
13: ----------------------------------------------------------------------
13: Ran 1 test in 0.828s
13: 
13: OK
13/45 Test #13: py_test_trace_maxactive ..........   Passed    0.95 sec
test 14
      Start 14: py_test_probe_count

14: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_probe_count" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_probe_count.py"
14: Test timeout computed to be: 9.99988e+06
14: ...cannot attach kprobe, probe entry may not exist
14: ...
14: ----------------------------------------------------------------------
14: Ran 6 tests in 3.506s
14: 
14: OK
14/45 Test #14: py_test_probe_count ..............   Passed    3.57 sec
test 15
      Start 15: py_test_debuginfo

15: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_test_debuginfo" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_debuginfo.py"
15: Test timeout computed to be: 9.99988e+06
15: ......
15: ----------------------------------------------------------------------
15: Ran 6 tests in 0.536s
15: 
15: OK
15/45 Test #15: py_test_debuginfo ................   Passed    0.62 sec
test 16
      Start 16: py_test_brb

16: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_brb_c" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_brb.py" "test_brb.c"
16: Test timeout computed to be: 9.99988e+06
16: net.ipv4.ip_forward = 1
16: ARPING 100.1.1.254 from 100.1.1.1 eth0
16: Unicast reply from 100.1.1.254 [7E:4A:18:1F:9B:CC]  0.661ms
16: Sent 1 probes (1 broadcast(s))
16: Received 1 response(s)
16: ARPING 200.1.1.254 from 200.1.1.1 eth0
16: Unicast reply from 200.1.1.254 [5A:E1:82:11:00:86]  0.681ms
16: Sent 1 probes (1 broadcast(s))
16: Received 1 response(s)
16: PING 200.1.1.1 (200.1.1.1) 56(84) bytes of data.
16: 64 bytes from 200.1.1.1: icmp_seq=1 ttl=63 time=0.091 ms
16: 64 bytes from 200.1.1.1: icmp_seq=2 ttl=63 time=0.058 ms
16: 
16: --- 200.1.1.1 ping statistics ---
16: 2 packets transmitted, 2 received, 0% packet loss, time 1025ms
16: rtt min/avg/max/mdev = 0.058/0.074/0.091/0.018 ms
16: [ ID] Interval       Transfer     Bandwidth
16: [  7]  0.0- 1.0 sec  3.97 GBytes  34.1 Gbits/sec
16: [ ID] Interval       Transfer     Bandwidth
16: [ 10]  0.0- 1.0 sec  3.97 GBytes  33.9 Gbits/sec
16: Starting netserver with host 'IN(6)ADDR_ANY' port '12865' and family AF_UNSPEC
16: MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 200.1.1.1 () port 0 AF_INET
16: Recv   Send    Send                          
16: Socket Socket  Message  Elapsed              
16: Size   Size    Size     Time     Throughput  
16: bytes  bytes   bytes    secs.    10^6bits/sec  
16: 
16:  87380  16384  65160    1.00     42359.61   
16: MIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 200.1.1.1 () port 0 AF_INET : first burst 0
16: Local /Remote
16: Socket Size   Request  Resp.   Elapsed  Trans.
16: Send   Recv   Size     Size    Time     Rate         
16: bytes  Bytes  bytes    bytes   secs.    per sec   
16: 
16: 16384  87380  1        1       1.00     25930.91   
16: 16384  87380 
16: .
16: ----------------------------------------------------------------------
16: Ran 1 test in 7.078s
16: 
16: OK
16/45 Test #16: py_test_brb ......................   Passed    7.21 sec
test 17
      Start 17: py_test_brb2

17: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_brb2_c" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_brb2.py" "test_brb2.c"
17: Test timeout computed to be: 9.99988e+06
17: net.ipv4.ip_forward = 1
17: PING 200.1.1.1 (200.1.1.1) 56(84) bytes of data.
17: 64 bytes from 200.1.1.1: icmp_seq=1 ttl=63 time=0.116 ms
17: 64 bytes from 200.1.1.1: icmp_seq=2 ttl=63 time=0.067 ms
17: 
17: --- 200.1.1.1 ping statistics ---
17: 2 packets transmitted, 2 received, 0% packet loss, time 1048ms
17: rtt min/avg/max/mdev = 0.067/0.091/0.116/0.026 ms
17: [ ID] Interval       Transfer     Bandwidth
17: [  7]  0.0- 1.0 sec  3.61 GBytes  31.0 Gbits/sec
17: [ ID] Interval       Transfer     Bandwidth
17: [ 10]  0.0- 1.0 sec  3.61 GBytes  30.8 Gbits/sec
17: Starting netserver with host 'IN(6)ADDR_ANY' port '12865' and family AF_UNSPEC
17: MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 200.1.1.1 () port 0 AF_INET
17: Recv   Send    Send                          
17: Socket Socket  Message  Elapsed              
17: Size   Size    Size     Time     Throughput  
17: bytes  bytes   bytes    secs.    10^6bits/sec  
17: 
17:  87380  16384  65160    1.00     39565.91   
17: MIGRATED TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 200.1.1.1 () port 0 AF_INET : first burst 0
17: Local /Remote
17: Socket Size   Request  Resp.   Elapsed  Trans.
17: Send   Recv   Size     Size    Time     Rate         
17: bytes  Bytes  bytes    bytes   secs.    per sec   
17: 
17: 16384  87380  1        1       1.00     23874.76   
17: 16384  87380 
17: .
17: ----------------------------------------------------------------------
17: Ran 1 test in 7.301s
17: 
17: OK
17/45 Test #17: py_test_brb2 .....................   Passed    7.42 sec
test 18
      Start 18: py_test_clang

18: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_clang" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_clang.py"
18: Test timeout computed to be: 9.99988e+06
18: .............In file included from /virtual/main.c:3:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: .In file included from /virtual/main.c:3:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: .In file included from /virtual/main.c:3:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: .In file included from /virtual/main.c:3:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: ./virtual/main.c:2:1: error: field has incomplete type 'struct key_t'
18: BPF_HASH(drops, struct key_t);
18: ^
18: /virtual/include/bcc/helpers.h:256:48: note: expanded from macro 'BPF_HASH'
18:   BPF_HASHX(__VA_ARGS__, BPF_HASH4, BPF_HASH3, BPF_HASH2, BPF_HASH1)(__VA_ARGS__)
18:                                                ^
18: /virtual/main.c:2:24: note: forward declaration of 'struct key_t'
18: BPF_HASH(drops, struct key_t);
18:                        ^
18: /virtual/main.c:2:1: error: field has incomplete type 'struct key_t'
18: BPF_HASH(drops, struct key_t);
18: ^
18: /virtual/include/bcc/helpers.h:256:48: note: expanded from macro 'BPF_HASH'
18:   BPF_HASHX(__VA_ARGS__, BPF_HASH4, BPF_HASH3, BPF_HASH2, BPF_HASH1)(__VA_ARGS__)
18:                                                ^
18: /virtual/main.c:2:24: note: forward declaration of 'struct key_t'
18: BPF_HASH(drops, struct key_t);
18:                        ^
18: 2 errors generated.
18: ../virtual/main.c:6:12: error: cannot call non-static helper function
18:     return bar();
18:            ^
18: 1 error generated.
18: ..ss....In file included from /virtual/main.c:3:
18: In file included from include/net/inet_sock.h:27:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: ...In file included from /virtual/main.c:2:
18: In file included from include/net/inet_sock.h:27:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: .........In file included from /virtual/main.c:2:
18: In file included from include/net/tcp.h:24:
18: In file included from include/linux/tcp.h:23:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: .In file included from /virtual/main.c:2:
18: In file included from include/net/tcp.h:24:
18: In file included from include/linux/tcp.h:23:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: .......In file included from /virtual/main.c:2:
18: In file included from include/net/inet_sock.h:27:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: ..In file included from /virtual/main.c:3:
18: In file included from include/net/inet_sock.h:27:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: ...In file included from /virtual/main.c:3:
18: In file included from include/net/inet_sock.h:27:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: .In file included from /virtual/main.c:3:
18: In file included from include/linux/tcp.h:23:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: .In file included from /virtual/main.c:2:
18: In file included from include/net/inet_sock.h:27:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: .In file included from /virtual/main.c:2:
18: In file included from include/net/inet_sock.h:27:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: .In file included from /virtual/main.c:2:
18: In file included from include/net/inet_sock.h:27:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: .In file included from /virtual/main.c:2:
18: In file included from include/net/inet_sock.h:27:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: .In file included from /virtual/main.c:2:
18: In file included from include/net/inet_sock.h:27:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: .In file included from /virtual/main.c:2:
18: In file included from include/net/inet_sock.h:27:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: ../virtual/main.c:7:12: warning: incompatible pointer to integer conversion returning 'u32 *' (aka 'unsigned int *') from a function with result type 'int' [-Wint-conversion]
18:     return *(&skp->sk_daddr);
18:            ^~~~~~~~~~~~~~~~~
18: 1 warning generated.
18: .In file included from /virtual/main.c:3:
18: In file included from include/linux/tcp.h:23:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: .In file included from /virtual/main.c:3:
18: In file included from include/linux/tcp.h:23:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: .In file included from /virtual/main.c:3:
18: In file included from include/linux/tcp.h:23:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: ...In file included from /virtual/main.c:2:
18: In file included from include/net/tcp.h:24:
18: In file included from include/linux/tcp.h:23:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: .In file included from /virtual/main.c:2:
18: In file included from include/net/tcp.h:24:
18: In file included from include/linux/tcp.h:23:
18: In file included from include/net/sock.h:58:
18: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(pn->memcg, idx, val);
18:         ~~~~~~~~~~~~~~~            ^~~
18: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         __mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
18:         mod_memcg_state(page->mem_cgroup, idx, val);
18:         ~~~~~~~~~~~~~~~                   ^~~
18: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
18:                 count_memcg_events(page->mem_cgroup, idx, 1);
18:                 ~~~~~~~~~~~~~~~~~~                   ^~~
18: 5 warnings generated.
18: ........./virtual/main.c:1:30: error: expected expression
18: int failure(void *ctx) { if (); return 0; }
18:                              ^
18: 1 error generated.
18: ../virtual/main.c:3:73: error: too many arguments, bcc only supports in-register parameters
18: int many(struct pt_regs *ctx, int a, int b, int c, int d, int e, int f, int g) {
18:                                                                         ^
18: 1 error generated.
18: ....
18: ----------------------------------------------------------------------
18: Ran 83 tests in 76.652s
18: 
18: OK (skipped=2)
18: 0
18/45 Test #18: py_test_clang ....................   Passed   76.91 sec
test 19
      Start 19: py_test_histogram

19: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_histogram" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_histogram.py"
19: Test timeout computed to be: 9.99988e+06
19: ....
19: ----------------------------------------------------------------------
19: Ran 4 tests in 3.489s
19: 
19: OK
19: 
19: Bucket ptr = 'systemd'
19:      value               : count     distribution
19:          0 -> 1          : 0        |                                        |
19:          2 -> 3          : 1        |****************************************|
19: 
19: Bucket ptr = 'java'
19:      value               : count     distribution
19:          0 -> 1          : 1        |*                                       |
19:          2 -> 3          : 29       |****************************************|
19: 
19: Bucket ptr = 'python'
19:      value               : count     distribution
19:          0 -> 1          : 0        |                                        |
19:          2 -> 3          : 100      |****************************************|
19: 
19: Bucket ptr = 'systemd-udevd'
19:      value               : count     distribution
19:          0 -> 1          : 0        |                                        |
19:          2 -> 3          : 1        |****************************************|
19: 
19: Bucket ptr = 'watchdog/0'
19:      value               : count     distribution
19:          0 -> 1          : 0        |                                        |
19:          2 -> 3          : 1        |****************************************|
19: 
19: Bucket ptr = 'rcu_sched'
19:      value               : count     distribution
19:          0 -> 1          : 0        |                                        |
19:          2 -> 3          : 6        |****************************************|
19: 
19: Bucket ptr = 'kworker/0:5'
19:      value               : count     distribution
19:          0 -> 1          : 0        |                                        |
19:          2 -> 3          : 1        |****************************************|
19: 
19: Bucket ptr = 'swapper/0'
19:      value               : count     distribution
19:          0 -> 1          : 106      |****************************************|
19: 
19: Bucket ptr = 'watchdog/1'
19:      value               : count     distribution
19:          0 -> 1          : 0        |                                        |
19:          2 -> 3          : 1        |****************************************|
19: 
19: Bucket ptr = 'kworker/1:0'
19:      value               : count     distribution
19:          0 -> 1          : 1        |****************************************|
19: 
19: Bucket ptr = 'ctest'
19:      value               : count     distribution
19:          0 -> 1          : 0        |                                        |
19:          2 -> 3          : 10       |****************************************|
19: 
19: Bucket ptr = 'swapper/1'
19:      value               : count     distribution
19:          0 -> 1          : 44       |****************************************|
19/45 Test #19: py_test_histogram ................   Passed    3.57 sec
test 20
      Start 20: py_array

20: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_array" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_array.py"
20: Test timeout computed to be: 9.99988e+06
20: ....
20: ----------------------------------------------------------------------
20: Ran 4 tests in 1.304s
20: 
20: OK
20/45 Test #20: py_array .........................   Passed    1.38 sec
test 21
      Start 21: py_uprobes

21: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_uprobes" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_uprobes.py"
21: Test timeout computed to be: 9.99988e+06
21: .Python 2.7.13
21: .Arena 0:
21: system bytes     =   26263552
21: in use bytes     =    3082752
21: Total (incl. mmap):
21: system bytes     =   27054080
21: in use bytes     =    3873280
21: max mmap regions =          7
21: max mmap bytes   =    9203712
21: .
21: ----------------------------------------------------------------------
21: Ran 3 tests in 8.561s
21: 
21: OK
21/45 Test #21: py_uprobes .......................   Passed    8.63 sec
test 22
      Start 22: py_uprobes_2

22: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_uprobes2" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_uprobes2.py"
22: Test timeout computed to be: 9.99988e+06
22: .
22: ----------------------------------------------------------------------
22: Ran 1 test in 0.236s
22: 
22: OK
22/45 Test #22: py_uprobes_2 .....................   Passed    0.32 sec
test 23
      Start 23: py_test_stackid

23: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_stackid" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_stackid.py"
23: Test timeout computed to be: 9.99988e+06
23: s.
23: ----------------------------------------------------------------------
23: Ran 2 tests in 0.287s
23: 
23: OK (skipped=1)
23/45 Test #23: py_test_stackid ..................   Passed    0.39 sec
test 24
      Start 24: py_test_tracepoint

24: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_test_tracepoint" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_tracepoint.py"
24: Test timeout computed to be: 9.99988e+06
24: ..
24: ----------------------------------------------------------------------
24: Ran 2 tests in 2.400s
24: 
24: OK
24/45 Test #24: py_test_tracepoint ...............   Passed    2.49 sec
test 25
      Start 25: py_test_perf_event

25: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_test_perf_event" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_perf_event.py"
25: Test timeout computed to be: 9.99988e+06
25: perf_event_open: No such file or directory
25: s
25: ----------------------------------------------------------------------
25: Ran 1 test in 0.274s
25: 
25: OK (skipped=1)
25/45 Test #25: py_test_perf_event ...............   Passed    0.39 sec
test 26
      Start 26: py_test_utils

26: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_test_utils" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_utils.py"
26: Test timeout computed to be: 9.99988e+06
26: ..
26: ----------------------------------------------------------------------
26: Ran 2 tests in 0.000s
26: 
26: OK
26/45 Test #26: py_test_utils ....................   Passed    0.07 sec
test 27
      Start 27: py_test_percpu

27: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_test_percpu" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_percpu.py"
27: Test timeout computed to be: 9.99988e+06
27: ....
27: ----------------------------------------------------------------------
27: Ran 4 tests in 2.456s
27: 
27: OK
27/45 Test #27: py_test_percpu ...................   Passed    2.53 sec
test 28
      Start 28: py_test_dump_func

28: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_dump_func" "simple" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_dump_func.py"
28: Test timeout computed to be: 9.99988e+06
28: .
28: ----------------------------------------------------------------------
28: Ran 1 test in 0.124s
28: 
28: OK
28/45 Test #28: py_test_dump_func ................   Passed    0.18 sec
test 29
      Start 29: py_test_disassembler

29: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_test_disassembler" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_disassembler.py"
29: Test timeout computed to be: 9.99988e+06
29: ..
29: ----------------------------------------------------------------------
29: Ran 2 tests in 0.199s
29: 
29: OK
29/45 Test #29: py_test_disassembler .............   Passed    0.27 sec
test 30
      Start 30: py_test_tools_smoke

30: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_test_tools_smoke" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_tools_smoke.py"
30: Test timeout computed to be: 9.99988e+06
30: Traceback (most recent call last):
30:   File "../../tools/argdist.py", line 707, in run
30:     self._main_loop()
30:   File "../../tools/argdist.py", line 697, in _main_loop
30:     exit()
30:   File "/usr/lib64/python2.7/site.py", line 355, in __call__
30:     raise SystemExit(code)
30: SystemExit: None
30: ..In file included from /virtual/main.c:17:
30: In file included from include/net/sock.h:58:
30: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         __mod_memcg_state(pn->memcg, idx, val);
30:         ~~~~~~~~~~~~~~~~~            ^~~
30: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         mod_memcg_state(pn->memcg, idx, val);
30:         ~~~~~~~~~~~~~~~            ^~~
30: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         __mod_memcg_state(page->mem_cgroup, idx, val);
30:         ~~~~~~~~~~~~~~~~~                   ^~~
30: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         mod_memcg_state(page->mem_cgroup, idx, val);
30:         ~~~~~~~~~~~~~~~                   ^~~
30: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
30:                 count_memcg_events(page->mem_cgroup, idx, 1);
30:                 ~~~~~~~~~~~~~~~~~~                   ^~~
30: 5 warnings generated.
30: ...'unknown': unknown terminal type.
30: .'unknown': unknown terminal type.
30: 'unknown': unknown terminal type.
30: 'unknown': unknown terminal type.
30: 'unknown': unknown terminal type.
30: .......s.............'unknown': unknown terminal type.
30: ....../bin/sh: line 1:  7157 Killed                  timeout -s KILL -k 5s 5s ../../tools/killsnoop.py > /dev/null
30: .s..........libbpf: failed to find valid kernel BTF
30: libbpf: vmlinux BTF is not found
30: ......'unknown': unknown terminal type.
30: .In file included from /virtual/main.c:6:
30: In file included from include/net/sock.h:58:
30: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         __mod_memcg_state(pn->memcg, idx, val);
30:         ~~~~~~~~~~~~~~~~~            ^~~
30: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         mod_memcg_state(pn->memcg, idx, val);
30:         ~~~~~~~~~~~~~~~            ^~~
30: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         __mod_memcg_state(page->mem_cgroup, idx, val);
30:         ~~~~~~~~~~~~~~~~~                   ^~~
30: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         mod_memcg_state(page->mem_cgroup, idx, val);
30:         ~~~~~~~~~~~~~~~                   ^~~
30: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
30:                 count_memcg_events(page->mem_cgroup, idx, 1);
30:                 ~~~~~~~~~~~~~~~~~~                   ^~~
30: 5 warnings generated.
30: ........In file included from /virtual/main.c:15:
30: In file included from include/net/sock.h:58:
30: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         __mod_memcg_state(pn->memcg, idx, val);
30:         ~~~~~~~~~~~~~~~~~            ^~~
30: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         mod_memcg_state(pn->memcg, idx, val);
30:         ~~~~~~~~~~~~~~~            ^~~
30: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         __mod_memcg_state(page->mem_cgroup, idx, val);
30:         ~~~~~~~~~~~~~~~~~                   ^~~
30: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         mod_memcg_state(page->mem_cgroup, idx, val);
30:         ~~~~~~~~~~~~~~~                   ^~~
30: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
30:                 count_memcg_events(page->mem_cgroup, idx, 1);
30:                 ~~~~~~~~~~~~~~~~~~                   ^~~
30: 5 warnings generated.
30: .In file included from /virtual/main.c:15:
30: In file included from include/net/sock.h:58:
30: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         __mod_memcg_state(pn->memcg, idx, val);
30:         ~~~~~~~~~~~~~~~~~            ^~~
30: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         mod_memcg_state(pn->memcg, idx, val);
30:         ~~~~~~~~~~~~~~~            ^~~
30: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         __mod_memcg_state(page->mem_cgroup, idx, val);
30:         ~~~~~~~~~~~~~~~~~                   ^~~
30: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         mod_memcg_state(page->mem_cgroup, idx, val);
30:         ~~~~~~~~~~~~~~~                   ^~~
30: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
30:                 count_memcg_events(page->mem_cgroup, idx, 1);
30:                 ~~~~~~~~~~~~~~~~~~                   ^~~
30: 5 warnings generated.
30: .In file included from /virtual/main.c:3:
30: In file included from include/net/sock.h:58:
30: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         __mod_memcg_state(pn->memcg, idx, val);
30:         ~~~~~~~~~~~~~~~~~            ^~~
30: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         mod_memcg_state(pn->memcg, idx, val);
30:         ~~~~~~~~~~~~~~~            ^~~
30: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         __mod_memcg_state(page->mem_cgroup, idx, val);
30:         ~~~~~~~~~~~~~~~~~                   ^~~
30: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         mod_memcg_state(page->mem_cgroup, idx, val);
30:         ~~~~~~~~~~~~~~~                   ^~~
30: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
30:                 count_memcg_events(page->mem_cgroup, idx, 1);
30:                 ~~~~~~~~~~~~~~~~~~                   ^~~
30: 5 warnings generated.
30: .In file included from /virtual/main.c:5:
30: In file included from include/net/sock.h:58:
30: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         __mod_memcg_state(pn->memcg, idx, val);
30:         ~~~~~~~~~~~~~~~~~            ^~~
30: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         mod_memcg_state(pn->memcg, idx, val);
30:         ~~~~~~~~~~~~~~~            ^~~
30: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         __mod_memcg_state(page->mem_cgroup, idx, val);
30:         ~~~~~~~~~~~~~~~~~                   ^~~
30: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         mod_memcg_state(page->mem_cgroup, idx, val);
30:         ~~~~~~~~~~~~~~~                   ^~~
30: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
30:                 count_memcg_events(page->mem_cgroup, idx, 1);
30:                 ~~~~~~~~~~~~~~~~~~                   ^~~
30: 5 warnings generated.
30: .In file included from /virtual/main.c:3:
30: In file included from include/linux/tcp.h:23:
30: In file included from include/net/sock.h:58:
30: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         __mod_memcg_state(pn->memcg, idx, val);
30:         ~~~~~~~~~~~~~~~~~            ^~~
30: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         mod_memcg_state(pn->memcg, idx, val);
30:         ~~~~~~~~~~~~~~~            ^~~
30: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         __mod_memcg_state(page->mem_cgroup, idx, val);
30:         ~~~~~~~~~~~~~~~~~                   ^~~
30: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         mod_memcg_state(page->mem_cgroup, idx, val);
30:         ~~~~~~~~~~~~~~~                   ^~~
30: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
30:                 count_memcg_events(page->mem_cgroup, idx, 1);
30:                 ~~~~~~~~~~~~~~~~~~                   ^~~
30: 5 warnings generated.
30: .In file included from /virtual/main.c:3:
30: In file included from include/net/sock.h:58:
30: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         __mod_memcg_state(pn->memcg, idx, val);
30:         ~~~~~~~~~~~~~~~~~            ^~~
30: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         mod_memcg_state(pn->memcg, idx, val);
30:         ~~~~~~~~~~~~~~~            ^~~
30: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         __mod_memcg_state(page->mem_cgroup, idx, val);
30:         ~~~~~~~~~~~~~~~~~                   ^~~
30: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         mod_memcg_state(page->mem_cgroup, idx, val);
30:         ~~~~~~~~~~~~~~~                   ^~~
30: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
30:                 count_memcg_events(page->mem_cgroup, idx, 1);
30:                 ~~~~~~~~~~~~~~~~~~                   ^~~
30: 5 warnings generated.
30: .In file included from /virtual/main.c:15:
30: In file included from include/net/sock.h:58:
30: include/linux/memcontrol.h:580:31: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         __mod_memcg_state(pn->memcg, idx, val);
30:         ~~~~~~~~~~~~~~~~~            ^~~
30: include/linux/memcontrol.h:593:29: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         mod_memcg_state(pn->memcg, idx, val);
30:         ~~~~~~~~~~~~~~~            ^~~
30: include/linux/memcontrol.h:605:38: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         __mod_memcg_state(page->mem_cgroup, idx, val);
30:         ~~~~~~~~~~~~~~~~~                   ^~~
30: include/linux/memcontrol.h:618:36: warning: implicit conversion from enumeration type 'enum node_stat_item' to different enumeration type 'enum memcg_stat_item' [-Wenum-conversion]
30:         mod_memcg_state(page->mem_cgroup, idx, val);
30:         ~~~~~~~~~~~~~~~                   ^~~
30: include/linux/memcontrol.h:639:40: warning: implicit conversion from enumeration type 'enum memcg_stat_item' to different enumeration type 'enum vm_event_item' [-Wenum-conversion]
30:                 count_memcg_events(page->mem_cgroup, idx, 1);
30:                 ~~~~~~~~~~~~~~~~~~                   ^~~
30: 5 warnings generated.
30: 'unknown': unknown terminal type.
30: ...'unknown': unknown terminal type.
30: .....'unknown': unknown terminal type.
30: ...libbpf: failed to find valid kernel BTF
30: libbpf: vmlinux BTF is not found
30: ......
30: ----------------------------------------------------------------------
30: Ran 83 tests in 264.273s
30: 
30: OK (skipped=2)
30/45 Test #30: py_test_tools_smoke ..............   Passed  264.33 sec
test 31
      Start 31: py_test_tools_memleak

31: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_test_tools_memleak" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_tools_memleak.py"
31: Test timeout computed to be: 9.99988e+06
31: cannot attach uprobe, Device or resource busy
31: .cannot attach uprobe, Device or resource busy
31: .cannot attach uprobe, Device or resource busy
31: .cannot attach uprobe, Device or resource busy
31: .cannot attach uprobe, Device or resource busy
31: .cannot attach uprobe, Device or resource busy
31: .cannot attach uprobe, Device or resource busy
31: .cannot attach uprobe, Device or resource busy
31: .
31: ----------------------------------------------------------------------
31: Ran 8 tests in 21.498s
31: 
31: OK
31/45 Test #31: py_test_tools_memleak ............   Passed   21.54 sec
test 32
      Start 32: py_test_usdt

32: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_test_usdt" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_usdt.py"
32: Test timeout computed to be: 9.99988e+06
32: <stdin>:23:17: warning: null character(s) preserved in literal
32: <stdin>:28:17: warning: null character(s) preserved in literal
32: clang -cc1 -triple x86_64-unknown-linux-gnu -emit-llvm-bc -emit-llvm-uselists -disable-free -disable-llvm-verifier -discard-value-names -main-file-name main.c -mrelocation-model static -mthread-model posix -fmath-errno -masm-verbose -mconstructor-aliases -fuse-init-array -target-cpu x86-64 -momit-leaf-frame-pointer -dwarf-column-info -debugger-tuning=gdb -coverage-file /usr/src/kernels/4.13.16-100.fc25.x86_64/main.c -nostdsysteminc -nobuiltininc -resource-dir ../lib64/clang/3.9.1 -isystem /virtual/lib/clang/include -include ./include/linux/kconfig.h -include /virtual/include/bcc/bpf.h -include /virtual/include/bcc/helpers.h -isystem /virtual/include -I /home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python -D __BPF_TRACING__ -I arch/x86/include/ -I /lib/modules/4.13.16-100.fc25.x86_64/build/arch/x86/include/generated -I include -I /lib/modules/4.13.16-100.fc25.x86_64/build/include -I arch/x86/include/uapi -I /lib/modules/4.13.16-100.fc25.x86_64/build/arch/x86/include/generated/uapi -I include/uapi -I /lib/modules/4.13.16-100.fc25.x86_64/build/include/generated/uapi -D __KERNEL__ -D KBUILD_MODNAME="bcc" -O2 -Wno-deprecated-declarations -Wno-gnu-variable-sized-type-not-at-end -Wno-pragma-once-outside-header -Wno-address-of-packed-member -Wno-unknown-warning-option -Wno-unused-value -Wno-pointer-sign -fdebug-compilation-dir /usr/src/kernels/4.13.16-100.fc25.x86_64 -ferror-limit 19 -fmessage-length 0 -fobjc-runtime=gcc -fdiagnostics-show-option -vectorize-loops -vectorize-slp -o main.bc -x c /virtual/main.c
32: #if defined(BPF_LICENSE)
32: #error BPF_LICENSE cannot be specified through cflags
32: #endif
32: #if !defined(CONFIG_CC_STACKPROTECTOR)
32: #if defined(CONFIG_CC_STACKPROTECTOR_AUTO) \
32:     || defined(CONFIG_CC_STACKPROTECTOR_REGULAR) \
32:     || defined(CONFIG_CC_STACKPROTECTOR_STRONG)
32: #define CONFIG_CC_STACKPROTECTOR
32: #endif
32: #endif
32: #define bpf_probe_read_kernel bpf_probe_read
32: #define bpf_probe_read_kernel_str bpf_probe_read_str
32: #define bpf_probe_read_user bpf_probe_read
32: #define bpf_probe_read_user_str bpf_probe_read_str
32: #include <uapi/linux/ptrace.h>
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace1_1(struct pt_regs *ctx, void *dest, size_t len) {
32:   if (len != sizeof(int8_t)) return -1;
32:   switch(PT_REGS_IP(ctx)) {
32:   case 0x400697ULL: *((int8_t *)dest) = ctx->ax; __asm__ __volatile__("": : :"memory"); return 0;
32:   case 0x4006a0ULL: *((int8_t *)dest) = ctx->ax; __asm__ __volatile__("": : :"memory"); return 0;
32:   }
32:   return -1;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace1_2(struct pt_regs *ctx, void *dest, size_t len) {
32:   if (len != sizeof(int32_t)) return -1;
32:   switch(PT_REGS_IP(ctx)) {
32:   case 0x400697ULL: { u64 __addr = ctx->bp + -24; __asm__ __volatile__("": : :"memory"); int32_t __res = 0x0; bpf_probe_read_user(&__res, sizeof(__res), (void *)__addr); *((int32_t *)dest) = __res; } return 0;
32:   case 0x4006a0ULL: { u64 __addr = ctx->bp + -20; __asm__ __volatile__("": : :"memory"); int32_t __res = 0x0; bpf_probe_read_user(&__res, sizeof(__res), (void *)__addr); *((int32_t *)dest) = __res; } return 0;
32:   }
32:   return -1;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace3_1(struct pt_regs *ctx, void *dest, size_t len) {
32:   if (len != sizeof(int32_t)) return -1;
32:   switch(PT_REGS_IP(ctx)) {
32:   case 0x400698ULL: { u64 __addr = ctx->bp + -20; __asm__ __volatile__("": : :"memory"); int32_t __res = 0x0; bpf_probe_read_user(&__res, sizeof(__res), (void *)__addr); *((int32_t *)dest) = __res; } return 0;
32:   case 0x4006b7ULL: *((int32_t *)dest) = ctx->ax; __asm__ __volatile__("": : :"memory"); return 0;
32:   }
32:   return -1;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace3_2(struct pt_regs *ctx, void *dest, size_t len) {
32:   if (len != sizeof(int32_t)) return -1;
32:   switch(PT_REGS_IP(ctx)) {
32:   case 0x400698ULL: { u64 __addr = ctx->bp + -24; __asm__ __volatile__("": : :"memory"); int32_t __res = 0x0; bpf_probe_read_user(&__res, sizeof(__res), (void *)__addr); *((int32_t *)dest) = __res; } return 0;
32:   case 0x4006b7ULL: *((int32_t *)dest) = ctx->dx; __asm__ __volatile__("": : :"memory"); return 0;
32:   }
32:   return -1;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace2_1(struct pt_regs *ctx, void *dest, size_t len) {
32:   if (len != sizeof(int32_t)) return -1;
32:   *((int32_t *)dest) = 5;
32:   return 0;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace2_2(struct pt_regs *ctx, void *dest, size_t len) {
32:   if (len != sizeof(int8_t)) return -1;
32:   *((int8_t *)dest) = ctx->ax; __asm__ __volatile__("": : :"memory");
32:   return 0;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace4_1(struct pt_regs *ctx, void *dest, size_t len) {
32:   if (len != sizeof(int64_t)) return -1;
32:   *((int64_t *)dest) = ctx->ax; __asm__ __volatile__("": : :"memory");
32:   return 0;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace4_2(struct pt_regs *ctx, void *dest, size_t len) {
32:   if (len != sizeof(int64_t)) return -1;
32:   *((int64_t *)dest) = ctx->dx; __asm__ __volatile__("": : :"memory");
32:   return 0;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace5_1(struct pt_regs *ctx, void *dest, size_t len) {
32:   if (len != sizeof(int64_t)) return -1;
32:   *((int64_t *)dest) = ctx->dx; __asm__ __volatile__("": : :"memory");
32:   return 0;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace5_2(struct pt_regs *ctx, void *dest, size_t len) {
32:   if (len != sizeof(int64_t)) return -1;
32:   *((int64_t *)dest) = ctx->ax; __asm__ __volatile__("": : :"memory");
32:   return 0;
32: }
32: 
32: #include <linux/blkdev.h>
32: #include <uapi/linux/ptrace.h>
32: 
32: struct probe_result_t1 {
32:   char v1;
32:   int  v2;
32: };
32: 
32: struct probe_result_t2 {
32:   int  v1;
32:   char v2;
32: };
32: 
32: struct probe_result_t3 {
32:   int v1;
32:   int v2;
32: };
32: 
32: struct probe_result_t4 {
32:   u64  v1;
32:   char v2[8];
32: };
32: 
32: struct probe_result_t5 {
32:   char v1[8];
32:   u64  v2;
32: };
32: 
32: BPF_PERF_OUTPUT(event1);
32: BPF_PERF_OUTPUT(event2);
32: BPF_PERF_OUTPUT(event3);
32: BPF_PERF_OUTPUT(event4);
32: BPF_PERF_OUTPUT(event5);
32: 
32: __attribute__((section(".bpf.fn.do_trace1")))
32: int do_trace1(struct pt_regs *ctx) {
32: 
32:     struct probe_result_t1 result = {};
32:     _bpf_readarg_do_trace1_1(ctx, &result.v1, sizeof(*(&result.v1)));
32:     _bpf_readarg_do_trace1_2(ctx, &result.v2, sizeof(*(&result.v2)));
32:     bpf_perf_event_output(ctx, bpf_pseudo_fd(1, -1), CUR_CPU_IDENTIFIER, &result, sizeof(result));
32:     return 0;
32: };
32: __attribute__((section(".bpf.fn.do_trace2")))
32: int do_trace2(struct pt_regs *ctx) {
32: 
32:     struct probe_result_t2 result = {};
32:     _bpf_readarg_do_trace2_1(ctx, &result.v1, sizeof(*(&result.v1)));
32:     _bpf_readarg_do_trace2_2(ctx, &result.v2, sizeof(*(&result.v2)));
32:     bpf_perf_event_output(ctx, bpf_pseudo_fd(1, -2), CUR_CPU_IDENTIFIER, &result, sizeof(result));
32:     return 0;
32: }
32: __attribute__((section(".bpf.fn.do_trace3")))
32: int do_trace3(struct pt_regs *ctx) {
32: 
32:     struct probe_result_t3 result = {};
32:     _bpf_readarg_do_trace3_1(ctx, &result.v1, sizeof(*(&result.v1)));
32:     _bpf_readarg_do_trace3_2(ctx, &result.v2, sizeof(*(&result.v2)));
32:     bpf_perf_event_output(ctx, bpf_pseudo_fd(1, -3), CUR_CPU_IDENTIFIER, &result, sizeof(result));
32:     return 0;
32: }
32: __attribute__((section(".bpf.fn.do_trace4")))
32: int do_trace4(struct pt_regs *ctx) {
32: 
32:     struct probe_result_t4 result = {};
32:     _bpf_readarg_do_trace4_1(ctx, &result.v1, sizeof(*(&result.v1)));
32:     ({ u64 __addr = 0x0; _bpf_readarg_do_trace4_2(ctx, &__addr, sizeof(__addr));bpf_probe_read(&result.v2, sizeof(result.v2), (void *)__addr);});
32:     bpf_perf_event_output(ctx, bpf_pseudo_fd(1, -4), CUR_CPU_IDENTIFIER, &result, sizeof(result));
32:     return 0;
32: }
32: __attribute__((section(".bpf.fn.do_trace5")))
32: int do_trace5(struct pt_regs *ctx) {
32: 
32:     struct probe_result_t5 result = {};
32:     ({ u64 __addr = 0x0; _bpf_readarg_do_trace5_1(ctx, &__addr, sizeof(__addr));bpf_probe_read(&result.v1, sizeof(result.v1), (void *)__addr);});
32:     _bpf_readarg_do_trace5_2(ctx, &result.v2, sizeof(*(&result.v2)));
32:     bpf_perf_event_output(ctx, bpf_pseudo_fd(1, -5), CUR_CPU_IDENTIFIER, &result, sizeof(result));
32:     return 0;
32: }
32: 
32: #include <bcc/footer.h>
32: .
32: ----------------------------------------------------------------------
32: Ran 1 test in 4.051s
32: 
32: OK
32: Running from kernel directory at: /lib/modules/4.13.16-100.fc25.x86_64/source
32: str5
32: str4
32: str7
32: str6
32: str9
32: str8
32/45 Test #32: py_test_usdt .....................   Passed    4.29 sec
test 33
      Start 33: py_test_usdt2

33: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_test_usdt2" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_usdt2.py"
33: Test timeout computed to be: 9.99988e+06
33: .
33: ----------------------------------------------------------------------
33: Ran 1 test in 3.048s
33: 
33: OK
33/45 Test #33: py_test_usdt2 ....................   Passed    3.19 sec
test 34
      Start 34: py_test_usdt3

34: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_test_usdt3" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_usdt3.py"
34: Test timeout computed to be: 9.99988e+06
34: test:probe [sema 0x0]
34:   location #1 /proc/7377/root/tmp/tmpnOgRvn/liba.so 0x657
34:     argument #1 4 signed   bytes @ *(bp - 4)
34:   location #2 /proc/7377/root/tmp/tmpnOgRvn/libb.so 0x657
34:     argument #1 4 signed   bytes @ *(bp - 4)
34:   location #3 /proc/7377/root/tmp/tmpnOgRvn/a.out 0x40070d
34:     argument #1 4 signed   bytes @ *(bp - 4)
34: test_dup_name:probe [sema 0x0]
34:   location #1 /proc/7377/root/tmp/tmpnOgRvn/liba.so 0x658
34:     argument #1 4 signed   bytes @ *(bp - 4)
34:   location #2 /proc/7377/root/tmp/tmpnOgRvn/libb.so 0x658
34:     argument #1 4 signed   bytes @ *(bp - 4)
34:   location #3 /proc/7377/root/tmp/tmpnOgRvn/a.out 0x40070e
34:     argument #1 4 signed   bytes @ *(bp - 4)
34: libc:setjmp [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x35651
34:     argument #1 8 unsigned bytes @ di
34:     argument #2 4 signed   bytes @ si
34:     argument #3 8 unsigned bytes @ ax
34: libc:longjmp [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x35733
34:     argument #1 8 unsigned bytes @ di
34:     argument #2 4 signed   bytes @ si
34:     argument #3 8 unsigned bytes @ dx
34:   location #2 /proc/7377/root/usr/lib64/libc-2.24.so 0x119fd3
34:     argument #1 8 unsigned bytes @ di
34:     argument #2 4 signed   bytes @ si
34:     argument #3 8 unsigned bytes @ dx
34: libc:longjmp_target [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x3574f
34:     argument #1 8 unsigned bytes @ di
34:     argument #2 4 signed   bytes @ ax
34:     argument #3 8 unsigned bytes @ dx
34:   location #2 /proc/7377/root/usr/lib64/libc-2.24.so 0x119fef
34:     argument #1 8 unsigned bytes @ di
34:     argument #2 4 signed   bytes @ ax
34:     argument #3 8 unsigned bytes @ dx
34: libc:memory_heap_new [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x7fde8
34:     argument #1 8 unsigned bytes @ bx
34:     argument #2 8 unsigned bytes @ bp
34: libc:memory_arena_reuse_free_list [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x8013c
34:     argument #1 8 unsigned bytes @ dx
34: libc:memory_sbrk_less [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x8033e
34:     argument #1 8 unsigned bytes @ ax
34:     argument #2 8 signed   bytes @ r12
34: libc:memory_arena_reuse_wait [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x8042c
34:     argument #1 8 unsigned bytes @ r8
34:     argument #2 8 unsigned bytes @ r8
34:     argument #3 8 unsigned bytes @ bx
34: libc:memory_arena_reuse [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x8055c
34:     argument #1 8 unsigned bytes @ dx
34:     argument #2 8 unsigned bytes @ bx
34: libc:memory_arena_new [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x807d8
34:     argument #1 8 unsigned bytes @ dx
34:     argument #2 8 unsigned bytes @ bp
34: libc:memory_arena_retry [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x809d9
34:     argument #1 8 unsigned bytes @ si
34:     argument #2 8 unsigned bytes @ di
34: libc:memory_heap_free [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x8272c
34:     argument #1 8 unsigned bytes @ di
34:     argument #2 8 unsigned bytes @ ax
34: libc:memory_heap_less [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x82902
34:     argument #1 8 unsigned bytes @ r15
34:     argument #2 8 unsigned bytes @ r10
34: libc:memory_heap_more [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x834c5
34:     argument #1 8 unsigned bytes @ r8
34:     argument #2 8 unsigned bytes @ cx
34: libc:memory_sbrk_more [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x837a7
34:     argument #1 8 unsigned bytes @ ax
34:     argument #2 8 signed   bytes @ dx
34: libc:memory_malloc_retry [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x85fb8
34:     argument #1 8 unsigned bytes @ bp
34:   location #2 /proc/7377/root/usr/lib64/libc-2.24.so 0x87748
34:     argument #1 8 unsigned bytes @ bp
34: libc:memory_mallopt_free_dyn_thresholds [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x862e1
34:     argument #1 8 unsigned bytes @ ax
34:     argument #2 8 unsigned bytes @ cx
34: libc:memory_realloc_retry [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x86740
34:     argument #1 8 unsigned bytes @ r12
34:     argument #2 8 unsigned bytes @ bp
34:   location #2 /proc/7377/root/usr/lib64/libc-2.24.so 0x87ae0
34:     argument #1 8 unsigned bytes @ r12
34:     argument #2 8 unsigned bytes @ bp
34: libc:memory_memalign_retry [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x869e8
34:     argument #1 8 unsigned bytes @ r12
34:     argument #2 8 unsigned bytes @ bx
34:   location #2 /proc/7377/root/usr/lib64/libc-2.24.so 0x87da8
34:     argument #1 8 unsigned bytes @ r12
34:     argument #2 8 unsigned bytes @ bx
34:   location #3 /proc/7377/root/usr/lib64/libc-2.24.so 0x88060
34:     argument #1 8 unsigned bytes @ r12
34:     argument #2 8 unsigned bytes @ bx
34:   location #4 /proc/7377/root/usr/lib64/libc-2.24.so 0x88330
34:     argument #1 8 unsigned bytes @ r12
34:     argument #2 8 unsigned bytes @ bx
34:   location #5 /proc/7377/root/usr/lib64/libc-2.24.so 0x890c8
34:     argument #1 8 unsigned bytes @ bx
34:     argument #2 8 unsigned bytes @ r12
34: libc:memory_calloc_retry [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x86cf0
34:     argument #1 8 unsigned bytes @ r12
34: libc:memory_mallopt [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x870a4
34:     argument #1 4 signed   bytes @ bp
34:     argument #2 4 signed   bytes @ bx
34: libc:memory_mallopt_mxfast [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x870d2
34:     argument #1 4 signed   bytes @ bx
34:     argument #2 8 unsigned bytes @ *(&global_max_fast + 0)
34: libc:memory_mallopt_arena_max [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x87100
34:     argument #1 4 signed   bytes @ bx
34:     argument #2 8 unsigned bytes @ *(&mp_ + 32)
34: libc:memory_mallopt_arena_test [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x87159
34:     argument #1 4 signed   bytes @ bx
34:     argument #2 8 unsigned bytes @ *(&mp_ + 24)
34: libc:memory_mallopt_mmap_max [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x87168
34:     argument #1 4 signed   bytes @ bx
34:     argument #2 4 signed   bytes @ *(&mp_ + 44)
34:     argument #3 4 signed   bytes @ *(&mp_ + 52)
34: libc:memory_mallopt_mmap_threshold [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x8718a
34:     argument #1 4 signed   bytes @ bx
34:     argument #2 8 unsigned bytes @ *(&mp_ + 16)
34:     argument #3 4 signed   bytes @ *(&mp_ + 52)
34: libc:memory_mallopt_top_pad [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x871b0
34:     argument #1 4 signed   bytes @ bx
34:     argument #2 8 unsigned bytes @ *(&mp_ + 8)
34:     argument #3 4 signed   bytes @ *(&mp_ + 52)
34: libc:memory_mallopt_trim_threshold [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x871d0
34:     argument #1 4 signed   bytes @ bx
34:     argument #2 8 unsigned bytes @ *(&mp_ + 0)
34:     argument #3 4 signed   bytes @ *(&mp_ + 52)
34: libc:memory_mallopt_perturb [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x871f0
34:     argument #1 4 signed   bytes @ bx
34:     argument #2 4 signed   bytes @ *(&perturb_byte + 0)
34: libc:memory_mallopt_check_action [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x87208
34:     argument #1 4 signed   bytes @ bx
34:     argument #2 4 signed   bytes @ *(&check_action + 0)
34: libc:lll_lock_wait_private [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/libc-2.24.so 0x115e44
34:     argument #1 8 unsigned bytes @ di
34: rtld:init_start [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/ld-2.24.so 0x38b7
34:     argument #1 4 signed   bytes @ 0
34:     argument #2 8 unsigned bytes @ bx
34: rtld:init_complete [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/ld-2.24.so 0x40e9
34:     argument #1 4 signed   bytes @ 0
34:     argument #2 8 unsigned bytes @ bx
34: rtld:map_failed [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/ld-2.24.so 0x5836
34:     argument #1 8 signed   bytes @ *(sp + 72)
34:     argument #2 8 unsigned bytes @ bp
34: rtld:map_start [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/ld-2.24.so 0x67aa
34:     argument #1 8 signed   bytes @ *(bp + 40)
34:     argument #2 8 unsigned bytes @ bx
34: rtld:map_complete [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/ld-2.24.so 0x15c67
34:     argument #1 8 signed   bytes @ *(r15 + 40)
34:     argument #2 8 unsigned bytes @ bx
34:     argument #3 8 unsigned bytes @ *(bp - 104)
34: rtld:reloc_complete [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/ld-2.24.so 0x15e31
34:     argument #1 8 signed   bytes @ *(ax + 40)
34:     argument #2 8 unsigned bytes @ *(bp - 120)
34:     argument #3 8 unsigned bytes @ *(bp - 104)
34: rtld:reloc_start [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/ld-2.24.so 0x15fe6
34:     argument #1 8 signed   bytes @ *(cx + 40)
34:     argument #2 8 unsigned bytes @ *(bp - 120)
34: rtld:unmap_start [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/ld-2.24.so 0x16c2a
34:     argument #1 8 signed   bytes @ r15
34:     argument #2 8 unsigned bytes @ r14
34: rtld:unmap_complete [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/ld-2.24.so 0x16eb1
34:     argument #1 8 signed   bytes @ *(bp - 112)
34:     argument #2 8 unsigned bytes @ bx
34: rtld:setjmp [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/ld-2.24.so 0x1be6d
34:     argument #1 8 unsigned bytes @ di
34:     argument #2 4 signed   bytes @ si
34:     argument #3 8 unsigned bytes @ ax
34: rtld:longjmp [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/ld-2.24.so 0x1bead
34:     argument #1 8 unsigned bytes @ di
34:     argument #2 4 signed   bytes @ si
34:     argument #3 8 unsigned bytes @ dx
34: rtld:longjmp_target [sema 0x0]
34:   location #1 /proc/7377/root/usr/lib64/ld-2.24.so 0x1bec9
34:     argument #1 8 unsigned bytes @ di
34:     argument #2 4 signed   bytes @ ax
34:     argument #3 8 unsigned bytes @ dx
34: .
34: ----------------------------------------------------------------------
34: Ran 1 test in 1.129s
34: 
34: OK
34: temp directory: /tmp/tmpnOgRvn
34/45 Test #34: py_test_usdt3 ....................   Passed    1.26 sec
test 35
      Start 35: py_test_license

35: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_test_license" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_license.py"
35: Test timeout computed to be: 9.99988e+06
35: /virtual/main.c:2:2: error: BPF_LICENSE cannot be specified through cflags
35: #error BPF_LICENSE cannot be specified through cflags
35:  ^
35: 1 error generated.
35: x/virtual/main.c:2:2: error: BPF_LICENSE cannot be specified through cflags
35: #error BPF_LICENSE cannot be specified through cflags
35:  ^
35: 1 error generated.
35: x.bpf: Failed to load program: Invalid argument
35: 0: (bf) r6 = r1
35: 1: (85) call bpf_ktime_get_ns#5
35: cannot call GPL only function from proprietary program
35: 
35: x../virtual/main.c:2:2: error: BPF_LICENSE cannot be specified through cflags
35: #error BPF_LICENSE cannot be specified through cflags
35:  ^
35: 1 error generated.
35: xbpf: Failed to load program: Invalid argument
35: 0: (bf) r6 = r1
35: 1: (85) call bpf_ktime_get_ns#5
35: cannot call GPL only function from proprietary program
35: 
35: x..
35: ----------------------------------------------------------------------
35: Ran 10 tests in 2.273s
35: 
35: OK (expected failures=5)
35/45 Test #35: py_test_license ..................   Passed    2.34 sec
test 36
      Start 36: py_test_free_bcc_memory

36: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_test_free_bcc_memory" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_free_bcc_memory.py"
36: Test timeout computed to be: 9.99988e+06
36: .
36: ----------------------------------------------------------------------
36: Ran 1 test in 0.220s
36: 
36: OK
36: Before freeing llvm memory: RssFile:  58188 kB
36: After  freeing llvm memory: RssFile:  42724 kB
36/45 Test #36: py_test_free_bcc_memory ..........   Passed    0.29 sec
test 37
      Start 37: py_test_rlimit

37: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_test_rlimit" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_rlimit.py"
37: Test timeout computed to be: 9.99988e+06
37: could not open bpf map: unused, error: Operation not permitted
37: .
37: ----------------------------------------------------------------------
37: Ran 1 test in 0.381s
37: 
37: OK
37/45 Test #37: py_test_rlimit ...................   Passed    0.45 sec
test 38
      Start 38: py_test_lpm_trie

38: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_test_lpm_trie" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_lpm_trie.py"
38: Test timeout computed to be: 9.99988e+06
38: ..
38: ----------------------------------------------------------------------
38: Ran 2 tests in 0.379s
38: 
38: OK
38/45 Test #38: py_test_lpm_trie .................   Passed    0.46 sec
test 39
      Start 39: py_ringbuf

39: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_ringbuf" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_ringbuf.py"
39: Test timeout computed to be: 9.99988e+06
39: ssss
39: ----------------------------------------------------------------------
39: Ran 4 tests in 0.000s
39: 
39: OK (skipped=4)
39/45 Test #39: py_ringbuf .......................   Passed    0.07 sec
test 40
      Start 40: py_queuestack

40: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_queuestack" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_queuestack.py"
40: Test timeout computed to be: 9.99988e+06
40: ss
40: ----------------------------------------------------------------------
40: Ran 2 tests in 0.000s
40: 
40: OK (skipped=2)
40/45 Test #40: py_queuestack ....................   Passed    0.07 sec
test 41
      Start 41: py_test_map_batch_ops

41: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "py_test_map_batch_ops" "sudo" "/home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/python/test_map_batch_ops.py"
41: Test timeout computed to be: 9.99988e+06
41: sssss
41: ----------------------------------------------------------------------
41: Ran 5 tests in 0.000s
41: 
41: OK (skipped=5)
41/45 Test #41: py_test_map_batch_ops ............   Passed    0.07 sec
test 42
      Start 42: lua_test_clang

42: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "lua_test_clang" "sudo" "/usr/bin/luajit" "test_clang.lua"
42: Test timeout computed to be: 9.99988e+06
42: /virtual/main.c:1:30: error: expected expression
42: int failure(void *ctx) { if (); return 0; }
42:                              ^
42: 1 error generated.
42: ....................
42: Ran 20 tests in 12.129 seconds, 20 successes, 0 failures
42: OK
42/45 Test #42: lua_test_clang ...................   Passed   12.32 sec
test 43
      Start 43: lua_test_uprobes

43: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "lua_test_uprobes" "sudo" "/usr/bin/luajit" "test_uprobes.lua"
43: Test timeout computed to be: 9.99988e+06
43: Python 2.7.13
43: Arena 0:
43: system bytes     =   21618688
43: in use bytes     =    1133856
43: Total (incl. mmap):
43: system bytes     =   21618688
43: in use bytes     =    1133856
43: max mmap regions =          6
43: max mmap bytes   =    8413184
43: ..
43: Ran 2 tests in 0.410 seconds, 2 successes, 0 failures
43: OK
43/45 Test #43: lua_test_uprobes .................   Passed    0.49 sec
test 44
      Start 44: lua_test_dump

44: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/build/tests/wrapper.sh "lua_test_dump" "sudo" "/usr/bin/luajit" "test_dump.lua"
44: Test timeout computed to be: 9.99988e+06
44: .
44: Ran 1 tests in 0.187 seconds, 1 successes, 0 failures
44: OK
44/45 Test #44: lua_test_dump ....................   Passed    0.22 sec
test 45
      Start 45: lua_test_standalone

45: Test command: /home/fedora/jenkins/workspace/bcc-pr/label/fc25/tests/lua/test_standalone.sh
45: Test timeout computed to be: 9.99988e+06
45: + cd src/lua
45: + [[ ! -x bcc-lua ]]
45: + echo 'bcc-lua not built --- skipping'
45: bcc-lua not built --- skipping
45: + exit 0
45/45 Test #45: lua_test_standalone ..............   Passed    0.00 sec

100% tests passed, 0 tests failed out of 45

Total Test time (real) = 456.34 sec
++ head -n 1 Testing/TAG
+ cp Testing/20210501-1611/Test.xml ./CTestResults.xml
Taking single-use slave fedora25-slave-8a9 offline.
Finished: SUCCESS