Console Output

Skipping 429 KB.. Full Log
1: -
1: -	while (!bpf_map_get_next_key(fd, &lookup_key, &next_key)) {
1: -		err = bpf_map_lookup_elem(fd, &next_key, &counter);
1: -		if (err < 0) {
1: -			fprintf(stderr, "failed to lookup counters: %d\n", err);
1: -			return -1;
1: -		}
1: -		lookup_key = next_key;
1: -		total = counter.sequential + counter.random;
1: -		if (!total)
1: -			continue;
1: -		if (env.timestamp) {
1: -			time(&t);
1: -			tm = localtime(&t);
1: -			strftime(ts, sizeof(ts), "%H:%M:%S", tm);
1: -			printf("%-9s ", ts);
1: -		}
1: -		partition = partitions__get_by_dev(partitions, next_key);
1: -		printf("%-7s %5ld %5ld %8d %10lld\n",
1: -			partition ? partition->name : "Unknown",
1: -			counter.random * 100L / total,
1: -			counter.sequential * 100L / total, total,
1: -			counter.bytes / 1024);
1: -	}
1: -
1: -	lookup_key = -1;
1: -	while (!bpf_map_get_next_key(fd, &lookup_key, &next_key)) {
1: -		err = bpf_map_delete_elem(fd, &next_key);
1: -		if (err < 0) {
1: -			fprintf(stderr, "failed to cleanup counters: %d\n", err);
1: -			return -1;
1: -		}
1: -		lookup_key = next_key;
1: -	}
1: -
1: -	return 0;
1: +static int print_map(struct bpf_map *counters, struct partitions *partitions) {
1: +  __u32 total, lookup_key = -1, next_key;
1: +  int err, fd = bpf_map__fd(counters);
1: +  const struct partition *partition;
1: +  struct counter counter;
1: +  struct tm *tm;
1: +  char ts[32];
1: +  time_t t;
1: +
1: +  while (!bpf_map_get_next_key(fd, &lookup_key, &next_key)) {
1: +    err = bpf_map_lookup_elem(fd, &next_key, &counter);
1: +    if (err < 0) {
1: +      fprintf(stderr, "failed to lookup counters: %d\n", err);
1: +      return -1;
1: +    }
1: +    lookup_key = next_key;
1: +    total = counter.sequential + counter.random;
1: +    if (!total)
1: +      continue;
1: +    if (env.timestamp) {
1: +      time(&t);
1: +      tm = localtime(&t);
1: +      strftime(ts, sizeof(ts), "%H:%M:%S", tm);
1: +      printf("%-9s ", ts);
1: +    }
1: +    partition = partitions__get_by_dev(partitions, next_key);
1: +    printf("%-7s %5ld %5ld %8d %10lld\n",
1: +           partition ? partition->name : "Unknown",
1: +           counter.random * 100L / total, counter.sequential * 100L / total,
1: +           total, counter.bytes / 1024);
1: +  }
1: +
1: +  lookup_key = -1;
1: +  while (!bpf_map_get_next_key(fd, &lookup_key, &next_key)) {
1: +    err = bpf_map_delete_elem(fd, &next_key);
1: +    if (err < 0) {
1: +      fprintf(stderr, "failed to cleanup counters: %d\n", err);
1: +      return -1;
1: +    }
1: +    lookup_key = next_key;
1: +  }
1: +
1: +  return 0;
1:  }
1:  
1:  int main(int argc, char **argv)
1:  {
1: -	struct partitions *partitions = NULL;
1: -	const struct partition *partition;
1: -	static const struct argp argp = {
1: -		.options = opts,
1: -		.parser = parse_arg,
1: -		.doc = argp_program_doc,
1: -	};
1: -	struct biopattern_bpf *obj;
1: -	int err;
1: -
1: -	err = argp_parse(&argp, argc, argv, 0, NULL, NULL);
1: -	if (err)
1: -		return err;
1: -
1: -	libbpf_set_print(libbpf_print_fn);
1: -
1: -	err = bump_memlock_rlimit();
1: -	if (err) {
1: -		fprintf(stderr, "failed to increase rlimit: %d\n", err);
1: -		return 1;
1: +  struct partitions *partitions = NULL;
1: +  const struct partition *partition;
1: +  static const struct argp argp = {
1: +      .options = opts,
1: +      .parser = parse_arg,
1: +      .doc = argp_program_doc,
1: +  };
1: +  struct biopattern_bpf *obj;
1: +  int err;
1: +
1: +  err = argp_parse(&argp, argc, argv, 0, NULL, NULL);
1: +  if (err)
1: +    return err;
1: +
1: +  libbpf_set_print(libbpf_print_fn);
1: +
1: +  err = bump_memlock_rlimit();
1: +  if (err) {
1: +    fprintf(stderr, "failed to increase rlimit: %d\n", err);
1: +    return 1;
1:  	}
1:  
1:  	obj = biopattern_bpf__open();
1: @@ -182,23 +180,23 @@ int main(int argc, char **argv)
1:  		return 1;
1:  	}
1:  
1: -	partitions = partitions__load();
1: -	if (!partitions) {
1: -		fprintf(stderr, "failed to load partitions info\n");
1: -		goto cleanup;
1: -	}
1: -
1: -	/* initialize global data (filtering options) */
1: -	if (env.disk) {
1: -		partition = partitions__get_by_name(partitions, env.disk);
1: -		if (!partition) {
1: -			fprintf(stderr, "invaild partition name: not exist\n");
1: -			goto cleanup;
1: -		}
1: -		obj->rodata->targ_dev = partition->dev;
1: -	}
1: -
1: -	err = biopattern_bpf__load(obj);
1: +        partitions = partitions__load();
1: +        if (!partitions) {
1: +          fprintf(stderr, "failed to load partitions info\n");
1: +          goto cleanup;
1: +        }
1: +
1: +        /* initialize global data (filtering options) */
1: +        if (env.disk) {
1: +          partition = partitions__get_by_name(partitions, env.disk);
1: +          if (!partition) {
1: +            fprintf(stderr, "invaild partition name: not exist\n");
1: +            goto cleanup;
1: +          }
1: +          obj->rodata->targ_dev = partition->dev;
1: +        }
1: +
1: +        err = biopattern_bpf__load(obj);
1:  	if (err) {
1:  		fprintf(stderr, "failed to load BPF object: %d\n", err);
1:  		goto cleanup;
1: @@ -216,15 +214,15 @@ int main(int argc, char **argv)
1:  		"end.\n");
1:  	if (env.timestamp)
1:  		printf("%-9s ", "TIME");
1: -	printf("%-7s %5s %5s %8s %10s\n", "DISK", "%RND", "%SEQ",
1: -		"COUNT", "KBYTES");
1: +        printf("%-7s %5s %5s %8s %10s\n", "DISK", "%RND", "%SEQ", "COUNT",
1: +               "KBYTES");
1:  
1: -	/* main: poll */
1: +        /* main: poll */
1:  	while (1) {
1:  		sleep(env.interval);
1:  
1: -		err = print_map(obj->maps.counters, partitions);
1: -		if (err)
1: +                err = print_map(obj->maps.counters, partitions);
1: +                if (err)
1:  			break;
1:  
1:  		if (exiting || --env.times == 0)
1: @@ -233,7 +231,7 @@ int main(int argc, char **argv)
1:  
1:  cleanup:
1:  	biopattern_bpf__destroy(obj);
1: -	partitions__free(partitions);
1: +        partitions__free(partitions);
1:  
1: -	return err != 0;
1: +        return err != 0;
1:  }
1: diff --git a/libbpf-tools/biopattern.h b/libbpf-tools/biopattern.h
1: index 18860a53..7f59951d 100644
1: --- a/libbpf-tools/biopattern.h
1: +++ b/libbpf-tools/biopattern.h
1: @@ -2,7 +2,7 @@
1:  #ifndef __BIOPATTERN_H
1:  #define __BIOPATTERN_H
1:  
1: -#define DISK_NAME_LEN	32
1: +#define DISK_NAME_LEN 32
1:  
1:  struct counter {
1:  	__u64 last_sector;
1: diff --git a/libbpf-tools/biosnoop.bpf.c b/libbpf-tools/biosnoop.bpf.c
1: index 20f0c778..fe69a879 100644
1: --- a/libbpf-tools/biosnoop.bpf.c
1: +++ b/libbpf-tools/biosnoop.bpf.c
1: @@ -6,7 +6,7 @@
1:  #include <bpf/bpf_tracing.h>
1:  #include "biosnoop.h"
1:  
1: -#define MAX_ENTRIES	10240
1: +#define MAX_ENTRIES 10240
1:  
1:  const volatile bool targ_queued = false;
1:  const volatile dev_t targ_dev = -1;
1: @@ -27,7 +27,7 @@ struct {
1:  struct stage {
1:  	u64 insert;
1:  	u64 issue;
1: -	dev_t dev;
1: +        dev_t dev;
1:  };
1:  
1:  struct {
1: @@ -56,15 +56,11 @@ int trace_pid(struct request *rq)
1:  }
1:  
1:  SEC("fentry/blk_account_io_start")
1: -int BPF_PROG(blk_account_io_start, struct request *rq)
1: -{
1: -	return trace_pid(rq);
1: -}
1: +int BPF_PROG(blk_account_io_start, struct request *rq) { return trace_pid(rq); }
1:  
1:  SEC("kprobe/blk_account_io_merge_bio")
1: -int BPF_KPROBE(blk_account_io_merge_bio, struct request *rq)
1: -{
1: -	return trace_pid(rq);
1: +int BPF_KPROBE(blk_account_io_merge_bio, struct request *rq) {
1: +  return trace_pid(rq);
1:  }
1:  
1:  static __always_inline
1: @@ -75,13 +71,14 @@ int trace_rq_start(struct request *rq, bool insert)
1:  
1:  	stagep = bpf_map_lookup_elem(&start, &rq);
1:  	if (!stagep) {
1: -		struct gendisk *disk = BPF_CORE_READ(rq, rq_disk);
1: -
1: -		stage.dev = disk ? MKDEV(BPF_CORE_READ(disk, major),
1: -				BPF_CORE_READ(disk, first_minor)) : 0;
1: -		if (targ_dev != -1 && targ_dev != stage.dev)
1: -			return 0;
1: -		stagep = &stage;
1: +          struct gendisk *disk = BPF_CORE_READ(rq, rq_disk);
1: +
1: +          stage.dev = disk ? MKDEV(BPF_CORE_READ(disk, major),
1: +                                   BPF_CORE_READ(disk, first_minor))
1: +                           : 0;
1: +          if (targ_dev != -1 && targ_dev != stage.dev)
1: +            return 0;
1: +          stagep = &stage;
1:  	}
1:  	if (insert)
1:  		stagep->insert = ts;
1: @@ -93,55 +90,50 @@ int trace_rq_start(struct request *rq, bool insert)
1:  }
1:  
1:  SEC("tp_btf/block_rq_insert")
1: -int BPF_PROG(block_rq_insert, struct request_queue *q, struct request *rq)
1: -{
1: -	return trace_rq_start(rq, true);
1: +int BPF_PROG(block_rq_insert, struct request_queue *q, struct request *rq) {
1: +  return trace_rq_start(rq, true);
1:  }
1:  
1:  SEC("tp_btf/block_rq_issue")
1: -int BPF_PROG(block_rq_issue, struct request_queue *q, struct request *rq)
1: -{
1: -	return trace_rq_start(rq, false);
1: +int BPF_PROG(block_rq_issue, struct request_queue *q, struct request *rq) {
1: +  return trace_rq_start(rq, false);
1:  }
1:  
1:  SEC("tp_btf/block_rq_complete")
1:  int BPF_PROG(block_rq_complete, struct request *rq, int error,
1: -	     unsigned int nr_bytes)
1: -{
1: -	u64 slot, ts = bpf_ktime_get_ns();
1: -	struct piddata *piddatap;
1: -	struct event event = {};
1: -	struct stage *stagep;
1: -	s64 delta;
1: -
1: -	stagep = bpf_map_lookup_elem(&start, &rq);
1: -	if (!stagep)
1: -		return 0;
1: -	delta = (s64)(ts - stagep->issue);
1: -	if (delta < 0)
1: -		goto cleanup;
1: -	piddatap = bpf_map_lookup_elem(&infobyreq, &rq);
1: -	if (!piddatap) {
1: -		event.comm[0] = '?';
1: -	} else {
1: -		__builtin_memcpy(&event.comm, piddatap->comm,
1: -				sizeof(event.comm));
1: -		event.pid = piddatap->pid;
1: -	}
1: -	event.delta = delta;
1: -	if (targ_queued && BPF_CORE_READ(rq, q, elevator)) {
1: -		if (!stagep->insert)
1: -			event.qdelta = -1; /* missed or don't insert entry */
1: -		else
1: -			event.qdelta = stagep->issue - stagep->insert;
1: -	}
1: -	event.ts = ts;
1: -	event.sector = rq->__sector;
1: -	event.len = rq->__data_len;
1: -	event.cmd_flags = rq->cmd_flags;
1: -	event.dev = stagep->dev;
1: -	bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU, &event,
1: -			sizeof(event));
1: +             unsigned int nr_bytes) {
1: +  u64 slot, ts = bpf_ktime_get_ns();
1: +  struct piddata *piddatap;
1: +  struct event event = {};
1: +  struct stage *stagep;
1: +  s64 delta;
1: +
1: +  stagep = bpf_map_lookup_elem(&start, &rq);
1: +  if (!stagep)
1: +    return 0;
1: +  delta = (s64)(ts - stagep->issue);
1: +  if (delta < 0)
1: +    goto cleanup;
1: +  piddatap = bpf_map_lookup_elem(&infobyreq, &rq);
1: +  if (!piddatap) {
1: +    event.comm[0] = '?';
1: +  } else {
1: +    __builtin_memcpy(&event.comm, piddatap->comm, sizeof(event.comm));
1: +    event.pid = piddatap->pid;
1: +  }
1: +  event.delta = delta;
1: +  if (targ_queued && BPF_CORE_READ(rq, q, elevator)) {
1: +    if (!stagep->insert)
1: +      event.qdelta = -1; /* missed or don't insert entry */
1: +    else
1: +      event.qdelta = stagep->issue - stagep->insert;
1: +  }
1: +  event.ts = ts;
1: +  event.sector = rq->__sector;
1: +  event.len = rq->__data_len;
1: +  event.cmd_flags = rq->cmd_flags;
1: +  event.dev = stagep->dev;
1: +  bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU, &event, sizeof(event));
1:  
1:  cleanup:
1:  	bpf_map_delete_elem(&start, &rq);
1: diff --git a/libbpf-tools/biosnoop.c b/libbpf-tools/biosnoop.c
1: index 3bdfd8c6..dfc317d9 100644
1: --- a/libbpf-tools/biosnoop.c
1: +++ b/libbpf-tools/biosnoop.c
1: @@ -31,15 +31,15 @@ static volatile __u64 start_ts;
1:  const char *argp_program_version = "biosnoop 0.1";
1:  const char *argp_program_bug_address = "<bpf@vger.kernel.org>";
1:  const char argp_program_doc[] =
1: -"Trace block I/O.\n"
1: -"\n"
1: -"USAGE: biosnoop [--help] [-d] [-Q]\n"
1: -"\n"
1: -"EXAMPLES:\n"
1: -"    biosnoop              # trace all block I/O\n"
1: -"    biosnoop -Q           # include OS queued time in I/O time\n"
1: -"    biosnoop 10           # trace for 10 seconds only\n"
1: -"    biosnoop -d sdc       # trace sdc only\n";
1: +    "Trace block I/O.\n"
1: +    "\n"
1: +    "USAGE: biosnoop [--help] [-d] [-Q]\n"
1: +    "\n"
1: +    "EXAMPLES:\n"
1: +    "    biosnoop              # trace all block I/O\n"
1: +    "    biosnoop -Q           # include OS queued time in I/O time\n"
1: +    "    biosnoop 10           # trace for 10 seconds only\n"
1: +    "    biosnoop -d sdc       # trace sdc only\n";
1:  
1:  static const struct argp_option opts[] = {
1:  	{ "queued", 'Q', NULL, 0, "Include OS queued time in I/O time" },
1: @@ -61,9 +61,9 @@ static error_t parse_arg(int key, char *arg, struct argp_state *state)
1:  		break;
1:  	case 'd':
1:  		env.disk = arg;
1: -		if (strlen(arg) + 1 > DISK_NAME_LEN) {
1: -			fprintf(stderr, "invaild disk name: too long\n");
1: -			argp_usage(state);
1: +                if (strlen(arg) + 1 > DISK_NAME_LEN) {
1: +                  fprintf(stderr, "invaild disk name: too long\n");
1: +                  argp_usage(state);
1:  		}
1:  		break;
1:  	case ARGP_KEY_ARG:
1: @@ -78,8 +78,8 @@ static error_t parse_arg(int key, char *arg, struct argp_state *state)
1:  			fprintf(stderr, "invalid delay (in us): %s\n", arg);
1:  			argp_usage(state);
1:  		}
1: -		break;
1: -	default:
1: +                break;
1: +        default:
1:  		return ARGP_ERR_UNKNOWN;
1:  	}
1:  	return 0;
1: @@ -138,22 +138,20 @@ static struct partitions *partitions;
1:  
1:  void handle_event(void *ctx, int cpu, void *data, __u32 data_sz)
1:  {
1: -	const struct partition *partition;
1: -	const struct event *e = data;
1: -	char rwbs[RWBS_LEN];
1: -
1: -	if (!start_ts)
1: -		start_ts = e->ts;
1: -	blk_fill_rwbs(rwbs, e->cmd_flags);
1: -	partition = partitions__get_by_dev(partitions, e->dev);
1: -	printf("%-11.6f %-14.14s %-6d %-7s %-4s %-10lld %-7d ",
1: -		(e->ts - start_ts) / 1000000000.0,
1: -		e->comm, e->pid, partition ? partition->name : "Unknown", rwbs,
1: -		e->sector, e->len);
1: -	if (env.queued)
1: -		printf("%7.3f ", e->qdelta != -1 ?
1: -			e->qdelta / 1000000.0 : -1);
1: -	printf("%7.3f\n", e->delta / 1000000.0);
1: +  const struct partition *partition;
1: +  const struct event *e = data;
1: +  char rwbs[RWBS_LEN];
1: +
1: +  if (!start_ts)
1: +    start_ts = e->ts;
1: +  blk_fill_rwbs(rwbs, e->cmd_flags);
1: +  partition = partitions__get_by_dev(partitions, e->dev);
1: +  printf("%-11.6f %-14.14s %-6d %-7s %-4s %-10lld %-7d ",
1: +         (e->ts - start_ts) / 1000000000.0, e->comm, e->pid,
1: +         partition ? partition->name : "Unknown", rwbs, e->sector, e->len);
1: +  if (env.queued)
1: +    printf("%7.3f ", e->qdelta != -1 ? e->qdelta / 1000000.0 : -1);
1: +  printf("%7.3f\n", e->delta / 1000000.0);
1:  }
1:  
1:  void handle_lost_events(void *ctx, int cpu, __u64 lost_cnt)
1: @@ -163,29 +161,29 @@ void handle_lost_events(void *ctx, int cpu, __u64 lost_cnt)
1:  
1:  int main(int argc, char **argv)
1:  {
1: -	const struct partition *partition;
1: -	static const struct argp argp = {
1: -		.options = opts,
1: -		.parser = parse_arg,
1: -		.doc = argp_program_doc,
1: -	};
1: -	struct perf_buffer_opts pb_opts;
1: -	struct perf_buffer *pb = NULL;
1: -	struct ksyms *ksyms = NULL;
1: -	struct biosnoop_bpf *obj;
1: -	__u64 time_end = 0;
1: -	int err;
1: -
1: -	err = argp_parse(&argp, argc, argv, 0, NULL, NULL);
1: -	if (err)
1: -		return err;
1: -
1: -	libbpf_set_print(libbpf_print_fn);
1: -
1: -	err = bump_memlock_rlimit();
1: -	if (err) {
1: -		fprintf(stderr, "failed to increase rlimit: %d\n", err);
1: -		return 1;
1: +  const struct partition *partition;
1: +  static const struct argp argp = {
1: +      .options = opts,
1: +      .parser = parse_arg,
1: +      .doc = argp_program_doc,
1: +  };
1: +  struct perf_buffer_opts pb_opts;
1: +  struct perf_buffer *pb = NULL;
1: +  struct ksyms *ksyms = NULL;
1: +  struct biosnoop_bpf *obj;
1: +  __u64 time_end = 0;
1: +  int err;
1: +
1: +  err = argp_parse(&argp, argc, argv, 0, NULL, NULL);
1: +  if (err)
1: +    return err;
1: +
1: +  libbpf_set_print(libbpf_print_fn);
1: +
1: +  err = bump_memlock_rlimit();
1: +  if (err) {
1: +    fprintf(stderr, "failed to increase rlimit: %d\n", err);
1: +    return 1;
1:  	}
1:  
1:  	obj = biosnoop_bpf__open();
1: @@ -194,21 +192,21 @@ int main(int argc, char **argv)
1:  		return 1;
1:  	}
1:  
1: -	partitions = partitions__load();
1: -	if (!partitions) {
1: -		fprintf(stderr, "failed to load partitions info\n");
1: -		goto cleanup;
1: -	}
1: -
1: -	/* initialize global data (filtering options) */
1: -	if (env.disk) {
1: -		partition = partitions__get_by_name(partitions, env.disk);
1: -		if (!partition) {
1: -			fprintf(stderr, "invaild partition name: not exist\n");
1: -			goto cleanup;
1: -		}
1: -	}
1: -	obj->rodata->targ_queued = env.queued;
1: +        partitions = partitions__load();
1: +        if (!partitions) {
1: +          fprintf(stderr, "failed to load partitions info\n");
1: +          goto cleanup;
1: +        }
1: +
1: +        /* initialize global data (filtering options) */
1: +        if (env.disk) {
1: +          partition = partitions__get_by_name(partitions, env.disk);
1: +          if (!partition) {
1: +            fprintf(stderr, "invaild partition name: not exist\n");
1: +            goto cleanup;
1: +          }
1: +        }
1: +        obj->rodata->targ_queued = env.queued;
1:  
1:  	err = biosnoop_bpf__load(obj);
1:  	if (err) {
1: @@ -216,10 +214,10 @@ int main(int argc, char **argv)
1:  		goto cleanup;
1:  	}
1:  
1: -	obj->links.blk_account_io_start =
1: -		bpf_program__attach(obj->progs.blk_account_io_start);
1: -	err = libbpf_get_error(obj->links.blk_account_io_start);
1: -	if (err) {
1: +        obj->links.blk_account_io_start =
1: +            bpf_program__attach(obj->progs.blk_account_io_start);
1: +        err = libbpf_get_error(obj->links.blk_account_io_start);
1: +        if (err) {
1:  		fprintf(stderr, "failed to attach blk_account_io_start: %s\n",
1:  			strerror(err));
1:  		goto cleanup;
1: @@ -230,38 +228,39 @@ int main(int argc, char **argv)
1:  		goto cleanup;
1:  	}
1:  	if (ksyms__get_symbol(ksyms, "blk_account_io_merge_bio")) {
1: -		obj->links.blk_account_io_merge_bio =
1: -			bpf_program__attach(obj->progs.blk_account_io_merge_bio);
1: -		err = libbpf_get_error(obj->links.blk_account_io_merge_bio);
1: -		if (err) {
1: -			fprintf(stderr, "failed to attach "
1: -				"blk_account_io_merge_bio: %s\n",
1: -				strerror(err));
1: -			goto cleanup;
1: +          obj->links.blk_account_io_merge_bio =
1: +              bpf_program__attach(obj->progs.blk_account_io_merge_bio);
1: +          err = libbpf_get_error(obj->links.blk_account_io_merge_bio);
1: +          if (err) {
1: +            fprintf(stderr,
1: +                    "failed to attach "
1: +                    "blk_account_io_merge_bio: %s\n",
1: +                    strerror(err));
1: +            goto cleanup;
1:  		}
1:  	}
1:  	if (env.queued) {
1: -		obj->links.block_rq_insert =
1: -			bpf_program__attach(obj->progs.block_rq_insert);
1: -		err = libbpf_get_error(obj->links.block_rq_insert);
1: -		if (err) {
1: -			fprintf(stderr, "failed to attach block_rq_insert: %s\n",
1: -				strerror(err));
1: -			goto cleanup;
1: +          obj->links.block_rq_insert =
1: +              bpf_program__attach(obj->progs.block_rq_insert);
1: +          err = libbpf_get_error(obj->links.block_rq_insert);
1: +          if (err) {
1: +            fprintf(stderr, "failed to attach block_rq_insert: %s\n",
1: +                    strerror(err));
1: +            goto cleanup;
1:  		}
1:  	}
1: -	obj->links.block_rq_issue =
1: -		bpf_program__attach(obj->progs.block_rq_issue);
1: -	err = libbpf_get_error(obj->links.block_rq_issue);
1: -	if (err) {
1: +        obj->links.block_rq_issue =
1: +            bpf_program__attach(obj->progs.block_rq_issue);
1: +        err = libbpf_get_error(obj->links.block_rq_issue);
1: +        if (err) {
1:  		fprintf(stderr, "failed to attach block_rq_issue: %s\n",
1:  			strerror(err));
1:  		goto cleanup;
1:  	}
1: -	obj->links.block_rq_complete =
1: -		bpf_program__attach(obj->progs.block_rq_complete);
1: -	err = libbpf_get_error(obj->links.block_rq_complete);
1: -	if (err) {
1: +        obj->links.block_rq_complete =
1: +            bpf_program__attach(obj->progs.block_rq_complete);
1: +        err = libbpf_get_error(obj->links.block_rq_complete);
1: +        if (err) {
1:  		fprintf(stderr, "failed to attach block_rq_complete: %s\n",
1:  			strerror(err));
1:  		goto cleanup;
1: @@ -300,7 +299,7 @@ int main(int argc, char **argv)
1:  cleanup:
1:  	biosnoop_bpf__destroy(obj);
1:  	ksyms__free(ksyms);
1: -	partitions__free(partitions);
1: +        partitions__free(partitions);
1:  
1: -	return err != 0;
1: +        return err != 0;
1:  }
1: diff --git a/libbpf-tools/biosnoop.h b/libbpf-tools/biosnoop.h
1: index ffa149c9..ab9579ba 100644
1: --- a/libbpf-tools/biosnoop.h
1: +++ b/libbpf-tools/biosnoop.h
1: @@ -6,10 +6,10 @@
1:  #define TASK_COMM_LEN	16
1:  #define RWBS_LEN	8
1:  
1: -#define MINORBITS	20
1: -#define MINORMASK	((1U << MINORBITS) - 1)
1: +#define MINORBITS 20
1: +#define MINORMASK ((1U << MINORBITS) - 1)
1:  
1: -#define MKDEV(ma, mi)	(((ma) << MINORBITS) | (mi))
1: +#define MKDEV(ma, mi) (((ma) << MINORBITS) | (mi))
1:  
1:  struct event {
1:  	char comm[TASK_COMM_LEN];
1: @@ -20,7 +20,7 @@ struct event {
1:  	__u32 len;
1:  	__u32 pid;
1:  	__u32 cmd_flags;
1: -	__u32 dev;
1: +        __u32 dev;
1:  };
1:  
1:  #endif /* __BIOSNOOP_H */
1: diff --git a/libbpf-tools/biostacks.bpf.c b/libbpf-tools/biostacks.bpf.c
1: index f3d159ab..2e8a5790 100644
1: --- a/libbpf-tools/biostacks.bpf.c
1: +++ b/libbpf-tools/biostacks.bpf.c
1: @@ -99,10 +99,10 @@ int BPF_PROG(blk_account_io_done, struct request *rq)
1:  	if (!histp)
1:  		goto cleanup;
1:  	if (targ_ms)
1: -		delta /= 1000000U;
1: -	else
1: -		delta /= 1000U;
1: -	slot = log2l(delta);
1: +          delta /= 1000000U;
1: +        else
1: +          delta /= 1000U;
1: +        slot = log2l(delta);
1:  	if (slot >= MAX_SLOTS)
1:  		slot = MAX_SLOTS - 1;
1:  	__sync_fetch_and_add(&histp->slots[slot], 1);
1: diff --git a/libbpf-tools/biostacks.c b/libbpf-tools/biostacks.c
1: index 3d25d2c2..2a7dcee7 100644
1: --- a/libbpf-tools/biostacks.c
1: +++ b/libbpf-tools/biostacks.c
1: @@ -25,14 +25,14 @@ static struct env {
1:  const char *argp_program_version = "biostacks 0.1";
1:  const char *argp_program_bug_address = "<bpf@vger.kernel.org>";
1:  const char argp_program_doc[] =
1: -"Tracing block I/O with init stacks.\n"
1: -"\n"
1: -"USAGE: biostacks [--help] [-d disk] [-m] [duration]\n"
1: -"\n"
1: -"EXAMPLES:\n"
1: -"    biostacks              # trace block I/O with init stacks.\n"
1: -"    biostacks 1            # trace for 1 seconds only\n"
1: -"    biostacks -d sdc       # trace sdc only\n";
1: +    "Tracing block I/O with init stacks.\n"
1: +    "\n"
1: +    "USAGE: biostacks [--help] [-d disk] [-m] [duration]\n"
1: +    "\n"
1: +    "EXAMPLES:\n"
1: +    "    biostacks              # trace block I/O with init stacks.\n"
1: +    "    biostacks 1            # trace for 1 seconds only\n"
1: +    "    biostacks -d sdc       # trace sdc only\n";
1:  
1:  static const struct argp_option opts[] = {
1:  	{ "disk",  'd', "DISK",  0, "Trace this disk only" },
1: @@ -93,32 +93,30 @@ static void sig_handler(int sig)
1:  static
1:  void print_map(struct ksyms *ksyms, struct partitions *partitions, int fd)
1:  {
1: -	const char *units = env.milliseconds ? "msecs" : "usecs";
1: -	struct rqinfo lookup_key = {}, next_key;
1: -	const struct partition *partition;
1: -	const struct ksym *ksym;
1: -	int num_stack, i, err;
1: -	struct hist hist;
1: -
1: -	while (!bpf_map_get_next_key(fd, &lookup_key, &next_key)) {
1: -		err = bpf_map_lookup_elem(fd, &next_key, &hist);
1: -		if (err < 0) {
1: -			fprintf(stderr, "failed to lookup hist: %d\n", err);
1: -			return;
1: -		}
1: -		partition = partitions__get_by_dev(partitions, next_key.dev);
1: -		printf("%-14.14s %-6d %-7s\n",
1: -			next_key.comm, next_key.pid,
1: -			partition ? partition->name : "Unknown");
1: -		num_stack = next_key.kern_stack_size /
1: -			sizeof(next_key.kern_stack[0]);
1: -		for (i = 0; i < num_stack; i++) {
1: -			ksym = ksyms__map_addr(ksyms, next_key.kern_stack[i]);
1: -			printf("%s\n", ksym ? ksym->name : "Unknown");
1: -		}
1: -		print_log2_hist(hist.slots, MAX_SLOTS, units);
1: -		printf("\n");
1: -		lookup_key = next_key;
1: +  const char *units = env.milliseconds ? "msecs" : "usecs";
1: +  struct rqinfo lookup_key = {}, next_key;
1: +  const struct partition *partition;
1: +  const struct ksym *ksym;
1: +  int num_stack, i, err;
1: +  struct hist hist;
1: +
1: +  while (!bpf_map_get_next_key(fd, &lookup_key, &next_key)) {
1: +    err = bpf_map_lookup_elem(fd, &next_key, &hist);
1: +    if (err < 0) {
1: +      fprintf(stderr, "failed to lookup hist: %d\n", err);
1: +      return;
1: +    }
1: +    partition = partitions__get_by_dev(partitions, next_key.dev);
1: +    printf("%-14.14s %-6d %-7s\n", next_key.comm, next_key.pid,
1: +           partition ? partition->name : "Unknown");
1: +    num_stack = next_key.kern_stack_size / sizeof(next_key.kern_stack[0]);
1: +    for (i = 0; i < num_stack; i++) {
1: +      ksym = ksyms__map_addr(ksyms, next_key.kern_stack[i]);
1: +      printf("%s\n", ksym ? ksym->name : "Unknown");
1: +    }
1: +    print_log2_hist(hist.slots, MAX_SLOTS, units);
1: +    printf("\n");
1: +    lookup_key = next_key;
1:  	}
1:  
1:  	return;
1: @@ -165,8 +163,8 @@ int main(int argc, char **argv)
1:  	if (env.disk) {
1:  		partition = partitions__get_by_name(partitions, env.disk);
1:  		if (!partition) {
1: -			fprintf(stderr, "invaild partition name: not exist\n");
1: -			goto cleanup;
1: +                  fprintf(stderr, "invaild partition name: not exist\n");
1: +                  goto cleanup;
1:  		}
1:  		obj->rodata->targ_dev = partition->dev;
1:  	}
1: diff --git a/libbpf-tools/biostacks.h b/libbpf-tools/biostacks.h
1: index 9917fb1d..7fd409f1 100644
1: --- a/libbpf-tools/biostacks.h
1: +++ b/libbpf-tools/biostacks.h
1: @@ -10,7 +10,7 @@
1:  #define MINORBITS	20
1:  #define MINORMASK	((1U << MINORBITS) - 1)
1:  
1: -#define MKDEV(ma, mi)	(((ma) << MINORBITS) | (mi))
1: +#define MKDEV(ma, mi) (((ma) << MINORBITS) | (mi))
1:  
1:  struct rqinfo {
1:  	__u32 pid;
1: diff --git a/libbpf-tools/bitesize.bpf.c b/libbpf-tools/bitesize.bpf.c
1: index faa69acc..821ed4b4 100644
1: --- a/libbpf-tools/bitesize.bpf.c
1: +++ b/libbpf-tools/bitesize.bpf.c
1: @@ -1,11 +1,11 @@
1:  // SPDX-License-Identifier: GPL-2.0
1:  // Copyright (c) 2020 Wenbo Zhang
1: -#include "vmlinux.h"
1: +#include <bpf/bpf_core_read.h>
1:  #include <bpf/bpf_helpers.h>
1:  #include <bpf/bpf_tracing.h>
1: -#include <bpf/bpf_core_read.h>
1:  #include "bitesize.h"
1:  #include "bits.bpf.h"
1: +#include "vmlinux.h"
1:  
1:  const volatile char targ_comm[TASK_COMM_LEN] = {};
1:  const volatile dev_t targ_dev = -1;
1: @@ -20,50 +20,49 @@ struct {
1:  
1:  static struct hist initial_hist;
1:  
1: -static __always_inline bool comm_allowed(const char *comm)
1: -{
1: -	int i;
1: +static __always_inline bool comm_allowed(const char *comm) {
1: +  int i;
1:  
1: -	for (i = 0; targ_comm[i] != '\0' && i < TASK_COMM_LEN; i++) {
1: -		if (comm[i] != targ_comm[i])
1: -			return false;
1: -	}
1: -	return true;
1: +  for (i = 0; targ_comm[i] != '\0' && i < TASK_COMM_LEN; i++) {
1: +    if (comm[i] != targ_comm[i])
1: +      return false;
1: +  }
1: +  return true;
1:  }
1:  
1:  SEC("tp_btf/block_rq_issue")
1: -int BPF_PROG(block_rq_issue, struct request_queue *q, struct request *rq)
1: -{
1: -	struct hist_key hkey;
1: -	struct hist *histp;
1: -	u64 slot;
1: +int BPF_PROG(block_rq_issue, struct request_queue *q, struct request *rq) {
1: +  struct hist_key hkey;
1: +  struct hist *histp;
1: +  u64 slot;
1:  
1: -	if (targ_dev != -1) {
1: -		struct gendisk *disk = BPF_CORE_READ(rq, rq_disk);
1: -		dev_t dev;
1: +  if (targ_dev != -1) {
1: +    struct gendisk *disk = BPF_CORE_READ(rq, rq_disk);
1: +    dev_t dev;
1:  
1: -		dev = disk ? MKDEV(BPF_CORE_READ(disk, major),
1: -				BPF_CORE_READ(disk, first_minor)) : 0;
1: -		if (targ_dev != dev)
1: -			return 0;
1: -	}
1: -	bpf_get_current_comm(&hkey.comm, sizeof(hkey.comm));
1: -	if (!comm_allowed(hkey.comm))
1: -		return 0;
1: +    dev = disk ? MKDEV(BPF_CORE_READ(disk, major),
1: +                       BPF_CORE_READ(disk, first_minor))
1: +               : 0;
1: +    if (targ_dev != dev)
1: +      return 0;
1: +  }
1: +  bpf_get_current_comm(&hkey.comm, sizeof(hkey.comm));
1: +  if (!comm_allowed(hkey.comm))
1: +    return 0;
1:  
1: -	histp = bpf_map_lookup_elem(&hists, &hkey);
1: -	if (!histp) {
1: -		bpf_map_update_elem(&hists, &hkey, &initial_hist, 0);
1: -		histp = bpf_map_lookup_elem(&hists, &hkey);
1: -		if (!histp)
1: -			return 0;
1: -	}
1: -	slot = log2l(rq->__data_len / 1024);
1: -	if (slot >= MAX_SLOTS)
1: -		slot = MAX_SLOTS - 1;
1: -	__sync_fetch_and_add(&histp->slots[slot], 1);
1: +  histp = bpf_map_lookup_elem(&hists, &hkey);
1: +  if (!histp) {
1: +    bpf_map_update_elem(&hists, &hkey, &initial_hist, 0);
1: +    histp = bpf_map_lookup_elem(&hists, &hkey);
1: +    if (!histp)
1: +      return 0;
1: +  }
1: +  slot = log2l(rq->__data_len / 1024);
1: +  if (slot >= MAX_SLOTS)
1: +    slot = MAX_SLOTS - 1;
1: +  __sync_fetch_and_add(&histp->slots[slot], 1);
1:  
1: -	return 0;
1: +  return 0;
1:  }
1:  
1:  char LICENSE[] SEC("license") = "GPL";
1: diff --git a/libbpf-tools/bitesize.c b/libbpf-tools/bitesize.c
1: index 967bf80a..15d92130 100644
1: --- a/libbpf-tools/bitesize.c
1: +++ b/libbpf-tools/bitesize.c
1: @@ -15,13 +15,13 @@
1:  #include "trace_helpers.h"
1:  
1:  static struct env {
1: -	char *disk;
1: -	char *comm;
1: -	int comm_len;
1: -	time_t interval;
1: -	bool timestamp;
1: -	bool verbose;
1: -	int times;
1: +  char *disk;
1: +  char *comm;
1: +  int comm_len;
1: +  time_t interval;
1: +  bool timestamp;
1: +  bool verbose;
1: +  int times;
1:  } env = {
1:  	.interval = 99999999,
1:  	.times = 99999999,
1: @@ -32,22 +32,22 @@ static volatile bool exiting;
1:  const char *argp_program_version = "bitesize 0.1";
1:  const char *argp_program_bug_address = "<bpf@vger.kernel.org>";
1:  const char argp_program_doc[] =
1: -"Summarize block device I/O size as a histogram.\n"
1: -"\n"
1: -"USAGE: bitesize [--help] [-T] [-c] [-d] [interval] [count]\n"
1: -"\n"
1: -"EXAMPLES:\n"
1: -"    bitesize              # summarize block I/O latency as a histogram\n"
1: -"    bitesize 1 10         # print 1 second summaries, 10 times\n"
1: -"    bitesize -T 1         # 1s summaries with timestamps\n"
1: -"    bitesize -c fio       # trace fio only\n";
1: +    "Summarize block device I/O size as a histogram.\n"
1: +    "\n"
1: +    "USAGE: bitesize [--help] [-T] [-c] [-d] [interval] [count]\n"
1: +    "\n"
1: +    "EXAMPLES:\n"
1: +    "    bitesize              # summarize block I/O latency as a histogram\n"
1: +    "    bitesize 1 10         # print 1 second summaries, 10 times\n"
1: +    "    bitesize -T 1         # 1s summaries with timestamps\n"
1: +    "    bitesize -c fio       # trace fio only\n";
1:  
1:  static const struct argp_option opts[] = {
1: -	{ "timestamp", 'T', NULL, 0, "Include timestamp on output" },
1: -	{ "comm",  'c', "COMM",  0, "Trace this comm only" },
1: -	{ "disk",  'd', "DISK",  0, "Trace this disk only" },
1: -	{ "verbose", 'v', NULL, 0, "Verbose debug output" },
1: -	{},
1: +    {"timestamp", 'T', NULL, 0, "Include timestamp on output"},
1: +    {"comm", 'c', "COMM", 0, "Trace this comm only"},
1: +    {"disk", 'd', "DISK", 0, "Trace this disk only"},
1: +    {"verbose", 'v', NULL, 0, "Verbose debug output"},
1: +    {},
1:  };
1:  
1:  static error_t parse_arg(int key, char *arg, struct argp_state *state)
1: @@ -63,14 +63,14 @@ static error_t parse_arg(int key, char *arg, struct argp_state *state)
1:  		len = strlen(arg) + 1;
1:  		env.comm_len = len > TASK_COMM_LEN ? TASK_COMM_LEN : len;
1:  		break;
1: -	case 'd':
1: -		env.disk = arg;
1: -		if (strlen(arg) + 1 > DISK_NAME_LEN) {
1: -			fprintf(stderr, "invaild disk name: too long\n");
1: -			argp_usage(state);
1: -		}
1: -		break;
1: -	case 'T':
1: +        case 'd':
1: +          env.disk = arg;
1: +          if (strlen(arg) + 1 > DISK_NAME_LEN) {
1: +            fprintf(stderr, "invaild disk name: too long\n");
1: +            argp_usage(state);
1: +          }
1: +          break;
1: +        case 'T':
1:  		env.timestamp = true;
1:  		break;
1:  	case ARGP_KEY_ARG:
1: @@ -146,29 +146,29 @@ static int print_log2_hists(int fd)
1:  
1:  int main(int argc, char **argv)
1:  {
1: -	struct partitions *partitions = NULL;
1: -	const struct partition *partition;
1: -	static const struct argp argp = {
1: -		.options = opts,
1: -		.parser = parse_arg,
1: -		.doc = argp_program_doc,
1: -	};
1: -	struct bitesize_bpf *obj;
1: -	struct tm *tm;
1: -	char ts[32];
1: -	int fd, err;
1: -	time_t t;
1: -
1: -	err = argp_parse(&argp, argc, argv, 0, NULL, NULL);
1: -	if (err)
1: -		return err;
1: -
1: -	libbpf_set_print(libbpf_print_fn);
1: -
1: -	err = bump_memlock_rlimit();
1: -	if (err) {
1: -		fprintf(stderr, "failed to increase rlimit: %d\n", err);
1: -		return 1;
1: +  struct partitions *partitions = NULL;
1: +  const struct partition *partition;
1: +  static const struct argp argp = {
1: +      .options = opts,
1: +      .parser = parse_arg,
1: +      .doc = argp_program_doc,
1: +  };
1: +  struct bitesize_bpf *obj;
1: +  struct tm *tm;
1: +  char ts[32];
1: +  int fd, err;
1: +  time_t t;
1: +
1: +  err = argp_parse(&argp, argc, argv, 0, NULL, NULL);
1: +  if (err)
1: +    return err;
1: +
1: +  libbpf_set_print(libbpf_print_fn);
1: +
1: +  err = bump_memlock_rlimit();
1: +  if (err) {
1: +    fprintf(stderr, "failed to increase rlimit: %d\n", err);
1: +    return 1;
1:  	}
1:  
1:  	obj = bitesize_bpf__open();
1: @@ -177,25 +177,25 @@ int main(int argc, char **argv)
1:  		return 1;
1:  	}
1:  
1: -	partitions = partitions__load();
1: -	if (!partitions) {
1: -		fprintf(stderr, "failed to load partitions info\n");
1: -		goto cleanup;
1: -	}
1: +        partitions = partitions__load();
1: +        if (!partitions) {
1: +          fprintf(stderr, "failed to load partitions info\n");
1: +          goto cleanup;
1: +        }
1:  
1: -	/* initialize global data (filtering options) */
1: +        /* initialize global data (filtering options) */
1:  	if (env.comm)
1:  		strncpy((char*)obj->rodata->targ_comm, env.comm, env.comm_len);
1: -	if (env.disk) {
1: -		partition = partitions__get_by_name(partitions, env.disk);
1: -		if (!partition) {
1: -			fprintf(stderr, "invaild partition name: not exist\n");
1: -			goto cleanup;
1: -		}
1: -		obj->rodata->targ_dev = partition->dev;
1: -	}
1: -
1: -	err = bitesize_bpf__load(obj);
1: +        if (env.disk) {
1: +          partition = partitions__get_by_name(partitions, env.disk);
1: +          if (!partition) {
1: +            fprintf(stderr, "invaild partition name: not exist\n");
1: +            goto cleanup;
1: +          }
1: +          obj->rodata->targ_dev = partition->dev;
1: +        }
1: +
1: +        err = bitesize_bpf__load(obj);
1:  	if (err) {
1:  		fprintf(stderr, "failed to load BPF object: %d\n", err);
1:  		goto cleanup;
1: @@ -235,7 +235,7 @@ int main(int argc, char **argv)
1:  
1:  cleanup:
1:  	bitesize_bpf__destroy(obj);
1: -	partitions__free(partitions);
1: +        partitions__free(partitions);
1:  
1: -	return err != 0;
1: +        return err != 0;
1:  }
1: diff --git a/libbpf-tools/bitesize.h b/libbpf-tools/bitesize.h
1: index 2b4543e4..600b9e02 100644
1: --- a/libbpf-tools/bitesize.h
1: +++ b/libbpf-tools/bitesize.h
1: @@ -3,13 +3,13 @@
1:  #define __BITESIZE_H
1:  
1:  #define TASK_COMM_LEN	16
1: -#define DISK_NAME_LEN	32
1: +#define DISK_NAME_LEN 32
1:  #define MAX_SLOTS	20
1:  
1: -#define MINORBITS	20
1: -#define MINORMASK	((1U << MINORBITS) - 1)
1: +#define MINORBITS 20
1: +#define MINORMASK ((1U << MINORBITS) - 1)
1:  
1: -#define MKDEV(ma, mi)	(((ma) << MINORBITS) | (mi))
1: +#define MKDEV(ma, mi) (((ma) << MINORBITS) | (mi))
1:  
1:  struct hist_key {
1:  	char comm[TASK_COMM_LEN];
1: diff --git a/libbpf-tools/cpudist.bpf.c b/libbpf-tools/cpudist.bpf.c
1: index af0cc81f..489c2713 100644
1: --- a/libbpf-tools/cpudist.bpf.c
1: +++ b/libbpf-tools/cpudist.bpf.c
1: @@ -7,7 +7,7 @@
1:  #include "cpudist.h"
1:  #include "bits.bpf.h"
1:  
1: -#define TASK_RUNNING	0
1: +#define TASK_RUNNING 0
1:  
1:  const volatile bool targ_per_process = false;
1:  const volatile bool targ_per_thread = false;
1: @@ -76,23 +76,22 @@ static __always_inline void update_hist(struct task_struct *task,
1:  }
1:  
1:  SEC("kprobe/finish_task_switch")
1: -int BPF_KPROBE(finish_task_switch, struct task_struct *prev)
1: -{
1: -	u32 prev_tgid = BPF_CORE_READ(prev, tgid);
1: -	u32 prev_pid = BPF_CORE_READ(prev, pid);
1: -	u64 id = bpf_get_current_pid_tgid();
1: -	u32 tgid = id >> 32, pid = id;
1: -	u64 ts = bpf_ktime_get_ns();
1: +int BPF_KPROBE(finish_task_switch, struct task_struct *prev) {
1: +  u32 prev_tgid = BPF_CORE_READ(prev, tgid);
1: +  u32 prev_pid = BPF_CORE_READ(prev, pid);
1: +  u64 id = bpf_get_current_pid_tgid();
1: +  u32 tgid = id >> 32, pid = id;
1: +  u64 ts = bpf_ktime_get_ns();
1:  
1: -	if (targ_offcpu) {
1: -		store_start(prev_tgid, prev_pid, ts);
1: -		update_hist((void*)bpf_get_current_task(), tgid, pid, ts);
1: -	} else {
1: -		if (BPF_CORE_READ(prev, state) == TASK_RUNNING)
1: -			update_hist(prev, prev_tgid, prev_pid, ts);
1: -		store_start(tgid, pid, ts);
1: -	}
1: -	return 0;
1: +  if (targ_offcpu) {
1: +    store_start(prev_tgid, prev_pid, ts);
1: +    update_hist((void *)bpf_get_current_task(), tgid, pid, ts);
1: +  } else {
1: +    if (BPF_CORE_READ(prev, state) == TASK_RUNNING)
1: +      update_hist(prev, prev_tgid, prev_pid, ts);
1: +    store_start(tgid, pid, ts);
1: +  }
1: +  return 0;
1:  }
1:  
1:  char LICENSE[] SEC("license") = "GPL";
1: diff --git a/libbpf-tools/cpudist.c b/libbpf-tools/cpudist.c
1: index 2315fb55..a524e630 100644
1: --- a/libbpf-tools/cpudist.c
1: +++ b/libbpf-tools/cpudist.c
1: @@ -35,17 +35,18 @@ static volatile bool exiting;
1:  const char *argp_program_version = "cpudist 0.1";
1:  const char *argp_program_bug_address = "<bpf@vger.kernel.org>";
1:  const char argp_program_doc[] =
1: -"Summarize on-CPU time per task as a histogram.\n"
1: -"\n"
1: -"USAGE: cpudist [--help] [-O] [-T] [-m] [-P] [-L] [-p PID] [interval] [count]\n"
1: -"\n"
1: -"EXAMPLES:\n"
1: -"    cpudist              # summarize on-CPU time as a histogram"
1: -"    cpudist -O           # summarize off-CPU time as a histogram"
1: -"    cpudist 1 10         # print 1 second summaries, 10 times"
1: -"    cpudist -mT 1        # 1s summaries, milliseconds, and timestamps"
1: -"    cpudist -P           # show each PID separately"
1: -"    cpudist -p 185       # trace PID 185 only";
1: +    "Summarize on-CPU time per task as a histogram.\n"
1: +    "\n"
1: +    "USAGE: cpudist [--help] [-O] [-T] [-m] [-P] [-L] [-p PID] [interval] "
1: +    "[count]\n"
1: +    "\n"
1: +    "EXAMPLES:\n"
1: +    "    cpudist              # summarize on-CPU time as a histogram"
1: +    "    cpudist -O           # summarize off-CPU time as a histogram"
1: +    "    cpudist 1 10         # print 1 second summaries, 10 times"
1: +    "    cpudist -mT 1        # 1s summaries, milliseconds, and timestamps"
1: +    "    cpudist -P           # show each PID separately"
1: +    "    cpudist -p 185       # trace PID 185 only";
1:  
1:  static const struct argp_option opts[] = {
1:  	{ "offcpu", 'O', NULL, 0, "Measure off-CPU time" },
1: diff --git a/libbpf-tools/drsnoop.bpf.c b/libbpf-tools/drsnoop.bpf.c
1: index 5f9ff849..9beb047f 100644
1: --- a/libbpf-tools/drsnoop.bpf.c
1: +++ b/libbpf-tools/drsnoop.bpf.c
1: @@ -1,9 +1,9 @@
1:  // SPDX-License-Identifier: GPL-2.0
1:  // Copyright (c) 2020 Wenbo Zhang
1: -#include "vmlinux.h"
1:  #include <bpf/bpf_helpers.h>
1:  #include <bpf/bpf_tracing.h>
1:  #include "drsnoop.h"
1: +#include "vmlinux.h"
1:  
1:  const volatile pid_t targ_pid = 0;
1:  const volatile pid_t targ_tgid = 0;
1: @@ -28,67 +28,63 @@ struct {
1:  } events SEC(".maps");
1:  
1:  SEC("tp_btf/mm_vmscan_direct_reclaim_begin")
1: -int BPF_PROG(direct_reclaim_begin)
1: -{
1: -	u64 *vm_zone_stat_kaddrp = (u64*)vm_zone_stat_kaddr;
1: -	u64 id = bpf_get_current_pid_tgid();
1: -	struct piddata piddata = {};
1: -	u32 tgid = id >> 32;
1: -	u32 pid = id;
1: -
1: -	if (targ_tgid && targ_tgid != tgid)
1: -		return 0;
1: -	if (targ_pid && targ_pid != pid)
1: -		return 0;
1: -
1: -	piddata.ts = bpf_ktime_get_ns();
1: -	if (vm_zone_stat_kaddrp) {
1: -		bpf_probe_read_kernel(&piddata.nr_free_pages,
1: -			       sizeof(*vm_zone_stat_kaddrp),
1: -			       &vm_zone_stat_kaddrp[NR_FREE_PAGES]);
1: -	}
1: -
1: -	bpf_map_update_elem(&start, &pid, &piddata, 0);
1: -	return 0;
1: +int BPF_PROG(direct_reclaim_begin) {
1: +  u64 *vm_zone_stat_kaddrp = (u64 *)vm_zone_stat_kaddr;
1: +  u64 id = bpf_get_current_pid_tgid();
1: +  struct piddata piddata = {};
1: +  u32 tgid = id >> 32;
1: +  u32 pid = id;
1: +
1: +  if (targ_tgid && targ_tgid != tgid)
1: +    return 0;
1: +  if (targ_pid && targ_pid != pid)
1: +    return 0;
1: +
1: +  piddata.ts = bpf_ktime_get_ns();
1: +  if (vm_zone_stat_kaddrp) {
1: +    bpf_probe_read_kernel(&piddata.nr_free_pages, sizeof(*vm_zone_stat_kaddrp),
1: +                          &vm_zone_stat_kaddrp[NR_FREE_PAGES]);
1: +  }
1: +
1: +  bpf_map_update_elem(&start, &pid, &piddata, 0);
1: +  return 0;
1:  }
1:  
1:  SEC("tp_btf/mm_vmscan_direct_reclaim_end")
1: -int BPF_PROG(direct_reclaim_end, unsigned long nr_reclaimed)
1: -{
1: -	u64 id = bpf_get_current_pid_tgid();
1: -	struct piddata *piddatap;
1: -	struct event event = {};
1: -	u32 tgid = id >> 32;
1: -	u32 pid = id;
1: -	s64 delta_ns;
1: -
1: -	if (targ_tgid && targ_tgid != tgid)
1: -		return 0;
1: -	if (targ_pid && targ_pid != pid)
1: -		return 0;
1: -
1: -	/* fetch timestamp and calculate delta */
1: -	piddatap = bpf_map_lookup_elem(&start, &pid);
1: -	if (!piddatap)
1: -		return 0;   /* missed entry */
1: -
1: -	delta_ns = bpf_ktime_get_ns() - piddatap->ts;
1: -	if (delta_ns < 0)
1: -		goto cleanup;
1: -
1: -	event.pid = pid;
1: -	event.nr_reclaimed = nr_reclaimed;
1: -	event.delta_ns = delta_ns;
1: -	event.nr_free_pages = piddatap->nr_free_pages;
1: -	bpf_get_current_comm(&event.task, TASK_COMM_LEN);
1: -
1: -	/* output */
1: -	bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU,
1: -			      &event, sizeof(event));
1: +int BPF_PROG(direct_reclaim_end, unsigned long nr_reclaimed) {
1: +  u64 id = bpf_get_current_pid_tgid();
1: +  struct piddata *piddatap;
1: +  struct event event = {};
1: +  u32 tgid = id >> 32;
1: +  u32 pid = id;
1: +  s64 delta_ns;
1: +
1: +  if (targ_tgid && targ_tgid != tgid)
1: +    return 0;
1: +  if (targ_pid && targ_pid != pid)
1: +    return 0;
1: +
1: +  /* fetch timestamp and calculate delta */
1: +  piddatap = bpf_map_lookup_elem(&start, &pid);
1: +  if (!piddatap)
1: +    return 0; /* missed entry */
1: +
1: +  delta_ns = bpf_ktime_get_ns() - piddatap->ts;
1: +  if (delta_ns < 0)
1: +    goto cleanup;
1: +
1: +  event.pid = pid;
1: +  event.nr_reclaimed = nr_reclaimed;
1: +  event.delta_ns = delta_ns;
1: +  event.nr_free_pages = piddatap->nr_free_pages;
1: +  bpf_get_current_comm(&event.task, TASK_COMM_LEN);
1: +
1: +  /* output */
1: +  bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU, &event, sizeof(event));
1:  
1:  cleanup:
1: -	bpf_map_delete_elem(&start, &pid);
1: -	return 0;
1: +  bpf_map_delete_elem(&start, &pid);
1: +  return 0;
1:  }
1:  
1:  char LICENSE[] SEC("license") = "GPL";
1: diff --git a/libbpf-tools/drsnoop.c b/libbpf-tools/drsnoop.c
1: index 68903a7f..2998216c 100644
1: --- a/libbpf-tools/drsnoop.c
1: +++ b/libbpf-tools/drsnoop.c
1: @@ -114,10 +114,9 @@ void handle_event(void *ctx, int cpu, void *data, __u32 data_sz)
1:  	time(&t);
1:  	tm = localtime(&t);
1:  	strftime(ts, sizeof(ts), "%H:%M:%S", tm);
1: -	printf("%-8s %-16s %-6d %8.3f %5lld",
1: -	       ts, e->task, e->pid, e->delta_ns / 1000000.0,
1: -	       e->nr_reclaimed);
1: -	if (env.extended)
1: +        printf("%-8s %-16s %-6d %8.3f %5lld", ts, e->task, e->pid,
1: +               e->delta_ns / 1000000.0, e->nr_reclaimed);
1: +        if (env.extended)
1:  		printf(" %8llu", e->nr_free_pages * page_size / 1024);
1:  	printf("\n");
1:  }
1: diff --git a/libbpf-tools/drsnoop.h b/libbpf-tools/drsnoop.h
1: index 28826d26..bdd5b7d5 100644
1: --- a/libbpf-tools/drsnoop.h
1: +++ b/libbpf-tools/drsnoop.h
1: @@ -2,7 +2,7 @@
1:  #ifndef __DRSNOOP_H
1:  #define __DRSNOOP_H
1:  
1: -#define TASK_COMM_LEN	16
1: +#define TASK_COMM_LEN 16
1:  
1:  struct event {
1:  	char task[TASK_COMM_LEN];
1: diff --git a/libbpf-tools/filelife.bpf.c b/libbpf-tools/filelife.bpf.c
1: index b066565f..4cc27f92 100644
1: --- a/libbpf-tools/filelife.bpf.c
1: +++ b/libbpf-tools/filelife.bpf.c
1: @@ -37,46 +37,42 @@ probe_create(struct inode *dir, struct dentry *dentry)
1:  }
1:  
1:  SEC("kprobe/vfs_create")
1: -int BPF_KPROBE(vfs_create, struct inode *dir, struct dentry *dentry)
1: -{
1: -	return probe_create(dir, dentry);
1: +int BPF_KPROBE(vfs_create, struct inode *dir, struct dentry *dentry) {
1: +  return probe_create(dir, dentry);
1:  }
1:  
1:  SEC("kprobe/security_inode_create")
1:  int BPF_KPROBE(security_inode_create, struct inode *dir,
1: -	     struct dentry *dentry)
1: -{
1: -	return probe_create(dir, dentry);
1: +               struct dentry *dentry) {
1: +  return probe_create(dir, dentry);
1:  }
1:  
1:  SEC("kprobe/vfs_unlink")
1: -int BPF_KPROBE(vfs_unlink, struct inode *dir, struct dentry *dentry)
1: -{
1: -	u64 id = bpf_get_current_pid_tgid();
1: -	struct event event = {};
1: -	const u8 *qs_name_ptr;
1: -	u32 tgid = id >> 32;
1: -	u64 *tsp, delta_ns;
1: -	u32 qs_len;
1: +int BPF_KPROBE(vfs_unlink, struct inode *dir, struct dentry *dentry) {
1: +  u64 id = bpf_get_current_pid_tgid();
1: +  struct event event = {};
1: +  const u8 *qs_name_ptr;
1: +  u32 tgid = id >> 32;
1: +  u64 *tsp, delta_ns;
1: +  u32 qs_len;
1:  
1: -	tsp = bpf_map_lookup_elem(&start, &dentry);
1: -	if (!tsp)
1: -		return 0;   // missed entry
1: +  tsp = bpf_map_lookup_elem(&start, &dentry);
1: +  if (!tsp)
1: +    return 0;  // missed entry
1:  
1: -	delta_ns = bpf_ktime_get_ns() - *tsp;
1: -	bpf_map_delete_elem(&start, &dentry);
1: +  delta_ns = bpf_ktime_get_ns() - *tsp;
1: +  bpf_map_delete_elem(&start, &dentry);
1:  
1: -	qs_name_ptr = BPF_CORE_READ(dentry, d_name.name);
1: -	qs_len = BPF_CORE_READ(dentry, d_name.len);
1: -	bpf_probe_read_kernel_str(&event.file, sizeof(event.file), qs_name_ptr);
1: -	bpf_get_current_comm(&event.task, sizeof(event.task));
1: -	event.delta_ns = delta_ns;
1: -	event.tgid = tgid;
1: +  qs_name_ptr = BPF_CORE_READ(dentry, d_name.name);
1: +  qs_len = BPF_CORE_READ(dentry, d_name.len);
1: +  bpf_probe_read_kernel_str(&event.file, sizeof(event.file), qs_name_ptr);
1: +  bpf_get_current_comm(&event.task, sizeof(event.task));
1: +  event.delta_ns = delta_ns;
1: +  event.tgid = tgid;
1:  
1: -	/* output */
1: -	bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU,
1: -			      &event, sizeof(event));
1: -	return 0;
1: +  /* output */
1: +  bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU, &event, sizeof(event));
1: +  return 0;
1:  }
1:  
1:  char LICENSE[] SEC("license") = "GPL";
1: diff --git a/libbpf-tools/filelife.c b/libbpf-tools/filelife.c
1: index 22028412..f86e93ba 100644
1: --- a/libbpf-tools/filelife.c
1: +++ b/libbpf-tools/filelife.c
1: @@ -26,13 +26,13 @@ static struct env {
1:  const char *argp_program_version = "filelife 0.1";
1:  const char *argp_program_bug_address = "<bpf@vger.kernel.org>";
1:  const char argp_program_doc[] =
1: -"Trace the lifespan of short-lived files.\n"
1: -"\n"
1: -"USAGE: filelife  [--help] [-p PID]\n"
1: -"\n"
1: -"EXAMPLES:\n"
1: -"    filelife         # trace all events\n"
1: -"    filelife -p 123  # trace pid 123\n";
1: +    "Trace the lifespan of short-lived files.\n"
1: +    "\n"
1: +    "USAGE: filelife  [--help] [-p PID]\n"
1: +    "\n"
1: +    "EXAMPLES:\n"
1: +    "    filelife         # trace all events\n"
1: +    "    filelife -p 123  # trace pid 123\n";
1:  
1:  static const struct argp_option opts[] = {
1:  	{ "pid", 'p', "PID", 0, "Process PID to trace" },
1: diff --git a/libbpf-tools/filelife.h b/libbpf-tools/filelife.h
1: index d1040cc5..cfc3bc4a 100644
1: --- a/libbpf-tools/filelife.h
1: +++ b/libbpf-tools/filelife.h
1: @@ -2,8 +2,8 @@
1:  #ifndef __FILELIFE_H
1:  #define __FILELIFE_H
1:  
1: -#define DNAME_INLINE_LEN	32
1: -#define TASK_COMM_LEN		16
1: +#define DNAME_INLINE_LEN 32
1: +#define TASK_COMM_LEN 16
1:  
1:  struct event {
1:  	char file[DNAME_INLINE_LEN];
1: diff --git a/libbpf-tools/numamove.c b/libbpf-tools/numamove.c
1: index fa4fa135..d9810527 100644
1: --- a/libbpf-tools/numamove.c
1: +++ b/libbpf-tools/numamove.c
1: @@ -30,8 +30,8 @@ const char argp_program_doc[] =
1:  "    numamove              # Show page migrations' count and latency";
1:  
1:  static const struct argp_option opts[] = {
1: -	{ "verbose", 'v', NULL, 0, "Verbose debug output" },
1: -	{},
1: +    {"verbose", 'v', NULL, 0, "Verbose debug output"},
1: +    {},
1:  };
1:  
1:  static error_t parse_arg(int key, char *arg, struct argp_state *state)
1: diff --git a/libbpf-tools/opensnoop.bpf.c b/libbpf-tools/opensnoop.bpf.c
1: index eb8516d9..0ed964cb 100644
1: --- a/libbpf-tools/opensnoop.bpf.c
1: +++ b/libbpf-tools/opensnoop.bpf.c
1: @@ -5,7 +5,7 @@
1:  #include <bpf/bpf_helpers.h>
1:  #include "opensnoop.h"
1:  
1: -#define TASK_RUNNING	0
1: +#define TASK_RUNNING 0
1:  
1:  const volatile __u64 min_us = 0;
1:  const volatile pid_t targ_pid = 0;
1: @@ -30,23 +30,21 @@ static __always_inline bool valid_uid(uid_t uid) {
1:  	return uid != INVALID_UID;
1:  }
1:  
1: -static __always_inline
1: -bool trace_allowed(u32 tgid, u32 pid)
1: -{
1: -	u32 uid;
1: -
1: -	/* filters */
1: -	if (targ_tgid && targ_tgid != tgid)
1: -		return false;
1: -	if (targ_pid && targ_pid != pid)
1: -		return false;
1: -	if (valid_uid(targ_uid)) {
1: -		uid = (u32)bpf_get_current_uid_gid();
1: -		if (targ_uid != uid) {
1: -			return false;
1: -		}
1: -	}
1: -	return true;
1: +static __always_inline bool trace_allowed(u32 tgid, u32 pid) {
1: +  u32 uid;
1: +
1: +  /* filters */
1: +  if (targ_tgid && targ_tgid != tgid)
1: +    return false;
1: +  if (targ_pid && targ_pid != pid)
1: +    return false;
1: +  if (valid_uid(targ_uid)) {
1: +    uid = (u32)bpf_get_current_uid_gid();
1: +    if (targ_uid != uid) {
1: +      return false;
1: +    }
1: +  }
1: +  return true;
1:  }
1:  
1:  SEC("tracepoint/syscalls/sys_enter_open")
1: @@ -58,11 +56,11 @@ int tracepoint__syscalls__sys_enter_open(struct trace_event_raw_sys_enter* ctx)
1:  	u32 pid = id;
1:  
1:  	/* store arg info for later lookup */
1: -	if (trace_allowed(tgid, pid)) {
1: -		struct args_t args = {};
1: -		args.fname = (const char *)ctx->args[0];
1: -		args.flags = (int)ctx->args[1];
1: -		bpf_map_update_elem(&start, &pid, &args, 0);
1: +        if (trace_allowed(tgid, pid)) {
1: +          struct args_t args = {};
1: +          args.fname = (const char*)ctx->args[0];
1: +          args.flags = (int)ctx->args[1];
1: +          bpf_map_update_elem(&start, &pid, &args, 0);
1:  	}
1:  	return 0;
1:  }
1: @@ -76,11 +74,11 @@ int tracepoint__syscalls__sys_enter_openat(struct trace_event_raw_sys_enter* ctx
1:  	u32 pid = id;
1:  
1:  	/* store arg info for later lookup */
1: -	if (trace_allowed(tgid, pid)) {
1: -		struct args_t args = {};
1: -		args.fname = (const char *)ctx->args[1];
1: -		args.flags = (int)ctx->args[2];
1: -		bpf_map_update_elem(&start, &pid, &args, 0);
1: +        if (trace_allowed(tgid, pid)) {
1: +          struct args_t args = {};
1: +          args.fname = (const char*)ctx->args[1];
1: +          args.flags = (int)ctx->args[2];
1: +          bpf_map_update_elem(&start, &pid, &args, 0);
1:  	}
1:  	return 0;
1:  }
1: diff --git a/libbpf-tools/readahead.bpf.c b/libbpf-tools/readahead.bpf.c
1: index 4f4e5eee..62b65aab 100644
1: --- a/libbpf-tools/readahead.bpf.c
1: +++ b/libbpf-tools/readahead.bpf.c
1: @@ -6,7 +6,7 @@
1:  #include "readahead.h"
1:  #include "bits.bpf.h"
1:  
1: -#define MAX_ENTRIES	10240
1: +#define MAX_ENTRIES 10240
1:  
1:  struct {
1:  	__uint(type, BPF_MAP_TYPE_HASH);
1: @@ -27,57 +27,53 @@ struct {
1:  static struct hist hist;
1:  
1:  SEC("fentry/__do_page_cache_readahead")
1: -int BPF_PROG(do_page_cache_readahead)
1: -{
1: -	u32 pid = bpf_get_current_pid_tgid();
1: -	u64 one = 1;
1: +int BPF_PROG(do_page_cache_readahead) {
1: +  u32 pid = bpf_get_current_pid_tgid();
1: +  u64 one = 1;
1:  
1: -	bpf_map_update_elem(&in_readahead, &pid, &one, 0);
1: -	return 0;
1: +  bpf_map_update_elem(&in_readahead, &pid, &one, 0);
1: +  return 0;
1:  }
1:  
1:  SEC("fexit/__page_cache_alloc")
1: -int BPF_PROG(page_cache_alloc_ret, gfp_t gfp, struct page *ret)
1: -{
1: -	u32 pid = bpf_get_current_pid_tgid();
1: -	u64 ts;
1: +int BPF_PROG(page_cache_alloc_ret, gfp_t gfp, struct page *ret) {
1: +  u32 pid = bpf_get_current_pid_tgid();
1: +  u64 ts;
1:  
1: -	if (!bpf_map_lookup_elem(&in_readahead, &pid))
1: -		return 0;
1: +  if (!bpf_map_lookup_elem(&in_readahead, &pid))
1: +    return 0;
1:  
1: -	ts = bpf_ktime_get_ns();
1: -	bpf_map_update_elem(&birth, &ret, &ts, 0);
1: -	__sync_fetch_and_add(&hist.unused, 1);
1: -	__sync_fetch_and_add(&hist.total, 1);
1: +  ts = bpf_ktime_get_ns();
1: +  bpf_map_update_elem(&birth, &ret, &ts, 0);
1: +  __sync_fetch_and_add(&hist.unused, 1);
1: +  __sync_fetch_and_add(&hist.total, 1);
1:  
1: -	return 0;
1: +  return 0;
1:  }
1:  
1:  SEC("fexit/__do_page_cache_readahead")
1: -int BPF_PROG(do_page_cache_readahead_ret)
1: -{
1: -	u32 pid = bpf_get_current_pid_tgid();
1: +int BPF_PROG(do_page_cache_readahead_ret) {
1: +  u32 pid = bpf_get_current_pid_tgid();
1:  
1: -	bpf_map_delete_elem(&in_readahead, &pid);
1: -	return 0;
1: +  bpf_map_delete_elem(&in_readahead, &pid);
1: +  return 0;
1:  }
1:  
1:  SEC("fentry/mark_page_accessed")
1: -int BPF_PROG(mark_page_accessed, struct page *page)
1: -{
1: -	u64 *tsp, slot, ts = bpf_ktime_get_ns();
1: -	s64 delta;
1: -
1: -	tsp = bpf_map_lookup_elem(&birth, &page);
1: -	if (!tsp)
1: -		return 0;
1: -	delta = (s64)(ts - *tsp);
1: -	if (delta < 0)
1: -		goto update_and_cleanup;
1: -	slot = log2l(delta / 1000000U);
1: -	if (slot >= MAX_SLOTS)
1: -		slot = MAX_SLOTS - 1;
1: -	__sync_fetch_and_add(&hist.slots[slot], 1);
1: +int BPF_PROG(mark_page_accessed, struct page *page) {
1: +  u64 *tsp, slot, ts = bpf_ktime_get_ns();
1: +  s64 delta;
1: +
1: +  tsp = bpf_map_lookup_elem(&birth, &page);
1: +  if (!tsp)
1: +    return 0;
1: +  delta = (s64)(ts - *tsp);
1: +  if (delta < 0)
1: +    goto update_and_cleanup;
1: +  slot = log2l(delta / 1000000U);
1: +  if (slot >= MAX_SLOTS)
1: +    slot = MAX_SLOTS - 1;
1: +  __sync_fetch_and_add(&hist.slots[slot], 1);
1:  
1:  update_and_cleanup:
1:  	__sync_fetch_and_add(&hist.unused, -1);
1: diff --git a/libbpf-tools/readahead.c b/libbpf-tools/readahead.c
1: index f2460af8..56b81e7e 100644
1: --- a/libbpf-tools/readahead.c
1: +++ b/libbpf-tools/readahead.c
1: @@ -25,13 +25,13 @@ static volatile bool exiting;
1:  const char *argp_program_version = "readahead 0.1";
1:  const char *argp_program_bug_address = "<bpf@vger.kernel.org>";
1:  const char argp_program_doc[] =
1: -"Show fs automatic read-ahead usage.\n"
1: -"\n"
1: -"USAGE: readahead [--help] [-d DURATION]\n"
1: -"\n"
1: -"EXAMPLES:\n"
1: -"    readahead              # summarize on-CPU time as a histogram"
1: -"    readahead -d 10        # trace for 10 seconds only\n";
1: +    "Show fs automatic read-ahead usage.\n"
1: +    "\n"
1: +    "USAGE: readahead [--help] [-d DURATION]\n"
1: +    "\n"
1: +    "EXAMPLES:\n"
1: +    "    readahead              # summarize on-CPU time as a histogram"
1: +    "    readahead -d 10        # trace for 10 seconds only\n";
1:  
1:  static const struct argp_option opts[] = {
1:  	{ "duration", 'd', "DURATION", 0, "Duration to trace"},
1: diff --git a/libbpf-tools/runqslower.bpf.c b/libbpf-tools/runqslower.bpf.c
1: index 12e26888..94b215b8 100644
1: --- a/libbpf-tools/runqslower.bpf.c
1: +++ b/libbpf-tools/runqslower.bpf.c
1: @@ -4,7 +4,7 @@
1:  #include <bpf/bpf_helpers.h>
1:  #include "runqslower.h"
1:  
1: -#define TASK_RUNNING	0
1: +#define TASK_RUNNING 0
1:  
1:  const volatile __u64 min_us = 0;
1:  const volatile pid_t targ_pid = 0;
1: diff --git a/libbpf-tools/tcpconnect.bpf.c b/libbpf-tools/tcpconnect.bpf.c
1: index 9fbe6f09..050727bc 100644
1: --- a/libbpf-tools/tcpconnect.bpf.c
1: +++ b/libbpf-tools/tcpconnect.bpf.c
1: @@ -192,27 +192,23 @@ end:
1:  }
1:  
1:  SEC("kprobe/tcp_v4_connect")
1: -int BPF_KPROBE(tcp_v4_connect, struct sock *sk)
1: -{
1: -	return enter_tcp_connect(ctx, sk);
1: +int BPF_KPROBE(tcp_v4_connect, struct sock *sk) {
1: +  return enter_tcp_connect(ctx, sk);
1:  }
1:  
1:  SEC("kretprobe/tcp_v4_connect")
1: -int BPF_KRETPROBE(tcp_v4_connect_ret, int ret)
1: -{
1: -	return exit_tcp_connect(ctx, ret, 4);
1: +int BPF_KRETPROBE(tcp_v4_connect_ret, int ret) {
1: +  return exit_tcp_connect(ctx, ret, 4);
1:  }
1:  
1:  SEC("kprobe/tcp_v6_connect")
1: -int BPF_KPROBE(tcp_v6_connect, struct sock *sk)
1: -{
1: -	return enter_tcp_connect(ctx, sk);
1: +int BPF_KPROBE(tcp_v6_connect, struct sock *sk) {
1: +  return enter_tcp_connect(ctx, sk);
1:  }
1:  
1:  SEC("kretprobe/tcp_v6_connect")
1: -int BPF_KRETPROBE(tcp_v6_connect_ret, int ret)
1: -{
1: -	return exit_tcp_connect(ctx, ret, 6);
1: +int BPF_KRETPROBE(tcp_v6_connect_ret, int ret) {
1: +  return exit_tcp_connect(ctx, ret, 6);
1:  }
1:  
1:  char LICENSE[] SEC("license") = "GPL";
1: diff --git a/libbpf-tools/tcpconnlat.bpf.c b/libbpf-tools/tcpconnlat.bpf.c
1: index b0995a4b..abc42afb 100644
1: --- a/libbpf-tools/tcpconnlat.bpf.c
1: +++ b/libbpf-tools/tcpconnlat.bpf.c
1: @@ -47,57 +47,48 @@ static __always_inline int trace_connect(struct sock *sk)
1:  }
1:  
1:  SEC("fentry/tcp_v4_connect")
1: -int BPF_PROG(tcp_v4_connect, struct sock *sk)
1: -{
1: -	return trace_connect(sk);
1: -}
1: +int BPF_PROG(tcp_v4_connect, struct sock *sk) { return trace_connect(sk); }
1:  
1:  SEC("kprobe/tcp_v6_connect")
1: -int BPF_KPROBE(tcp_v6_connect, struct sock *sk)
1: -{
1: -	return trace_connect(sk);
1: -}
1: +int BPF_KPROBE(tcp_v6_connect, struct sock *sk) { return trace_connect(sk); }
1:  
1:  SEC("fentry/tcp_rcv_state_process")
1: -int BPF_PROG(tcp_rcv_state_process, struct sock *sk)
1: -{
1: -	struct piddata *piddatap;
1: -	struct event event = {};
1: -	s64 delta;
1: -	u64 ts;
1: -
1: -	if (sk->__sk_common.skc_state != TCP_SYN_SENT)
1: -		return 0;
1: -
1: -	piddatap = bpf_map_lookup_elem(&start, &sk);
1: -	if (!piddatap)
1: -		return 0;
1: -
1: -	ts = bpf_ktime_get_ns();
1: -	delta = (s64)(ts - piddatap->ts);
1: -	if (delta < 0)
1: -		goto cleanup;
1: -
1: -	event.delta_us = delta / 1000U;
1: -	if (targ_min_us && event.delta_us < targ_min_us)
1: -		goto cleanup;
1: -	__builtin_memcpy(&event.comm, piddatap->comm,
1: -			sizeof(event.comm));
1: -	event.ts_us = ts / 1000;
1: -	event.tgid = piddatap->tgid;
1: -	event.dport = sk->__sk_common.skc_dport;
1: -	event.af = sk->__sk_common.skc_family;
1: -	if (event.af == AF_INET) {
1: -		event.saddr_v4 = sk->__sk_common.skc_rcv_saddr;
1: -		event.daddr_v4 = sk->__sk_common.skc_daddr;
1: -	} else {
1: -		BPF_CORE_READ_INTO(&event.saddr_v6, sk,
1: -				__sk_common.skc_v6_rcv_saddr.in6_u.u6_addr32);
1: -		BPF_CORE_READ_INTO(&event.daddr_v6, sk,
1: -				__sk_common.skc_v6_daddr.in6_u.u6_addr32);
1: -	}
1: -	bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU,
1: -			&event, sizeof(event));
1: +int BPF_PROG(tcp_rcv_state_process, struct sock *sk) {
1: +  struct piddata *piddatap;
1: +  struct event event = {};
1: +  s64 delta;
1: +  u64 ts;
1: +
1: +  if (sk->__sk_common.skc_state != TCP_SYN_SENT)
1: +    return 0;
1: +
1: +  piddatap = bpf_map_lookup_elem(&start, &sk);
1: +  if (!piddatap)
1: +    return 0;
1: +
1: +  ts = bpf_ktime_get_ns();
1: +  delta = (s64)(ts - piddatap->ts);
1: +  if (delta < 0)
1: +    goto cleanup;
1: +
1: +  event.delta_us = delta / 1000U;
1: +  if (targ_min_us && event.delta_us < targ_min_us)
1: +    goto cleanup;
1: +  __builtin_memcpy(&event.comm, piddatap->comm, sizeof(event.comm));
1: +  event.ts_us = ts / 1000;
1: +  event.tgid = piddatap->tgid;
1: +  event.dport = sk->__sk_common.skc_dport;
1: +  event.af = sk->__sk_common.skc_family;
1: +  if (event.af == AF_INET) {
1: +    event.saddr_v4 = sk->__sk_common.skc_rcv_saddr;
1: +    event.daddr_v4 = sk->__sk_common.skc_daddr;
1: +  } else {
1: +    BPF_CORE_READ_INTO(&event.saddr_v6, sk,
1: +                       __sk_common.skc_v6_rcv_saddr.in6_u.u6_addr32);
1: +    BPF_CORE_READ_INTO(&event.daddr_v6, sk,
1: +                       __sk_common.skc_v6_daddr.in6_u.u6_addr32);
1: +  }
1: +  bpf_perf_event_output(ctx, &events, BPF_F_CURRENT_CPU, &event, sizeof(event));
1:  
1:  cleanup:
1:  	bpf_map_delete_elem(&start, &sk);
1: diff --git a/libbpf-tools/tcpconnlat.c b/libbpf-tools/tcpconnlat.c
1: index b53bf1e3..41b09737 100644
1: --- a/libbpf-tools/tcpconnlat.c
1: +++ b/libbpf-tools/tcpconnlat.c
1: @@ -27,16 +27,16 @@ static struct env {
1:  const char *argp_program_version = "tcpconnlat 0.1";
1:  const char *argp_program_bug_address = "<bpf@vger.kernel.org>";
1:  const char argp_program_doc[] =
1: -"\nTrace TCP connects and show connection latency.\n"
1: -"\n"
1: -"USAGE: tcpconnlat [--help] [-t] [-p PID]\n"
1: -"\n"
1: -"EXAMPLES:\n"
1: -"    tcpconnlat              # summarize on-CPU time as a histogram"
1: -"    tcpconnlat 1            # trace connection latency slower than 1 ms"
1: -"    tcpconnlat 0.1          # trace connection latency slower than 100 us"
1: -"    tcpconnlat -t           # 1s summaries, milliseconds, and timestamps"
1: -"    tcpconnlat -p 185       # trace PID 185 only";
1: +    "\nTrace TCP connects and show connection latency.\n"
1: +    "\n"
1: +    "USAGE: tcpconnlat [--help] [-t] [-p PID]\n"
1: +    "\n"
1: +    "EXAMPLES:\n"
1: +    "    tcpconnlat              # summarize on-CPU time as a histogram"
1: +    "    tcpconnlat 1            # trace connection latency slower than 1 ms"
1: +    "    tcpconnlat 0.1          # trace connection latency slower than 100 us"
1: +    "    tcpconnlat -t           # 1s summaries, milliseconds, and timestamps"
1: +    "    tcpconnlat -p 185       # trace PID 185 only";
1:  
1:  static const struct argp_option opts[] = {
1:  	{ "timestamp", 't', NULL, 0, "Include timestamp on output" },
1: diff --git a/libbpf-tools/trace_helpers.c b/libbpf-tools/trace_helpers.c
1: index ede618f9..38004e5e 100644
1: --- a/libbpf-tools/trace_helpers.c
1: +++ b/libbpf-tools/trace_helpers.c
1: @@ -22,7 +22,7 @@
1:  #define MINORBITS	20
1:  #define MINORMASK	((1U << MINORBITS) - 1)
1:  
1: -#define MKDEV(ma, mi)	(((ma) << MINORBITS) | (mi))
1: +#define MKDEV(ma, mi) (((ma) << MINORBITS) | (mi))
1:  
1:  struct ksyms {
1:  	struct ksym *syms;
1: diff --git a/libbpf-tools/vfsstat.bpf.c b/libbpf-tools/vfsstat.bpf.c
1: index 414b8909..85153c12 100644
1: --- a/libbpf-tools/vfsstat.bpf.c
1: +++ b/libbpf-tools/vfsstat.bpf.c
1: @@ -16,33 +16,18 @@ static __always_inline int inc_stats(int key)
1:  }
1:  
1:  SEC("kprobe/vfs_read")
1: -int BPF_KPROBE(vfs_read)
1: -{
1: -	return inc_stats(S_READ);
1: -}
1: +int BPF_KPROBE(vfs_read) { return inc_stats(S_READ); }
1:  
1:  SEC("kprobe/vfs_write")
1: -int BPF_KPROBE(vfs_write)
1: -{
1: -	return inc_stats(S_WRITE);
1: -}
1: +int BPF_KPROBE(vfs_write) { return inc_stats(S_WRITE); }
1:  
1:  SEC("kprobe/vfs_fsync")
1: -int BPF_KPROBE(vfs_fsync)
1: -{
1: -	return inc_stats(S_FSYNC);
1: -}
1: +int BPF_KPROBE(vfs_fsync) { return inc_stats(S_FSYNC); }
1:  
1:  SEC("kprobe/vfs_open")
1: -int BPF_KPROBE(vfs_open)
1: -{
1: -	return inc_stats(S_OPEN);
1: -}
1: +int BPF_KPROBE(vfs_open) { return inc_stats(S_OPEN); }
1:  
1:  SEC("kprobe/vfs_create")
1: -int BPF_KPROBE(vfs_create)
1: -{
1: -	return inc_stats(S_CREATE);
1: -}
1: +int BPF_KPROBE(vfs_create) { return inc_stats(S_CREATE); }
1:  
1:  char LICENSE[] SEC("license") = "GPL";
1: diff --git a/libbpf-tools/xfsslower.bpf.c b/libbpf-tools/xfsslower.bpf.c
1: index 65644bc3..ccf6aa97 100644
1: --- a/libbpf-tools/xfsslower.bpf.c
1: +++ b/libbpf-tools/xfsslower.bpf.c
1: @@ -6,7 +6,7 @@
1:  #include <bpf/bpf_tracing.h>
1:  #include "xfsslower.h"
1:  
1: -#define NULL	0
1: +#define NULL 0
1:  
1:  const volatile pid_t targ_tgid = 0;
1:  const volatile __u64 min_lat = 0;
1: @@ -53,34 +53,29 @@ probe_entry(struct file *fp, loff_t s, loff_t e)
1:  }
1:  
1:  SEC("kprobe/xfs_file_read_iter")
1: -int BPF_KPROBE(xfs_file_read_iter, struct kiocb *iocb)
1: -{
1: -	struct file *fp = BPF_CORE_READ(iocb, ki_filp);
1: -	loff_t start = BPF_CORE_READ(iocb, ki_pos);
1: +int BPF_KPROBE(xfs_file_read_iter, struct kiocb *iocb) {
1: +  struct file *fp = BPF_CORE_READ(iocb, ki_filp);
1: +  loff_t start = BPF_CORE_READ(iocb, ki_pos);
1:  
1: -	return probe_entry(fp, start, 0);
1: +  return probe_entry(fp, start, 0);
1:  }
1:  
1:  SEC("kprobe/xfs_file_write_iter")
1: -int BPF_KPROBE(xfs_file_write_iter, struct kiocb *iocb)
1: -{
1: -	struct file *fp = BPF_CORE_READ(iocb, ki_filp);
1: -	loff_t start = BPF_CORE_READ(iocb, ki_pos);
1: +int BPF_KPROBE(xfs_file_write_iter, struct kiocb *iocb) {
1: +  struct file *fp = BPF_CORE_READ(iocb, ki_filp);
1: +  loff_t start = BPF_CORE_READ(iocb, ki_pos);
1:  
1: -	return probe_entry(fp, start, 0);
1: +  return probe_entry(fp, start, 0);
1:  }
1:  
1:  SEC("kprobe/xfs_file_open")
1: -int BPF_KPROBE(xfs_file_open, struct inode *inode, struct file *file)
1: -{
1: -	return probe_entry(file, 0, 0);
1: +int BPF_KPROBE(xfs_file_open, struct inode *inode, struct file *file) {
1: +  return probe_entry(file, 0, 0);
1:  }
1:  
1:  SEC("kprobe/xfs_file_fsync")
1: -int BPF_KPROBE(xfs_file_fsync, struct file *file, loff_t start,
1: -	       loff_t end)
1: -{
1: -	return probe_entry(file, start, end);
1: +int BPF_KPROBE(xfs_file_fsync, struct file *file, loff_t start, loff_t end) {
1: +  return probe_entry(file, start, end);
1:  }
1:  
1:  static __always_inline int
1: @@ -134,27 +129,19 @@ probe_exit(struct pt_regs *ctx, char type, ssize_t size)
1:  }
1:  
1:  SEC("kretprobe/xfs_file_read_iter")
1: -int BPF_KRETPROBE(xfs_file_read_iters_ret, ssize_t ret)
1: -{
1: -	return probe_exit(ctx, TRACE_READ, ret);
1: +int BPF_KRETPROBE(xfs_file_read_iters_ret, ssize_t ret) {
1: +  return probe_exit(ctx, TRACE_READ, ret);
1:  }
1:  
1:  SEC("kretprobe/xfs_file_write_iter")
1: -int BPF_KRETPROBE(xfs_file_write_iter_ret, ssize_t ret)
1: -{
1: -	return probe_exit(ctx, TRACE_WRITE, ret);
1: +int BPF_KRETPROBE(xfs_file_write_iter_ret, ssize_t ret) {
1: +  return probe_exit(ctx, TRACE_WRITE, ret);
1:  }
1:  
1:  SEC("kretprobe/xfs_file_open")
1: -int BPF_KRETPROBE(xfs_file_open_ret)
1: -{
1: -	return probe_exit(ctx, TRACE_OPEN, 0);
1: -}
1: +int BPF_KRETPROBE(xfs_file_open_ret) { return probe_exit(ctx, TRACE_OPEN, 0); }
1:  
1:  SEC("kretprobe/xfs_file_fsync")
1: -int BPF_KRETPROBE(xfs_file_sync_ret)
1: -{
1: -	return probe_exit(ctx, TRACE_FSYNC, 0);
1: -}
1: +int BPF_KRETPROBE(xfs_file_sync_ret) { return probe_exit(ctx, TRACE_FSYNC, 0); }
1:  
1:  char LICENSE[] SEC("license") = "GPL";
1: diff --git a/libbpf-tools/xfsslower.h b/libbpf-tools/xfsslower.h
1: index 16db77eb..3b65e85d 100644
1: --- a/libbpf-tools/xfsslower.h
1: +++ b/libbpf-tools/xfsslower.h
1: @@ -2,8 +2,8 @@
1:  #ifndef __XFSSLOWER_H
1:  #define __XFSSLOWER_H
1:  
1: -#define DNAME_INLINE_LEN	32
1: -#define TASK_COMM_LEN		16
1: +#define DNAME_INLINE_LEN 32
1: +#define TASK_COMM_LEN 16
1:  
1:  #define TRACE_READ   'R'
1:  #define TRACE_WRITE  'W'
1: Ignoring changes in the following files (wrong extension):
1:     libbpf-tools/drsnoop_example.txt
1: Running clang-format on the following files:
1:     libbpf-tools/bitesize.bpf.c
1:     libbpf-tools/opensnoop.bpf.c
1:     libbpf-tools/tcpconnect.bpf.c
1:     libbpf-tools/biostacks.c
1:     libbpf-tools/biostacks.h
1:     libbpf-tools/drsnoop.h
1:     libbpf-tools/bitesize.h
1:     libbpf-tools/drsnoop.c
1:     libbpf-tools/execsnoop.bpf.c
1:     libbpf-tools/biosnoop.c
1:     libbpf-tools/tcpconnlat.bpf.c
1:     libbpf-tools/tcpconnlat.h
1:     libbpf-tools/biosnoop.h
1:     libbpf-tools/tcpconnlat.c
1:     libbpf-tools/readahead.bpf.c
1:     libbpf-tools/biopattern.bpf.c
1:     libbpf-tools/readahead.h
1:     libbpf-tools/xfsslower.c
1:     libbpf-tools/biostacks.bpf.c
1:     libbpf-tools/filelife.bpf.c
1:     libbpf-tools/xfsslower.h
1:     libbpf-tools/readahead.c
1:     libbpf-tools/cpudist.c
1:     libbpf-tools/xfsslower.bpf.c
1:     libbpf-tools/cpudist.bpf.c
1:     libbpf-tools/filelife.h
1:     libbpf-tools/runqslower.bpf.c
1:     libbpf-tools/biolatency.bpf.c
1:     libbpf-tools/biolatency.h
1:     libbpf-tools/drsnoop.bpf.c
1:     libbpf-tools/filelife.c
1:     libbpf-tools/biolatency.c
1:     libbpf-tools/vfsstat.bpf.c
1:     libbpf-tools/bitesize.c
1:     libbpf-tools/biopattern.c
1:     libbpf-tools/biosnoop.bpf.c
1:     libbpf-tools/numamove.c
1:     libbpf-tools/trace_helpers.c
1:     libbpf-tools/biopattern.h
1: old tree: b536b9dcddfbd3336f75ae01582384b989dbdcbd
1: new tree: 5c24be31740744afd59594f03473bfbc92a6e1ef
 1/44 Test  #1: style-check ......................   Passed    2.64 sec
test 2
      Start  2: c_test_static

2: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "c_test_static" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/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 -fno-jump-tables -fmath-errno -masm-verbose -mconstructor-aliases -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -momit-leaf-frame-pointer -coverage-notes-file /usr/src/linux-headers-4.15.0-1009-gcp/main.gcno -nostdsysteminc -nobuiltininc -resource-dir lib/clang/6.0.0 -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/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/cc -D __BPF_TRACING__ -I arch/x86/include/ -I arch/x86/include/generated -I include -I arch/x86/include/uapi -I arch/x86/include/generated/uapi -I include/uapi -I include/generated/uapi -D __KERNEL__ -D __HAVE_BUILTIN_BSWAP16__ -D __HAVE_BUILTIN_BSWAP32__ -D __HAVE_BUILTIN_BSWAP64__ -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/linux-headers-4.15.0-1009-gcp -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.15.0-1009-gcp/build
 2/44 Test  #2: c_test_static ....................   Passed    1.18 sec
test 3
      Start  3: test_libbcc

3: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "c_test_all" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/cc/test_libbcc"
3: Test timeout computed to be: 9.99988e+06
3: /virtual/main.c:2:7: error: map not found: /sys/fs/bpf/test_pinned_table
3:       BPF_TABLE_PINNED("hash", u64, u64, ids, 1024, "/sys/fs/bpf/test_pinned_table");
3:       ^
3: /virtual/include/bcc/helpers.h:160:92: note: expanded from macro 'BPF_TABLE_PINNED'
3: #define BPF_TABLE_PINNED(_table_type, _key_type, _leaf_type, _name, _max_entries, _pinned) \
3:                                                                                            ^
3: /virtual/include/bcc/helpers.h:157:76: note: expanded from macro '\
3: BPF_TABLE'
3: #define BPF_TABLE(_table_type, _key_type, _leaf_type, _name, _max_entries) \
3:                                                                            ^
3: /virtual/include/bcc/helpers.h:107:4: note: expanded from macro '\
3: BPF_F_TABLE'
3: }; \
3:    ^
3: 1 error generated.
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/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/tests/cc/test_usdt_probes.cc:340
3: ...............................................................................
3: 
3: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/tests/cc/test_usdt_probes.cc:355: FAILED:
3:   REQUIRE( res.msg() == "" )
3: with expansion:
3:   "Unable to load USDT ruby:gc__mark__begin from binary  PID 7422 for probe
3:   on_event"
3:   ==
3:   ""
3: 
3: unshare: unrecognized option '--kill-child'
3: Try 'unshare --help' for more information.
3: -------------------------------------------------------------------------------
3: test probing running Ruby process in namespaces
3:   in separate mount namespace and separate PID namespace
3: -------------------------------------------------------------------------------
3: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/tests/cc/test_usdt_probes.cc:340
3: ...............................................................................
3: 
3: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/tests/cc/test_usdt_probes.cc:381: FAILED:
3:   REQUIRE( res.msg() == "" )
3: with expansion:
3:   "No valid Binary Path or PID provided"
3:   ==
3:   ""
3: 
3: ===============================================================================
3: test cases:  40 |  39 passed | 1 failed as expected
3: assertions: 637 | 635 passed | 2 failed as expected
3: 
 3/44 Test  #3: test_libbcc ......................   Passed   14.74 sec
test 4
      Start  4: py_test_stat1_b

4: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_stat1_b" "namespace" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/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: .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 2ms
4: rtt min/avg/max/mdev = 0.006/0.008/0.078/0.007 ms, ipg/ewma 0.022/0.007 ms
4: .
4: ----------------------------------------------------------------------
4: Ran 2 tests in 0.511s
4: 
4: OK
 4/44 Test  #4: py_test_stat1_b ..................   Passed    1.40 sec
test 5
      Start  5: py_test_bpf_log

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

6: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_stat1_c" "namespace" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/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: .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.005/0.006/0.068/0.007 ms, ipg/ewma 0.019/0.006 ms
6: .
6: ----------------------------------------------------------------------
6: Ran 2 tests in 0.490s
6: 
6: OK
 6/44 Test  #6: py_test_stat1_c ..................   Passed    0.88 sec
test 7
      Start  7: py_test_xlate1_c

7: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_xlate1_c" "namespace" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/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: 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.128 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.128/0.128/0.128/0.000 ms
7: .
7: ----------------------------------------------------------------------
7: Ran 1 test in 0.287s
7: 
7: OK
 7/44 Test  #7: py_test_xlate1_c .................   Passed    0.79 sec
test 8
      Start  8: py_test_call1

8: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_call1_c" "namespace" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/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: .
8: ----------------------------------------------------------------------
8: Ran 1 test in 0.265s
8: 
8: OK
 8/44 Test  #8: py_test_call1 ....................   Passed    1.02 sec
test 9
      Start  9: py_test_trace1

9: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_trace1" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/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.367s
9: 
9: OK
9: ('fd 8:', 'stat1 0', 'stat2 1')
9: ('fd a:', 'stat1 200', 'stat2 100')
9: ('fd 9:', 'stat1 1', 'stat2 1')
9: ('fd ffffa097d5c02e00:', 'stat1 4', 'stat2 0')
 9/44 Test  #9: py_test_trace1 ...................   Passed    0.58 sec
test 10
      Start 10: py_test_trace2

10: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_trace2" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/tests/python/test_trace2.py"
10: Test timeout computed to be: 9.99988e+06
10: .
10: ----------------------------------------------------------------------
10: Ran 1 test in 2.952s
10: 
10: OK
10: ('ptr ffffa097d3659740:', 'stat1 (0 10)')
10: ('ptr ffffa097d69e1740:', 'stat1 (0 3)')
10: ('ptr ffffa097d3658000:', 'stat1 (0 100)')
10: ('ptr ffffa097d6a0ae80:', 'stat1 (0 42)')
10: ('ptr ffffa097b1e39740:', 'stat1 (0 1)')
10: ('ptr ffffa097b1512e80:', 'stat1 (0 5)')
10: ('ptr ffffa097d022ae80:', 'stat1 (0 1)')
10: ('ptr ffffa097d6a0dd00:', 'stat1 (0 1)')
10: ('ptr ffffa097d47cc5c0:', 'stat1 (0 1)')
10: ('ptr ffffa097d6a09740:', 'stat1 (0 1)')
10: ('ptr ffffa097d3c0c5c0:', 'stat1 (0 20)')
10: ('ptr ffffa097c3ff45c0:', 'stat1 (0 1)')
10: ('ptr ffffffffbd212480:', 'stat1 (0 102)')
10/44 Test #10: py_test_trace2 ...................   Passed    3.06 sec
test 11
      Start 11: py_test_trace3_c

11: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_trace3_c" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/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.00435214 s, 964 MB/s
11: 1024+0 records in
11: 1024+0 records out
11: 4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.00938172 s, 447 MB/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 0')
11: ('latency 46:', 'count 0')
11: ('latency 47:', 'count 0')
11: ('latency 48:', 'count 0')
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 0')
11: ('latency 58:', 'count 0')
11: ('latency 59:', 'count 0')
11: ('latency 60:', 'count 0')
11: ('latency 61:', 'count 0')
11: ('latency 62:', 'count 0')
11: ('latency 63:', 'count 0')
11: ('latency 64:', 'count 0')
11: ('latency 65:', 'count 0')
11: ('latency 66:', 'count 0')
11: ('latency 67:', 'count 0')
11: ('latency 68:', 'count 0')
11: ('latency 69:', 'count 0')
11: ('latency 70:', 'count 0')
11: ('latency 71:', 'count 0')
11: ('latency 72:', 'count 0')
11: ('latency 73:', 'count 0')
11: ('latency 74:', 'count 0')
11: ('latency 75:', 'count 0')
11: ('latency 76:', 'count 0')
11: ('latency 77:', 'count 0')
11: ('latency 78:', 'count 0')
11: ('latency 79:', 'count 0')
11: ('latency 80:', 'count 0')
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.379s
11: 
11: OK
11/44 Test #11: py_test_trace3_c .................   Passed    1.59 sec
test 12
      Start 12: py_test_trace4

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

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

14: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_probe_count" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/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 5.347s
14: 
14: OK
14/44 Test #14: py_test_probe_count ..............   Passed    5.40 sec
test 15
      Start 15: py_test_debuginfo

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

16: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_brb_c" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/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
16: 42 bytes from 96:b4:4b:28:eb:f2 (100.1.1.254): index=0 time=7.692 usec
16: 
16: --- 100.1.1.254 statistics ---
16: 1 packets transmitted, 1 packets received,   0% unanswered (0 extra)
16: rtt min/avg/max/std-dev = 0.008/0.008/0.008/0.000 ms
16: ARPING 200.1.1.254
16: 42 bytes from 62:8e:45:cf:08:1a (200.1.1.254): index=0 time=9.103 usec
16: 
16: --- 200.1.1.254 statistics ---
16: 1 packets transmitted, 1 packets received,   0% unanswered (0 extra)
16: rtt min/avg/max/std-dev = 0.009/0.009/0.009/0.000 ms
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.119 ms
16: 64 bytes from 200.1.1.1: icmp_seq=2 ttl=63 time=0.073 ms
16: 
16: --- 200.1.1.1 ping statistics ---
16: 2 packets transmitted, 2 received, 0% packet loss, time 1015ms
16: rtt min/avg/max/mdev = 0.073/0.096/0.119/0.023 ms
16: [ ID] Interval       Transfer     Bandwidth
16: [  7]  0.0- 1.0 sec  3.25 GBytes  27.9 Gbits/sec
16: [ ID] Interval       Transfer     Bandwidth
16: [ 10]  0.0- 1.0 sec  3.25 GBytes  27.7 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 : demo
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     26956.35   
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 : demo : 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     22491.79   
16: 16384  87380 
16: .
16: ----------------------------------------------------------------------
16: Ran 1 test in 9.778s
16: 
16: OK
16/44 Test #16: py_test_brb ......................   Passed    9.90 sec
test 17
      Start 17: py_test_brb2

17: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_brb2_c" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/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.170 ms
17: 64 bytes from 200.1.1.1: icmp_seq=2 ttl=63 time=0.074 ms
17: 
17: --- 200.1.1.1 ping statistics ---
17: 2 packets transmitted, 2 received, 0% packet loss, time 1001ms
17: rtt min/avg/max/mdev = 0.074/0.122/0.170/0.048 ms
17: [ ID] Interval       Transfer     Bandwidth
17: [  7]  0.0- 1.0 sec  2.86 GBytes  24.6 Gbits/sec
17: [ ID] Interval       Transfer     Bandwidth
17: [ 10]  0.0- 1.0 sec  2.86 GBytes  24.4 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 : demo
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     22987.78   
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 : demo : 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     20646.10   
17: 16384  87380 
17: .
17: ----------------------------------------------------------------------
17: Ran 1 test in 7.933s
17: 
17: OK
17/44 Test #17: py_test_brb2 .....................   Passed    8.12 sec
test 18
      Start 18: py_test_clang

18: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_clang" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/tests/python/test_clang.py"
18: Test timeout computed to be: 9.99988e+06
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: ...s....................................../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: ................/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 70.539s
18: 
18: OK (skipped=1)
18: 0
18/44 Test #18: py_test_clang ....................   Passed   71.01 sec
test 19
      Start 19: py_test_histogram

19: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_histogram" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/tests/python/test_histogram.py"
19: Test timeout computed to be: 9.99988e+06
19: 
19: Bucket ptr = 'java'
19:                value                         : count     distribution
19:                    0 -> 1                    : 27       |********************|
19:                    2 -> 3                    : 0        |                    |
19:                    4 -> 7                    : 0        |                    |
19:                    8 -> 15                   : 0        |                    |
19:                   16 -> 31                   : 0        |                    |
19:                   32 -> 63                   : 0        |                    |
19:                   64 -> 127                  : 0        |                    |
19:                  128 -> 255                  : 0        |                    |
19:                  256 -> 511                  : 0        |                    |
19:                  512 -> 1023                 : 0        |                    |
19:                 1024 -> 2047                 : 0        |                    |
19:                 2048 -> 4095                 : 0        |                    |
19:                 4096 -> 8191                 : 0        |                    |
19:                 8192 -> 16383                : 0        |                    |
19:                16384 -> 32767                : 0        |                    |
19:                32768 -> 65535                : 0        |                    |
19:                65536 -> 131071               : 0        |                    |
19:               131072 -> 262143               : 0        |                    |
19:               262144 -> 524287               : 0        |                    |
19:               524288 -> 1048575              : 0        |                    |
19:              1048576 -> 2097151              : 0        |                    |
19:              2097152 -> 4194303              : 0        |                    |
19:              4194304 -> 8388607              : 0        |                    |
19:              8388608 -> 16777215             : 0        |                    |
19:             16777216 -> 33554431             : 0        |                    |
19:             33554432 -> 67108863             : 2        |*                   |
19:             67108864 -> 134217727            : 0        |                    |
19:            134217728 -> 268435455            : 0        |                    |
19:            268435456 -> 536870911            : 0        |                    |
19:            536870912 -> 1073741823           : 0        |                    |
19:           1073741824 -> 2147483647           : 0        |                    |
19:           2147483648 -> 4294967295           : 0        |                    |
19:           4294967296 -> 8589934591           : 0        |                    |
19:           8589934592 -> 17179869183          : 0        |                    |
19:          17179869184 -> 34359738367          : 0        |                    |
19:          34359738368 -> 68719476735          : 0        |                    |
19:          68719476736 -> 137438953471         : 0        |                    |
19:         137438953472 -> 274877906943         : 0        |                    |
19:         274877906944 -> 549755813887         : 0        |                    |
19:         549755813888 -> 1099511627775        : 1        |                    |
19: 
19: Bucket ptr = 'python'
19:      value               : count     distribution
19:          0 -> 1          : 0        |                                        |
19:          2 -> 3          : 0        |                                        |
19:          4 -> 7          : 0        |                                        |
19:          8 -> 15         : 0        |                                        |
19:         16 -> 31         : 0        |                                        |
19:         32 -> 63         : 0        |                                        |
19:         64 -> 127        : 0        |                                        |
19:        128 -> 255        : 0        |                                        |
19:        256 -> 511        : 0        |                                        |
19:        512 -> 1023       : 0        |                                        |
19:       1024 -> 2047       : 0        |                                        |
19:       2048 -> 4095       : 0        |                                        |
19:       4096 -> 8191       : 0        |                                        |
19:       8192 -> 16383      : 0        |                                        |
19:      16384 -> 32767      : 0        |                                        |
19:      32768 -> 65535      : 0        |                                        |
19:      65536 -> 131071     : 0        |                                        |
19:     131072 -> 262143     : 0        |                                        |
19:     262144 -> 524287     : 0        |                                        |
19:     524288 -> 1048575    : 0        |                                        |
19:    1048576 -> 2097151    : 0        |                                        |
19:    2097152 -> 4194303    : 0        |                                        |
19:    4194304 -> 8388607    : 0        |                                        |
19:    8388608 -> 16777215   : 0        |                                        |
19:   16777216 -> 33554431   : 0        |                                        |
19:   33554432 -> 67108863   : 100      |****************************************|
19: 
19: Bucket ptr = 'kworker/u4:0'
19:      value               : count     distribution
19:          0 -> 1          : 2        |****************************************|
19: 
19: Bucket ptr = 'kworker/u4:3'
19:      value               : count     distribution
19:          0 -> 1          : 0        |                                        |
19:          2 -> 3          : 0        |                                        |
19:          4 -> 7          : 0        |                                        |
19:          8 -> 15         : 0        |                                        |
19:         16 -> 31         : 0        |                                        |
19:         32 -> 63         : 0        |                                        |
19:         64 -> 127        : 0        |                                        |
19:        128 -> 255        : 0        |                                        |
19:        256 -> 511        : 0        |                                        |
19:        512 -> 1023       : 0        |                                        |
19:       1024 -> 2047       : 0        |                                        |
19:       2048 -> 4095       : 0        |                                        |
19:       4096 -> 8191       : 0        |                                        |
19:       8192 -> 16383      : 0        |                                        |
19:      16384 -> 32767      : 0        |                                        |
19:      32768 -> 65535      : 0        |                                        |
19:      65536 -> 131071     : 0        |                                        |
19:     131072 -> 262143     : 0        |                                        |
19:     262144 -> 524287     : 0        |                                        |
19:     524288 -> 1048575    : 0        |                                        |
19:    1048576 -> 2097151    : 0        |                                        |
19:    2097152 -> 4194303    : 0        |                                        |
19:    4194304 -> 8388607    : 0        |                                        |
19:    8388608 -> 16777215   : 0        |                                        |
19:   16777216 -> 33554431   : 0        |                                        |
19:   33554432 -> 67108863   : 1        |****************************************|
19: 
19: Bucket ptr = 'rcu_sched'
19:      value               : count     distribution
19:          0 -> 1          : 4        |****************************************|
19:          2 -> 3          : 0        |                                        |
19:          4 -> 7          : 0        |                                        |
19:          8 -> 15         : 0        |                                        |
19:         16 -> 31         : 0        |                                        |
19:         32 -> 63         : 0        |                                        |
19:         64 -> 127        : 0        |                                        |
19:        128 -> 255        : 0        |                                        |
19:        256 -> 511        : 0        |                                        |
19:        512 -> 1023       : 0        |                                        |
19:       1024 -> 2047       : 0        |                                        |
19:       2048 -> 4095       : 0        |                                        |
19:       4096 -> 8191       : 0        |                                        |
19:       8192 -> 16383      : 0        |                                        |
19:      16384 -> 32767      : 0        |                                        |
19:      32768 -> 65535      : 0        |                                        |
19:      65536 -> 131071     : 0        |                                        |
19:     131072 -> 262143     : 0        |                                        |
19:     262144 -> 524287     : 0        |                                        |
19:     524288 -> 1048575    : 0        |                                        |
19:    1048576 -> 2097151    : 0        |                                        |
19:    2097152 -> 4194303    : 0        |                                        |
19:    4194304 -> 8388607    : 0        |                                        |
19:    8388608 -> 16777215   : 0        |                                        |
19:   16777216 -> 33554431   : 1        |**********                              |
19: 
19: Bucket ptr = 'gmain'
19:      value               : count     distribution
19:          0 -> 1          : 1        |****************************************|
19: 
19: Bucket ptr = 'ctest'
19:      value               : count     distribution
19:          0 -> 1          : 10       |****************************************|
19: 
19: Bucket ptr = 'swapper/1'
19:                value                         : count     distribution
19:                    0 -> 1                    : 0        |                    |
19:                    2 -> 3                    : 0        |                    |
19:                    4 -> 7                    : 0        |                    |
19:                    8 -> 15                   : 0        |                    |
19:                   16 -> 31                   : 0        |                    |
19:                   32 -> 63                   : 0        |                    |
19:                   64 -> 127                  : 0        |                    |
19:                  128 -> 255                  : 0        |                    |
19:                  256 -> 511                  : 0        |                    |
19:                  512 -> 1023                 : 0        |                    |
19:                 1024 -> 2047                 : 0        |                    |
19:                 2048 -> 4095                 : 0        |                    |
19:                 4096 -> 8191                 : 0        |                    |
19:                 8192 -> 16383                : 0        |                    |
19:                16384 -> 32767                : 0        |                    |
19:                32768 -> 65535                : 0        |                    |
19:                65536 -> 131071               : 0        |                    |
19:               131072 -> 262143               : 0        |                    |
19:               262144 -> 524287               : 0        |                    |
19:               524288 -> 1048575              : 0        |                    |
19:              1048576 -> 2097151              : 0        |                    |
19:              2097152 -> 4194303              : 0        |                    |
19:              4194304 -> 8388607              : 0        |                    |
19:              8388608 -> 16777215             : 0        |                    |
19:             16777216 -> 33554431             : 0        |                    |
19:             33554432 -> 67108863             : 0        |                    |
19:             67108864 -> 134217727            : 0        |                    |
19:            134217728 -> 268435455            : 0        |                    |
19:            268435456 -> 536870911            : 0        |                    |
19:            536870912 -> 1073741823           : 0        |                    |
19:           1073741824 -> 2147483647           : 1        |                    |
19:           2147483648 -> 4294967295           : 0        |                    |
19:           4294967296 -> 8589934591           : 0        |                    |
19:           8589934592 -> 17179869183          : 0        |                    |
19:          17179869184 -> 34359738367          : 0        |                    |
19:          34359738368 -> 68719476735          : 0        |                    |
19:          68719476736 -> 137438953471         : 0        |                    |
19:         137438953472 -> 274877906943         : 0        |                    |
19:         274877906944 -> 549755813887         : 0        |                    |
19:         549755813888 -> 1099511627775        : 104      |********************|
19: 
19: Bucket ptr = 'kworker/1:12'
19:      value               : count     distribution
19:          0 -> 1          : 0        |                                        |
19:          2 -> 3          : 0        |                                        |
19:          4 -> 7          : 0        |                                        |
19:          8 -> 15         : 0        |                                        |
19:         16 -> 31         : 0        |                                        |
19:         32 -> 63         : 0        |                                        |
19:         64 -> 127        : 0        |                                        |
19:        128 -> 255        : 0        |                                        |
19:        256 -> 511        : 0        |                                        |
19:        512 -> 1023       : 0        |                                        |
19:       1024 -> 2047       : 0        |                                        |
19:       2048 -> 4095       : 0        |                                        |
19:       4096 -> 8191       : 0        |                                        |
19:       8192 -> 16383      : 0        |                                        |
19:      16384 -> 32767      : 0        |                                        |
19:      32768 -> 65535      : 0        |                                        |
19:      65536 -> 131071     : 0        |                                        |
19:     131072 -> 262143     : 0        |                                        |
19:     262144 -> 524287     : 0        |                                        |
19:     524288 -> 1048575    : 0        |                                        |
19:    1048576 -> 2097151    : 0        |                                        |
19:    2097152 -> 4194303    : 0        |                                        |
19:    4194304 -> 8388607    : 0        |                                        |
19:    8388608 -> 16777215   : 0        |                                        |
19:   16777216 -> 33554431   : 0        |                                        |
19:   33554432 -> 67108863   : 2        |****************************************|
19: 
19: Bucket ptr = 'iscsid'
19:      value               : count     distribution
19:          0 -> 1          : 1        |****************************************|
19: 
19: Bucket ptr = 'swapper/0'
19:                value                         : count     distribution
19:                    0 -> 1                    : 0        |                    |
19:                    2 -> 3                    : 0        |                    |
19:                    4 -> 7                    : 0        |                    |
19:                    8 -> 15                   : 0        |                    |
19:                   16 -> 31                   : 0        |                    |
19:                   32 -> 63                   : 0        |                    |
19:                   64 -> 127                  : 0        |                    |
19:                  128 -> 255                  : 0        |                    |
19:                  256 -> 511                  : 0        |                    |
19:               ....
19: ----------------------------------------------------------------------
19: Ran 4 tests in 3.627s
19: 
19: OK
19:    512 -> 1023                 : 0        |                    |
19:                 1024 -> 2047                 : 0        |                    |
19:                 2048 -> 4095                 : 0        |                    |
19:                 4096 -> 8191                 : 0        |                    |
19:                 8192 -> 16383                : 0        |                    |
19:                16384 -> 32767                : 0        |                    |
19:                32768 -> 65535                : 0        |                    |
19:                65536 -> 131071               : 0        |                    |
19:               131072 -> 262143               : 0        |                    |
19:               262144 -> 524287               : 0        |                    |
19:               524288 -> 1048575              : 0        |                    |
19:              1048576 -> 2097151              : 0        |                    |
19:              2097152 -> 4194303              : 0        |                    |
19:              4194304 -> 8388607              : 0        |                    |
19:              8388608 -> 16777215             : 0        |                    |
19:             16777216 -> 33554431             : 6        |****                |
19:             33554432 -> 67108863             : 0        |                    |
19:             67108864 -> 134217727            : 0        |                    |
19:            134217728 -> 268435455            : 0        |                    |
19:            268435456 -> 536870911            : 0        |                    |
19:            536870912 -> 1073741823           : 0        |                    |
19:           1073741824 -> 2147483647           : 0        |                    |
19:           2147483648 -> 4294967295           : 0        |                    |
19:           4294967296 -> 8589934591           : 0        |                    |
19:           8589934592 -> 17179869183          : 0        |                    |
19:          17179869184 -> 34359738367          : 0        |                    |
19:          34359738368 -> 68719476735          : 28       |********************|
19:          68719476736 -> 137438953471         : 0        |                    |
19:         137438953472 -> 274877906943         : 0        |                    |
19:         274877906944 -> 549755813887         : 0        |                    |
19:         549755813888 -> 1099511627775        : 12       |********            |
19: 
19: Bucket ptr = 'kworker/0:4'
19:      value               : count     distribution
19:          0 -> 1          : 1        |****************************************|
19/44 Test #19: py_test_histogram ................   Passed    3.69 sec
test 20
      Start 20: py_array

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

21: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_uprobes" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/tests/python/test_uprobes.py"
21: Test timeout computed to be: 9.99988e+06
21: .Python 2.7.15rc1
21: .Arena 0:
21: system bytes     =   30621696
21: in use bytes     =    2976000
21: Total (incl. mmap):
21: system bytes     =   31412224
21: in use bytes     =    3766528
21: max mmap regions =          7
21: max mmap bytes   =    9203712
21: .
21: ----------------------------------------------------------------------
21: Ran 3 tests in 6.633s
21: 
21: OK
21/44 Test #21: py_uprobes .......................   Passed    6.70 sec
test 22
      Start 22: py_uprobes_2

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

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

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

25: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_test_perf_event" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/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.348s
25: 
25: OK (skipped=1)
25/44 Test #25: py_test_perf_event ...............   Passed    0.49 sec
test 26
      Start 26: py_test_utils

26: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_test_utils" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/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/44 Test #26: py_test_utils ....................   Passed    0.05 sec
test 27
      Start 27: py_test_percpu

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

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

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

30: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_test_tools_smoke" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/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/lib/python2.7/site.py", line 366, in __call__
30:     raise SystemExit(code)
30: SystemExit: None
30: .....'unknown': I need something more specific.
30: .'unknown': I need something more specific.
30: 'unknown': I need something more specific.
30: 'unknown': I need something more specific.
30: 'unknown': I need something more specific.
30: .......s.............'unknown': I need something more specific.
30: ......Killed
30: .s..........libbpf: failed to find valid kernel BTF
30: libbpf: vmlinux BTF is not found
30: ......'unknown': I need something more specific.
30: ...............'unknown': I need something more specific.
30: ...'unknown': I need something more specific.
30: .....'unknown': I need something more specific.
30: ...libbpf: failed to find valid kernel BTF
30: libbpf: vmlinux BTF is not found
30: ......
30: ----------------------------------------------------------------------
30: Ran 83 tests in 274.960s
30: 
30: OK (skipped=2)
30/44 Test #30: py_test_tools_smoke ..............   Passed  275.05 sec
test 31
      Start 31: py_test_tools_memleak

31: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_test_tools_memleak" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/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 23.716s
31: 
31: OK
31/44 Test #31: py_test_tools_memleak ............   Passed   23.76 sec
test 32
      Start 32: py_test_usdt

32: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_test_usdt" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/tests/python/test_usdt.py"
32: Test timeout computed to be: 9.99988e+06
32: <stdin>: In function ‘main’:
32: <stdin>:23:17: warning: null character(s) preserved in literal
32: <stdin>:25:42: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘uint64_t {aka long unsigned int}’ [-Wformat=]
32: <stdin>:28:17: warning: null character(s) preserved in literal
32: <stdin>:30:42: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘uint64_t {aka long unsigned int}’ [-Wformat=]
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 -fno-jump-tables -fmath-errno -masm-verbose -mconstructor-aliases -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -momit-leaf-frame-pointer -coverage-notes-file /usr/src/linux-headers-4.15.0-1009-gcp/main.gcno -nostdsysteminc -nobuiltininc -resource-dir lib/clang/6.0.0 -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/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/tests/python -D __BPF_TRACING__ -I arch/x86/include/ -I arch/x86/include/generated -I include -I arch/x86/include/uapi -I arch/x86/include/generated/uapi -I include/uapi -I include/generated/uapi -D __KERNEL__ -D __HAVE_BUILTIN_BSWAP16__ -D __HAVE_BUILTIN_BSWAP32__ -D __HAVE_BUILTIN_BSWAP64__ -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/linux-headers-4.15.0-1009-gcp -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 0x558778b5480bULL: *((int8_t *)dest) = ctx->ax; __asm__ __volatile__("": : :"memory"); return 0;
32:   case 0x558778b54811ULL: *((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 0x558778b5480bULL: { u64 __addr = ctx->bp + -204; __asm__ __volatile__("": : :"memory"); int32_t __res = 0x0; bpf_probe_read_user(&__res, sizeof(__res), (void *)__addr); *((int32_t *)dest) = __res; } return 0;
32:   case 0x558778b54811ULL: { u64 __addr = ctx->bp + -208; __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 0x558778b5480cULL: { u64 __addr = ctx->bp + -208; __asm__ __volatile__("": : :"memory"); int32_t __res = 0x0; bpf_probe_read_user(&__res, sizeof(__res), (void *)__addr); *((int32_t *)dest) = __res; } return 0;
32:   case 0x558778b5481fULL: *((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 0x558778b5480cULL: { u64 __addr = ctx->bp + -204; __asm__ __volatile__("": : :"memory"); int32_t __res = 0x0; bpf_probe_read_user(&__res, sizeof(__res), (void *)__addr); *((int32_t *)dest) = __res; } return 0;
32:   case 0x558778b5481fULL: *((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 3.050s
32: 
32: OK
32: Running from kernel directory at: /lib/modules/4.15.0-1009-gcp/build
32: str4
32: str5
32: str7
32: str6
32/44 Test #32: py_test_usdt .....................   Passed    3.35 sec
test 33
      Start 33: py_test_usdt2

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

34: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_test_usdt3" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/tests/python/test_usdt3.py"
34: Test timeout computed to be: 9.99988e+06
34: test:probe [sema 0x0]
34:   location #1 /proc/8612/root/tmp/tmp_78zi_/liba.so 0x581
34:     argument #1 4 signed   bytes @ *(bp - 4)
34:   location #2 /proc/8612/root/tmp/tmp_78zi_/libb.so 0x581
34:     argument #1 4 signed   bytes @ *(bp - 4)
34:   location #3 /proc/8612/root/tmp/tmp_78zi_/a.out 0x7b1
34:     argument #1 4 signed   bytes @ *(bp - 4)
34: test_dup_name:probe [sema 0x0]
34:   location #1 /proc/8612/root/tmp/tmp_78zi_/liba.so 0x582
34:     argument #1 4 signed   bytes @ *(bp - 4)
34:   location #2 /proc/8612/root/tmp/tmp_78zi_/libb.so 0x582
34:     argument #1 4 signed   bytes @ *(bp - 4)
34:   location #3 /proc/8612/root/tmp/tmp_78zi_/a.out 0x7b2
34:     argument #1 4 signed   bytes @ *(bp - 4)
34: libc:setjmp [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x3ebb1
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/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x3ec93
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/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x134bc3
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/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x3ecaf
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/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x134bdf
34:     argument #1 8 unsigned bytes @ di
34:     argument #2 4 signed   bytes @ ax
34:     argument #3 8 unsigned bytes @ dx
34: libc:memory_mallopt_arena_max [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x906e3
34:     argument #1 8 unsigned bytes @ ax
34:     argument #2 8 unsigned bytes @ *(&mp_ + 32)
34:   location #2 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x9ac79
34:     argument #1 8 unsigned bytes @ bx
34:     argument #2 8 unsigned bytes @ *(&mp_ + 32)
34: libc:memory_mallopt_arena_test [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x906f3
34:     argument #1 8 unsigned bytes @ ax
34:     argument #2 8 unsigned bytes @ *(&mp_ + 24)
34:   location #2 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x9ac91
34:     argument #1 8 unsigned bytes @ bx
34:     argument #2 8 unsigned bytes @ *(&mp_ + 24)
34: libc:memory_tunable_tcache_max_bytes [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x9070b
34:     argument #1 8 unsigned bytes @ ax
34:     argument #2 8 unsigned bytes @ *(&mp_ + 88)
34: libc:memory_tunable_tcache_count [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x90743
34:     argument #1 8 unsigned bytes @ ax
34:     argument #2 8 unsigned bytes @ *(&mp_ + 96)
34: libc:memory_tunable_tcache_unsorted_limit [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x90753
34:     argument #1 8 unsigned bytes @ ax
34:     argument #2 8 unsigned bytes @ *(&mp_ + 104)
34: libc:memory_mallopt_trim_threshold [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x90863
34:     argument #1 8 unsigned bytes @ ax
34:     argument #2 8 unsigned bytes @ *(&mp_ + 0)
34:     argument #3 4 signed   bytes @ *(&mp_ + 52)
34:   location #2 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x9ac10
34:     argument #1 8 unsigned bytes @ bx
34:     argument #2 8 unsigned bytes @ *(&mp_ + 0)
34:     argument #3 4 signed   bytes @ *(&mp_ + 52)
34: libc:memory_mallopt_top_pad [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x90883
34:     argument #1 8 unsigned bytes @ ax
34:     argument #2 8 unsigned bytes @ *(&mp_ + 8)
34:     argument #3 4 signed   bytes @ *(&mp_ + 52)
34:   location #2 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x9ad40
34:     argument #1 8 unsigned bytes @ bx
34:     argument #2 8 unsigned bytes @ *(&mp_ + 8)
34:     argument #3 4 signed   bytes @ *(&mp_ + 52)
34: libc:memory_mallopt_mmap_threshold [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x908ab
34:     argument #1 8 unsigned bytes @ ax
34:     argument #2 8 unsigned bytes @ *(&mp_ + 16)
34:     argument #3 4 signed   bytes @ *(&mp_ + 52)
34:   location #2 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x9ad1f
34:     argument #1 8 unsigned bytes @ bx
34:     argument #2 8 unsigned bytes @ *(&mp_ + 16)
34:     argument #3 4 signed   bytes @ *(&mp_ + 52)
34: libc:memory_mallopt_mmap_max [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x908c3
34:     argument #1 4 signed   bytes @ ax
34:     argument #2 4 signed   bytes @ *(&mp_ + 44)
34:     argument #3 4 signed   bytes @ *(&mp_ + 52)
34:   location #2 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x9acf0
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_perturb [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x908e3
34:     argument #1 4 signed   bytes @ ax
34:     argument #2 4 signed   bytes @ *(&perturb_byte + 0)
34:   location #2 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x9aca0
34:     argument #1 4 signed   bytes @ bx
34:     argument #2 4 signed   bytes @ *(&perturb_byte + 0)
34: libc:memory_heap_new [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x90c4e
34:     argument #1 8 unsigned bytes @ bx
34:     argument #2 8 unsigned bytes @ bp
34: libc:memory_sbrk_less [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x9138d
34:     argument #1 8 unsigned bytes @ ax
34:     argument #2 8 signed   bytes @ bp
34: libc:memory_arena_reuse [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x91865
34:     argument #1 8 unsigned bytes @ dx
34:     argument #2 8 unsigned bytes @ bx
34: libc:memory_arena_reuse_wait [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x91975
34:     argument #1 8 unsigned bytes @ dx
34:     argument #2 8 unsigned bytes @ dx
34:     argument #3 8 unsigned bytes @ bx
34: libc:memory_arena_new [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x91bd0
34:     argument #1 8 unsigned bytes @ dx
34:     argument #2 8 unsigned bytes @ bp
34: libc:memory_arena_reuse_free_list [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x91e8c
34:     argument #1 8 unsigned bytes @ dx
34: libc:memory_arena_retry [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x91fc9
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/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x933e6
34:     argument #1 8 unsigned bytes @ r10
34:     argument #2 8 unsigned bytes @ ax
34:   location #2 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x98214
34:     argument #1 8 unsigned bytes @ r14
34:     argument #2 8 unsigned bytes @ ax
34:   location #3 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x19bfd0
34:     argument #1 8 unsigned bytes @ r11
34:     argument #2 8 unsigned bytes @ ax
34: libc:memory_heap_less [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x93803
34:     argument #1 8 unsigned bytes @ r10
34:     argument #2 8 unsigned bytes @ r15
34:   location #2 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x9863c
34:     argument #1 8 unsigned bytes @ r14
34:     argument #2 8 unsigned bytes @ r15
34:   location #3 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x19c44e
34:     argument #1 8 unsigned bytes @ r11
34:     argument #2 8 unsigned bytes @ r15
34: libc:memory_heap_more [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x93b3a
34:     argument #1 8 unsigned bytes @ r9
34:     argument #2 8 unsigned bytes @ r8
34: libc:memory_sbrk_more [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x93daf
34:     argument #1 8 unsigned bytes @ ax
34:     argument #2 8 signed   bytes @ r12
34: libc:memory_mallopt_free_dyn_thresholds [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x97b16
34:     argument #1 8 unsigned bytes @ si
34:     argument #2 8 unsigned bytes @ ax
34:   location #2 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x19baa8
34:     argument #1 8 unsigned bytes @ si
34:     argument #2 8 unsigned bytes @ ax
34:   location #3 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x19c24c
34:     argument #1 8 unsigned bytes @ ax
34:     argument #2 8 unsigned bytes @ dx
34: libc:memory_malloc_retry [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x96df0
34:     argument #1 8 unsigned bytes @ bx
34:   location #2 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x973e0
34:     argument #1 8 unsigned bytes @ bx
34: libc:memory_memalign_retry [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x978e8
34:     argument #1 8 unsigned bytes @ r13
34:     argument #2 8 unsigned bytes @ bx
34:   location #2 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x99528
34:     argument #1 8 unsigned bytes @ r12
34:     argument #2 8 unsigned bytes @ bx
34:   location #3 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x99a48
34:     argument #1 8 unsigned bytes @ r13
34:     argument #2 8 unsigned bytes @ bx
34:   location #4 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x99ff8
34:     argument #1 8 unsigned bytes @ bp
34:     argument #2 8 unsigned bytes @ bx
34:   location #5 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x9b103
34:     argument #1 8 unsigned bytes @ bp
34:     argument #2 8 unsigned bytes @ bx
34: libc:memory_realloc_retry [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x98bf5
34:     argument #1 8 unsigned bytes @ bp
34:     argument #2 8 unsigned bytes @ bx
34:   location #2 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x99045
34:     argument #1 8 unsigned bytes @ bp
34:     argument #2 8 unsigned bytes @ bx
34: libc:memory_calloc_retry [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x9a3b0
34:     argument #1 8 unsigned bytes @ bp
34: libc:memory_mallopt [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x9abd4
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/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x9acc6
34:     argument #1 4 signed   bytes @ bx
34:     argument #2 8 unsigned bytes @ *(&global_max_fast + 0)
34: libc:lll_lock_wait_private [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/libc-2.27.so 0x1306a4
34:     argument #1 8 unsigned bytes @ di
34: rtld:init_start [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/ld-2.27.so 0x3df2
34:     argument #1 4 signed   bytes @ 0
34:     argument #2 8 unsigned bytes @ bx
34: rtld:init_complete [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/ld-2.27.so 0x44d1
34:     argument #1 4 signed   bytes @ 0
34:     argument #2 8 unsigned bytes @ bx
34: rtld:map_failed [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/ld-2.27.so 0x5ba6
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/8612/root/lib/x86_64-linux-gnu/ld-2.27.so 0x6b2a
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/8612/root/lib/x86_64-linux-gnu/ld-2.27.so 0x14faa
34:     argument #1 8 signed   bytes @ *(r14 + 40)
34:     argument #2 8 unsigned bytes @ bx
34:     argument #3 8 unsigned bytes @ r12
34: rtld:reloc_start [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/ld-2.27.so 0x1507b
34:     argument #1 8 signed   bytes @ *(r14 + 40)
34:     argument #2 8 unsigned bytes @ *(bp - 72)
34: rtld:reloc_complete [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/ld-2.27.so 0x1541c
34:     argument #1 8 signed   bytes @ *(r14 + 40)
34:     argument #2 8 unsigned bytes @ *(bp - 72)
34:     argument #3 8 unsigned bytes @ r12
34: rtld:unmap_start [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/ld-2.27.so 0x160b7
34:     argument #1 8 signed   bytes @ r14
34:     argument #2 8 unsigned bytes @ bx
34: rtld:unmap_complete [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/ld-2.27.so 0x16354
34:     argument #1 8 signed   bytes @ *(bp - 120)
34:     argument #2 8 unsigned bytes @ bx
34: rtld:setjmp [sema 0x0]
34:   location #1 /proc/8612/root/lib/x86_64-linux-gnu/ld-2.27.so 0x1d0cd
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/8612/root/lib/x86_64-linux-gnu/ld-2.27.so 0x1d10d
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/8612/root/lib/x86_64-linux-gnu/ld-2.27.so 0x1d129
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.114s
34: 
34: OK
34: temp directory: /tmp/tmp_78zi_
34/44 Test #34: py_test_usdt3 ....................   Passed    1.28 sec
test 35
      Start 35: py_test_license

35: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_test_license" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/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.715s
35: 
35: OK (expected failures=5)
35/44 Test #35: py_test_license ..................   Passed    2.78 sec
test 36
      Start 36: py_test_free_bcc_memory

36: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_test_free_bcc_memory" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/tests/python/test_free_bcc_memory.py"
36: Test timeout computed to be: 9.99988e+06
36: .
36: ----------------------------------------------------------------------
36: Ran 1 test in 0.265s
36: 
36: OK
36: Before freeing llvm memory: RssFile:  43488 kB
36: After  freeing llvm memory: RssFile:  11888 kB
36/44 Test #36: py_test_free_bcc_memory ..........   Passed    0.32 sec
test 37
      Start 37: py_test_rlimit

37: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_test_rlimit" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/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.463s
37: 
37: OK
37/44 Test #37: py_test_rlimit ...................   Passed    0.51 sec
test 38
      Start 38: py_test_lpm_trie

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

39: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_ringbuf" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/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/44 Test #39: py_ringbuf .......................   Passed    0.06 sec
test 40
      Start 40: py_queuestack

40: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "py_queuestack" "sudo" "/home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/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/44 Test #40: py_queuestack ....................   Passed    0.05 sec
test 41
      Start 41: lua_test_clang

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

42: Test command: /home/iovisor/jenkins/workspace/bcc-pr/label/ubuntu1804/build/tests/wrapper.sh "lua_test_uprobes" "sudo" "/usr/bin/luajit" "test_uprobes.lua"
42: Test timeout computed to be: 9.99988e+06
42: Python 2.7.15rc1
42: Arena 0:
42: system bytes     =   26599424
42: in use bytes     =    1095552
42: Total (incl. mmap):
42: system bytes     =   26599424
42: in use bytes     =    1095552
42: max mmap regions =          7
42: max mmap bytes   =    8556544
42: ..
42: Ran 2 tests in 0.491 seconds, 2 successes, 0 failures
42: OK
42/44 Test #42: lua_test_uprobes .................   Passed    0.63 sec
test 43
      Start 43: lua_test_dump

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

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

100% tests passed, 0 tests failed out of 44

Total Test time (real) = 468.53 sec
+ head -n 1 Testing/TAG
+ cp Testing/20200929-0124/Test.xml ./CTestResults.xml
Taking single-use slave ubuntu1804-slave-649 offline.
Finished: SUCCESS