Console Output

Skipping 402 KB.. Full Log
1: -	strcase("ETOOMANYREFS", 109);
1: -	strcase("ETIMEDOUT", 110);
1: -	strcase("ECONNREFUSED", 111);
1: -	strcase("EHOSTDOWN", 112);
1: -	strcase("EHOSTUNREACH", 113);
1: -	strcase("EALREADY", 114);
1: -	strcase("EINPROGRESS", 115);
1: -	strcase("ESTALE", 116);
1: -	strcase("EUCLEAN", 117);
1: -	strcase("ENOTNAM", 118);
1: -	strcase("ENAVAIL", 119);
1: -	strcase("EISNAM", 120);
1: -	strcase("EREMOTEIO", 121);
1: -	strcase("EDQUOT", 122);
1: -	strcase("ENOMEDIUM", 123);
1: -	strcase("EMEDIUMTYPE", 124);
1: -	strcase("ECANCELED", 125);
1: -	strcase("ENOKEY", 126);
1: -	strcase("EKEYEXPIRED", 127);
1: -	strcase("EKEYREVOKED", 128);
1: -	strcase("EKEYREJECTED", 129);
1: -	strcase("EOWNERDEAD", 130);
1: -	strcase("ENOTRECOVERABLE", 131);
1: -	strcase("ERFKILL", 132);
1: -	strcase("EHWPOISON", 133);
1: +static int errno_by_name_x86_64(const char *errno_name) {
1: +#define strcase(X, N)           \
1: +  if (!strcmp(errno_name, (X))) \
1: +  return N
1: +
1: +  strcase("EPERM", 1);
1: +  strcase("ENOENT", 2);
1: +  strcase("ESRCH", 3);
1: +  strcase("EINTR", 4);
1: +  strcase("EIO", 5);
1: +  strcase("ENXIO", 6);
1: +  strcase("E2BIG", 7);
1: +  strcase("ENOEXEC", 8);
1: +  strcase("EBADF", 9);
1: +  strcase("ECHILD", 10);
1: +  strcase("EAGAIN", 11);
1: +  strcase("EWOULDBLOCK", 11);
1: +  strcase("ENOMEM", 12);
1: +  strcase("EACCES", 13);
1: +  strcase("EFAULT", 14);
1: +  strcase("ENOTBLK", 15);
1: +  strcase("EBUSY", 16);
1: +  strcase("EEXIST", 17);
1: +  strcase("EXDEV", 18);
1: +  strcase("ENODEV", 19);
1: +  strcase("ENOTDIR", 20);
1: +  strcase("EISDIR", 21);
1: +  strcase("EINVAL", 22);
1: +  strcase("ENFILE", 23);
1: +  strcase("EMFILE", 24);
1: +  strcase("ENOTTY", 25);
1: +  strcase("ETXTBSY", 26);
1: +  strcase("EFBIG", 27);
1: +  strcase("ENOSPC", 28);
1: +  strcase("ESPIPE", 29);
1: +  strcase("EROFS", 30);
1: +  strcase("EMLINK", 31);
1: +  strcase("EPIPE", 32);
1: +  strcase("EDOM", 33);
1: +  strcase("ERANGE", 34);
1: +  strcase("EDEADLK", 35);
1: +  strcase("EDEADLOCK", 35);
1: +  strcase("ENAMETOOLONG", 36);
1: +  strcase("ENOLCK", 37);
1: +  strcase("ENOSYS", 38);
1: +  strcase("ENOTEMPTY", 39);
1: +  strcase("ELOOP", 40);
1: +  strcase("ENOMSG", 42);
1: +  strcase("EIDRM", 43);
1: +  strcase("ECHRNG", 44);
1: +  strcase("EL2NSYNC", 45);
1: +  strcase("EL3HLT", 46);
1: +  strcase("EL3RST", 47);
1: +  strcase("ELNRNG", 48);
1: +  strcase("EUNATCH", 49);
1: +  strcase("ENOCSI", 50);
1: +  strcase("EL2HLT", 51);
1: +  strcase("EBADE", 52);
1: +  strcase("EBADR", 53);
1: +  strcase("EXFULL", 54);
1: +  strcase("ENOANO", 55);
1: +  strcase("EBADRQC", 56);
1: +  strcase("EBADSLT", 57);
1: +  strcase("EBFONT", 59);
1: +  strcase("ENOSTR", 60);
1: +  strcase("ENODATA", 61);
1: +  strcase("ETIME", 62);
1: +  strcase("ENOSR", 63);
1: +  strcase("ENONET", 64);
1: +  strcase("ENOPKG", 65);
1: +  strcase("EREMOTE", 66);
1: +  strcase("ENOLINK", 67);
1: +  strcase("EADV", 68);
1: +  strcase("ESRMNT", 69);
1: +  strcase("ECOMM", 70);
1: +  strcase("EPROTO", 71);
1: +  strcase("EMULTIHOP", 72);
1: +  strcase("EDOTDOT", 73);
1: +  strcase("EBADMSG", 74);
1: +  strcase("EOVERFLOW", 75);
1: +  strcase("ENOTUNIQ", 76);
1: +  strcase("EBADFD", 77);
1: +  strcase("EREMCHG", 78);
1: +  strcase("ELIBACC", 79);
1: +  strcase("ELIBBAD", 80);
1: +  strcase("ELIBSCN", 81);
1: +  strcase("ELIBMAX", 82);
1: +  strcase("ELIBEXEC", 83);
1: +  strcase("EILSEQ", 84);
1: +  strcase("ERESTART", 85);
1: +  strcase("ESTRPIPE", 86);
1: +  strcase("EUSERS", 87);
1: +  strcase("ENOTSOCK", 88);
1: +  strcase("EDESTADDRREQ", 89);
1: +  strcase("EMSGSIZE", 90);
1: +  strcase("EPROTOTYPE", 91);
1: +  strcase("ENOPROTOOPT", 92);
1: +  strcase("EPROTONOSUPPORT", 93);
1: +  strcase("ESOCKTNOSUPPORT", 94);
1: +  strcase("ENOTSUP", 95);
1: +  strcase("EOPNOTSUPP", 95);
1: +  strcase("EPFNOSUPPORT", 96);
1: +  strcase("EAFNOSUPPORT", 97);
1: +  strcase("EADDRINUSE", 98);
1: +  strcase("EADDRNOTAVAIL", 99);
1: +  strcase("ENETDOWN", 100);
1: +  strcase("ENETUNREACH", 101);
1: +  strcase("ENETRESET", 102);
1: +  strcase("ECONNABORTED", 103);
1: +  strcase("ECONNRESET", 104);
1: +  strcase("ENOBUFS", 105);
1: +  strcase("EISCONN", 106);
1: +  strcase("ENOTCONN", 107);
1: +  strcase("ESHUTDOWN", 108);
1: +  strcase("ETOOMANYREFS", 109);
1: +  strcase("ETIMEDOUT", 110);
1: +  strcase("ECONNREFUSED", 111);
1: +  strcase("EHOSTDOWN", 112);
1: +  strcase("EHOSTUNREACH", 113);
1: +  strcase("EALREADY", 114);
1: +  strcase("EINPROGRESS", 115);
1: +  strcase("ESTALE", 116);
1: +  strcase("EUCLEAN", 117);
1: +  strcase("ENOTNAM", 118);
1: +  strcase("ENAVAIL", 119);
1: +  strcase("EISNAM", 120);
1: +  strcase("EREMOTEIO", 121);
1: +  strcase("EDQUOT", 122);
1: +  strcase("ENOMEDIUM", 123);
1: +  strcase("EMEDIUMTYPE", 124);
1: +  strcase("ECANCELED", 125);
1: +  strcase("ENOKEY", 126);
1: +  strcase("EKEYEXPIRED", 127);
1: +  strcase("EKEYREVOKED", 128);
1: +  strcase("EKEYREJECTED", 129);
1: +  strcase("EOWNERDEAD", 130);
1: +  strcase("ENOTRECOVERABLE", 131);
1: +  strcase("ERFKILL", 132);
1: +  strcase("EHWPOISON", 133);
1:  
1:  #undef strcase
1:  
1: -	return -1;
1: -
1: +  return -1;
1:  }
1:  #endif
1:  
1:  /* Try to find the errno number using the errno(1) program */
1: -static int errno_by_name_dynamic(const char *errno_name)
1: -{
1: -	int len = strlen(errno_name);
1: -	int err, number = -1;
1: -	char buf[128];
1: -	char cmd[64];
1: -	char *end;
1: -	long val;
1: -	FILE *f;
1: -
1: -	/* sanity check to not call popen with random input */
1: -	for (int i = 0; i < len; i++) {
1: -		if (errno_name[i] < 'A' || errno_name[i] > 'Z') {
1: -			warn("errno_name contains invalid char 0x%02x: %s\n",
1: -					errno_name[i], errno_name);
1: -			return -1;
1: -		}
1: -	}
1: -
1: -	snprintf(cmd, sizeof(cmd), "errno %s", errno_name);
1: -	f = popen(cmd, "r");
1: -	if (!f) {
1: -		warn("popen: %s: %s\n", cmd, strerror(errno));
1: -		return -1;
1: -	}
1: -
1: -	if (!fgets(buf, sizeof(buf), f)) {
1: -		goto close;
1: -	} else if (ferror(f)) {
1: -		warn("fgets: %s\n", strerror(errno));
1: -		goto close;
1: -	}
1: -
1: -	// expecting "<name> <number> <description>"
1: -	if (strncmp(errno_name, buf, len) || strlen(buf) < len+2) {
1: -		warn("expected '%s': %s\n", errno_name, buf);
1: -		goto close;
1: -	}
1: -	errno = 0;
1: -	val = strtol(buf+len+2, &end, 10);
1: -	if (errno || end == (buf+len+2) || number < 0 || number > INT_MAX) {
1: -		warn("can't parse the second column, expected int: %s\n", buf);
1: -		goto close;
1: -	}
1: -	number = val;
1: +static int errno_by_name_dynamic(const char *errno_name) {
1: +  int len = strlen(errno_name);
1: +  int err, number = -1;
1: +  char buf[128];
1: +  char cmd[64];
1: +  char *end;
1: +  long val;
1: +  FILE *f;
1: +
1: +  /* sanity check to not call popen with random input */
1: +  for (int i = 0; i < len; i++) {
1: +    if (errno_name[i] < 'A' || errno_name[i] > 'Z') {
1: +      warn("errno_name contains invalid char 0x%02x: %s\n", errno_name[i],
1: +           errno_name);
1: +      return -1;
1: +    }
1: +  }
1: +
1: +  snprintf(cmd, sizeof(cmd), "errno %s", errno_name);
1: +  f = popen(cmd, "r");
1: +  if (!f) {
1: +    warn("popen: %s: %s\n", cmd, strerror(errno));
1: +    return -1;
1: +  }
1: +
1: +  if (!fgets(buf, sizeof(buf), f)) {
1: +    goto close;
1: +  } else if (ferror(f)) {
1: +    warn("fgets: %s\n", strerror(errno));
1: +    goto close;
1: +  }
1: +
1: +  // expecting "<name> <number> <description>"
1: +  if (strncmp(errno_name, buf, len) || strlen(buf) < len + 2) {
1: +    warn("expected '%s': %s\n", errno_name, buf);
1: +    goto close;
1: +  }
1: +  errno = 0;
1: +  val = strtol(buf + len + 2, &end, 10);
1: +  if (errno || end == (buf + len + 2) || number < 0 || number > INT_MAX) {
1: +    warn("can't parse the second column, expected int: %s\n", buf);
1: +    goto close;
1: +  }
1: +  number = val;
1:  
1:  close:
1: -	err = pclose(f);
1: -	if (err < 0)
1: -		warn("pclose: %s\n", strerror(errno));
1: +  err = pclose(f);
1: +  if (err < 0)
1: +    warn("pclose: %s\n", strerror(errno));
1:  #ifndef __x86_64__
1: -	/* Ignore the error for x86_64 where we have a table compiled in */
1: -	else if (err && WEXITSTATUS(err) == 127) {
1: -		warn("errno(1) required for errno name/number mapping\n");
1: -	} else if (err) {
1: -		warn("errno(1) exit status (see wait(2)): 0x%x\n", err);
1: -	}
1: +  /* Ignore the error for x86_64 where we have a table compiled in */
1: +  else if (err && WEXITSTATUS(err) == 127) {
1: +    warn("errno(1) required for errno name/number mapping\n");
1: +  } else if (err) {
1: +    warn("errno(1) exit status (see wait(2)): 0x%x\n", err);
1: +  }
1:  #endif
1: -	return number;
1: +  return number;
1:  }
1:  
1: -int errno_by_name(const char *errno_name)
1: -{
1: +int errno_by_name(const char *errno_name) {
1:  #ifdef __x86_64__
1: -	int err;
1: +  int err;
1:  
1: -	err = errno_by_name_x86_64(errno_name);
1: -	if (err >= 0)
1: -		return err;
1: +  err = errno_by_name_x86_64(errno_name);
1: +  if (err >= 0)
1: +    return err;
1:  #endif
1:  
1: -	return errno_by_name_dynamic(errno_name);
1: +  return errno_by_name_dynamic(errno_name);
1:  }
1: diff --git a/libbpf-tools/filelife.c b/libbpf-tools/filelife.c
1: index 020f0487..0ca62ce7 100644
1: --- a/libbpf-tools/filelife.c
1: +++ b/libbpf-tools/filelife.c
1: @@ -127,8 +127,8 @@ int main(int argc, char **argv)
1:  
1:  	obj = filelife_bpf__open();
1:  	if (!obj) {
1: -		fprintf(stderr, "failed to open and/or load BPF object\n");
1: -		return 1;
1: +          fprintf(stderr, "failed to open and/or load BPF object\n");
1: +          return 1;
1:  	}
1:  
1:  	/* initialize global data (filtering options) */
1: diff --git a/libbpf-tools/syscall_helpers.c b/libbpf-tools/syscall_helpers.c
1: index c72a1709..50d32196 100644
1: --- a/libbpf-tools/syscall_helpers.c
1: +++ b/libbpf-tools/syscall_helpers.c
1: @@ -1,10 +1,10 @@
1:  // SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause)
1:  // Copyright (c) 2020 Anton Protopopov
1: -#include <stdlib.h>
1: -#include <string.h>
1: +#include <errno.h>
1:  #include <limits.h>
1:  #include <stdio.h>
1: -#include <errno.h>
1: +#include <stdlib.h>
1: +#include <string.h>
1:  
1:  static const char **syscall_names;
1:  static size_t syscall_names_size;
1: @@ -12,113 +12,107 @@ static size_t syscall_names_size;
1:  #define warn(...) fprintf(stderr, __VA_ARGS__)
1:  #define MAX(x, y) (((x) > (y)) ? (x) : (y))
1:  
1: -static const char *parse_syscall(const char *buf, int *number)
1: -{
1: -	char *end;
1: -	long x;
1: +static const char *parse_syscall(const char *buf, int *number) {
1: +  char *end;
1: +  long x;
1:  
1: -	errno = 0;
1: -	x = strtol(buf, &end, 10);
1: -	if (errno) {
1: -		warn("strtol(%s): %s\n", buf, strerror(errno));
1: -		return NULL;
1: -	} else if (end == buf) {
1: -		warn("strtol(%s): no digits found\n", buf);
1: -		return NULL;
1: -	} else if (x < 0 || x > INT_MAX) {
1: -		warn("strtol(%s): bad syscall number: %ld\n", buf, x);
1: -		return NULL;
1: -	}
1: -	if (*end != '\t') {
1: -		warn("bad input: %s (expected <num>\t<name>)\n", buf);
1: -		return NULL;
1: -	}
1: +  errno = 0;
1: +  x = strtol(buf, &end, 10);
1: +  if (errno) {
1: +    warn("strtol(%s): %s\n", buf, strerror(errno));
1: +    return NULL;
1: +  } else if (end == buf) {
1: +    warn("strtol(%s): no digits found\n", buf);
1: +    return NULL;
1: +  } else if (x < 0 || x > INT_MAX) {
1: +    warn("strtol(%s): bad syscall number: %ld\n", buf, x);
1: +    return NULL;
1: +  }
1: +  if (*end != '\t') {
1: +    warn("bad input: %s (expected <num>\t<name>)\n", buf);
1: +    return NULL;
1: +  }
1:  
1: -	*number = x;
1: -	return ++end;
1: +  *number = x;
1: +  return ++end;
1:  }
1:  
1: -void init_syscall_names(void)
1: -{
1: -	size_t old_size, size = 1024;
1: -	const char *name;
1: -	char buf[64];
1: -	int number;
1: -	int err;
1: -	FILE *f;
1: +void init_syscall_names(void) {
1: +  size_t old_size, size = 1024;
1: +  const char *name;
1: +  char buf[64];
1: +  int number;
1: +  int err;
1: +  FILE *f;
1:  
1: -	f = popen("ausyscall --dump 2>/dev/null", "r");
1: -	if (!f) {
1: -		warn("popen: ausyscall --dump: %s\n", strerror(errno));
1: -		return;
1: -	}
1: +  f = popen("ausyscall --dump 2>/dev/null", "r");
1: +  if (!f) {
1: +    warn("popen: ausyscall --dump: %s\n", strerror(errno));
1: +    return;
1: +  }
1:  
1: -	syscall_names = calloc(size, sizeof(char *));
1: -	if (!syscall_names) {
1: -		warn("calloc: %s\n", strerror(errno));
1: -		goto close;
1: -	}
1: +  syscall_names = calloc(size, sizeof(char *));
1: +  if (!syscall_names) {
1: +    warn("calloc: %s\n", strerror(errno));
1: +    goto close;
1: +  }
1:  
1: -	/* skip the header */
1: -	fgets(buf, sizeof(buf), f);
1: +  /* skip the header */
1: +  fgets(buf, sizeof(buf), f);
1:  
1: -	while (fgets(buf, sizeof(buf), f)) {
1: -		if (buf[strlen(buf) - 1] == '\n')
1: -			buf[strlen(buf) - 1] = '\0';
1: +  while (fgets(buf, sizeof(buf), f)) {
1: +    if (buf[strlen(buf) - 1] == '\n')
1: +      buf[strlen(buf) - 1] = '\0';
1:  
1: -		name = parse_syscall(buf, &number);
1: -		if (!name || !name[0])
1: -			goto close;
1: +    name = parse_syscall(buf, &number);
1: +    if (!name || !name[0])
1: +      goto close;
1:  
1: -		/* In a rare case when syscall number is > than initial 1024 */
1: -		if (number >= size) {
1: -			old_size = size;
1: -			size = 1024 * (1 + number / 1024);
1: -			syscall_names = realloc(syscall_names,
1: -						size * sizeof(char *));
1: -			if (!syscall_names) {
1: -				warn("realloc: %s\n", strerror(errno));
1: -				goto close;
1: -			}
1: -			memset(syscall_names+old_size, 0,
1: -			       (size - old_size) * sizeof(char *));
1: -		}
1: +    /* In a rare case when syscall number is > than initial 1024 */
1: +    if (number >= size) {
1: +      old_size = size;
1: +      size = 1024 * (1 + number / 1024);
1: +      syscall_names = realloc(syscall_names, size * sizeof(char *));
1: +      if (!syscall_names) {
1: +        warn("realloc: %s\n", strerror(errno));
1: +        goto close;
1: +      }
1: +      memset(syscall_names + old_size, 0, (size - old_size) * sizeof(char *));
1: +    }
1:  
1: -		if (syscall_names[number]) {
1: -			warn("duplicate number: %d (stored: %s)",
1: -				number, syscall_names[number]);
1: -			goto close;
1: -		}
1: +    if (syscall_names[number]) {
1: +      warn("duplicate number: %d (stored: %s)", number, syscall_names[number]);
1: +      goto close;
1: +    }
1:  
1: -		syscall_names[number] = strdup(name);
1: -		if (!syscall_names[number]) {
1: -			warn("strdup: %s\n", strerror(errno));
1: -			goto close;
1: -		}
1: -		syscall_names_size = MAX(number+1, syscall_names_size);
1: -	}
1: +    syscall_names[number] = strdup(name);
1: +    if (!syscall_names[number]) {
1: +      warn("strdup: %s\n", strerror(errno));
1: +      goto close;
1: +    }
1: +    syscall_names_size = MAX(number + 1, syscall_names_size);
1: +  }
1:  
1: -	if (ferror(f))
1: -		warn("fgets: %s\n", strerror(errno));
1: +  if (ferror(f))
1: +    warn("fgets: %s\n", strerror(errno));
1:  close:
1: -	err = pclose(f);
1: -	if (err < 0)
1: -		warn("pclose: %s\n", strerror(errno));
1: +  err = pclose(f);
1: +  if (err < 0)
1: +    warn("pclose: %s\n", strerror(errno));
1:  #ifndef __x86_64__
1: -	/* Ignore the error for x86_64 where we have a table compiled in */
1: -	else if (err && WEXITSTATUS(err) == 127) {
1: -		warn("ausyscall required for syscalls number/name mapping\n");
1: -	} else if (err) {
1: -		warn("ausyscall exit status (see wait(2)): 0x%x\n", err);
1: -	}
1: +  /* Ignore the error for x86_64 where we have a table compiled in */
1: +  else if (err && WEXITSTATUS(err) == 127) {
1: +    warn("ausyscall required for syscalls number/name mapping\n");
1: +  } else if (err) {
1: +    warn("ausyscall exit status (see wait(2)): 0x%x\n", err);
1: +  }
1:  #endif
1:  }
1:  
1: -void free_syscall_names(void)
1: -{
1: -	for (size_t i = 0; i < syscall_names_size; i++)
1: -		free((void *) syscall_names[i]);
1: -	free(syscall_names);
1: +void free_syscall_names(void) {
1: +  for (size_t i = 0; i < syscall_names_size; i++)
1: +    free((void *)syscall_names[i]);
1: +  free(syscall_names);
1:  }
1:  
1:  /*
1: @@ -134,393 +128,391 @@ void free_syscall_names(void)
1:   */
1:  #ifdef __x86_64__
1:  static const char *syscall_names_x86_64[] = {
1: -	[0] = "read",
1: -	[1] = "write",
1: -	[2] = "open",
1: -	[3] = "close",
1: -	[4] = "stat",
1: -	[5] = "fstat",
1: -	[6] = "lstat",
1: -	[7] = "poll",
1: -	[8] = "lseek",
1: -	[9] = "mmap",
1: -	[10] = "mprotect",
1: -	[11] = "munmap",
1: -	[12] = "brk",
1: -	[13] = "rt_sigaction",
1: -	[14] = "rt_sigprocmask",
1: -	[15] = "rt_sigreturn",
1: -	[16] = "ioctl",
1: -	[17] = "pread64",
1: -	[18] = "pwrite64",
1: -	[19] = "readv",
1: -	[20] = "writev",
1: -	[21] = "access",
1: -	[22] = "pipe",
1: -	[23] = "select",
1: -	[24] = "sched_yield",
1: -	[25] = "mremap",
1: -	[26] = "msync",
1: -	[27] = "mincore",
1: -	[28] = "madvise",
1: -	[29] = "shmget",
1: -	[30] = "shmat",
1: -	[31] = "shmctl",
1: -	[32] = "dup",
1: -	[33] = "dup2",
1: -	[34] = "pause",
1: -	[35] = "nanosleep",
1: -	[36] = "getitimer",
1: -	[37] = "alarm",
1: -	[38] = "setitimer",
1: -	[39] = "getpid",
1: -	[40] = "sendfile",
1: -	[41] = "socket",
1: -	[42] = "connect",
1: -	[43] = "accept",
1: -	[44] = "sendto",
1: -	[45] = "recvfrom",
1: -	[46] = "sendmsg",
1: -	[47] = "recvmsg",
1: -	[48] = "shutdown",
1: -	[49] = "bind",
1: -	[50] = "listen",
1: -	[51] = "getsockname",
1: -	[52] = "getpeername",
1: -	[53] = "socketpair",
1: -	[54] = "setsockopt",
1: -	[55] = "getsockopt",
1: -	[56] = "clone",
1: -	[57] = "fork",
1: -	[58] = "vfork",
1: -	[59] = "execve",
1: -	[60] = "exit",
1: -	[61] = "wait4",
1: -	[62] = "kill",
1: -	[63] = "uname",
1: -	[64] = "semget",
1: -	[65] = "semop",
1: -	[66] = "semctl",
1: -	[67] = "shmdt",
1: -	[68] = "msgget",
1: -	[69] = "msgsnd",
1: -	[70] = "msgrcv",
1: -	[71] = "msgctl",
1: -	[72] = "fcntl",
1: -	[73] = "flock",
1: -	[74] = "fsync",
1: -	[75] = "fdatasync",
1: -	[76] = "truncate",
1: -	[77] = "ftruncate",
1: -	[78] = "getdents",
1: -	[79] = "getcwd",
1: -	[80] = "chdir",
1: -	[81] = "fchdir",
1: -	[82] = "rename",
1: -	[83] = "mkdir",
1: -	[84] = "rmdir",
1: -	[85] = "creat",
1: -	[86] = "link",
1: -	[87] = "unlink",
1: -	[88] = "symlink",
1: -	[89] = "readlink",
1: -	[90] = "chmod",
1: -	[91] = "fchmod",
1: -	[92] = "chown",
1: -	[93] = "fchown",
1: -	[94] = "lchown",
1: -	[95] = "umask",
1: -	[96] = "gettimeofday",
1: -	[97] = "getrlimit",
1: -	[98] = "getrusage",
1: -	[99] = "sysinfo",
1: -	[100] = "times",
1: -	[101] = "ptrace",
1: -	[102] = "getuid",
1: -	[103] = "syslog",
1: -	[104] = "getgid",
1: -	[105] = "setuid",
1: -	[106] = "setgid",
1: -	[107] = "geteuid",
1: -	[108] = "getegid",
1: -	[109] = "setpgid",
1: -	[110] = "getppid",
1: -	[111] = "getpgrp",
1: -	[112] = "setsid",
1: -	[113] = "setreuid",
1: -	[114] = "setregid",
1: -	[115] = "getgroups",
1: -	[116] = "setgroups",
1: -	[117] = "setresuid",
1: -	[118] = "getresuid",
1: -	[119] = "setresgid",
1: -	[120] = "getresgid",
1: -	[121] = "getpgid",
1: -	[122] = "setfsuid",
1: -	[123] = "setfsgid",
1: -	[124] = "getsid",
1: -	[125] = "capget",
1: -	[126] = "capset",
1: -	[127] = "rt_sigpending",
1: -	[128] = "rt_sigtimedwait",
1: -	[129] = "rt_sigqueueinfo",
1: -	[130] = "rt_sigsuspend",
1: -	[131] = "sigaltstack",
1: -	[132] = "utime",
1: -	[133] = "mknod",
1: -	[134] = "uselib",
1: -	[135] = "personality",
1: -	[136] = "ustat",
1: -	[137] = "statfs",
1: -	[138] = "fstatfs",
1: -	[139] = "sysfs",
1: -	[140] = "getpriority",
1: -	[141] = "setpriority",
1: -	[142] = "sched_setparam",
1: -	[143] = "sched_getparam",
1: -	[144] = "sched_setscheduler",
1: -	[145] = "sched_getscheduler",
1: -	[146] = "sched_get_priority_max",
1: -	[147] = "sched_get_priority_min",
1: -	[148] = "sched_rr_get_interval",
1: -	[149] = "mlock",
1: -	[150] = "munlock",
1: -	[151] = "mlockall",
1: -	[152] = "munlockall",
1: -	[153] = "vhangup",
1: -	[154] = "modify_ldt",
1: -	[155] = "pivot_root",
1: -	[156] = "_sysctl",
1: -	[157] = "prctl",
1: -	[158] = "arch_prctl",
1: -	[159] = "adjtimex",
1: -	[160] = "setrlimit",
1: -	[161] = "chroot",
1: -	[162] = "sync",
1: -	[163] = "acct",
1: -	[164] = "settimeofday",
1: -	[165] = "mount",
1: -	[166] = "umount2",
1: -	[167] = "swapon",
1: -	[168] = "swapoff",
1: -	[169] = "reboot",
1: -	[170] = "sethostname",
1: -	[171] = "setdomainname",
1: -	[172] = "iopl",
1: -	[173] = "ioperm",
1: -	[174] = "create_module",
1: -	[175] = "init_module",
1: -	[176] = "delete_module",
1: -	[177] = "get_kernel_syms",
1: -	[178] = "query_module",
1: -	[179] = "quotactl",
1: -	[180] = "nfsservctl",
1: -	[181] = "getpmsg",
1: -	[182] = "putpmsg",
1: -	[183] = "afs_syscall",
1: -	[184] = "tuxcall",
1: -	[185] = "security",
1: -	[186] = "gettid",
1: -	[187] = "readahead",
1: -	[188] = "setxattr",
1: -	[189] = "lsetxattr",
1: -	[190] = "fsetxattr",
1: -	[191] = "getxattr",
1: -	[192] = "lgetxattr",
1: -	[193] = "fgetxattr",
1: -	[194] = "listxattr",
1: -	[195] = "llistxattr",
1: -	[196] = "flistxattr",
1: -	[197] = "removexattr",
1: -	[198] = "lremovexattr",
1: -	[199] = "fremovexattr",
1: -	[200] = "tkill",
1: -	[201] = "time",
1: -	[202] = "futex",
1: -	[203] = "sched_setaffinity",
1: -	[204] = "sched_getaffinity",
1: -	[205] = "set_thread_area",
1: -	[206] = "io_setup",
1: -	[207] = "io_destroy",
1: -	[208] = "io_getevents",
1: -	[209] = "io_submit",
1: -	[210] = "io_cancel",
1: -	[211] = "get_thread_area",
1: -	[212] = "lookup_dcookie",
1: -	[213] = "epoll_create",
1: -	[214] = "epoll_ctl_old",
1: -	[215] = "epoll_wait_old",
1: -	[216] = "remap_file_pages",
1: -	[217] = "getdents64",
1: -	[218] = "set_tid_address",
1: -	[219] = "restart_syscall",
1: -	[220] = "semtimedop",
1: -	[221] = "fadvise64",
1: -	[222] = "timer_create",
1: -	[223] = "timer_settime",
1: -	[224] = "timer_gettime",
1: -	[225] = "timer_getoverrun",
1: -	[226] = "timer_delete",
1: -	[227] = "clock_settime",
1: -	[228] = "clock_gettime",
1: -	[229] = "clock_getres",
1: -	[230] = "clock_nanosleep",
1: -	[231] = "exit_group",
1: -	[232] = "epoll_wait",
1: -	[233] = "epoll_ctl",
1: -	[234] = "tgkill",
1: -	[235] = "utimes",
1: -	[236] = "vserver",
1: -	[237] = "mbind",
1: -	[238] = "set_mempolicy",
1: -	[239] = "get_mempolicy",
1: -	[240] = "mq_open",
1: -	[241] = "mq_unlink",
1: -	[242] = "mq_timedsend",
1: -	[243] = "mq_timedreceive",
1: -	[244] = "mq_notify",
1: -	[245] = "mq_getsetattr",
1: -	[246] = "kexec_load",
1: -	[247] = "waitid",
1: -	[248] = "add_key",
1: -	[249] = "request_key",
1: -	[250] = "keyctl",
1: -	[251] = "ioprio_set",
1: -	[252] = "ioprio_get",
1: -	[253] = "inotify_init",
1: -	[254] = "inotify_add_watch",
1: -	[255] = "inotify_rm_watch",
1: -	[256] = "migrate_pages",
1: -	[257] = "openat",
1: -	[258] = "mkdirat",
1: -	[259] = "mknodat",
1: -	[260] = "fchownat",
1: -	[261] = "futimesat",
1: -	[262] = "newfstatat",
1: -	[263] = "unlinkat",
1: -	[264] = "renameat",
1: -	[265] = "linkat",
1: -	[266] = "symlinkat",
1: -	[267] = "readlinkat",
1: -	[268] = "fchmodat",
1: -	[269] = "faccessat",
1: -	[270] = "pselect6",
1: -	[271] = "ppoll",
1: -	[272] = "unshare",
1: -	[273] = "set_robust_list",
1: -	[274] = "get_robust_list",
1: -	[275] = "splice",
1: -	[276] = "tee",
1: -	[277] = "sync_file_range",
1: -	[278] = "vmsplice",
1: -	[279] = "move_pages",
1: -	[280] = "utimensat",
1: -	[281] = "epoll_pwait",
1: -	[282] = "signalfd",
1: -	[283] = "timerfd_create",
1: -	[284] = "eventfd",
1: -	[285] = "fallocate",
1: -	[286] = "timerfd_settime",
1: -	[287] = "timerfd_gettime",
1: -	[288] = "accept4",
1: -	[289] = "signalfd4",
1: -	[290] = "eventfd2",
1: -	[291] = "epoll_create1",
1: -	[292] = "dup3",
1: -	[293] = "pipe2",
1: -	[294] = "inotify_init1",
1: -	[295] = "preadv",
1: -	[296] = "pwritev",
1: -	[297] = "rt_tgsigqueueinfo",
1: -	[298] = "perf_event_open",
1: -	[299] = "recvmmsg",
1: -	[300] = "fanotify_init",
1: -	[301] = "fanotify_mark",
1: -	[302] = "prlimit64",
1: -	[303] = "name_to_handle_at",
1: -	[304] = "open_by_handle_at",
1: -	[305] = "clock_adjtime",
1: -	[306] = "syncfs",
1: -	[307] = "sendmmsg",
1: -	[308] = "setns",
1: -	[309] = "getcpu",
1: -	[310] = "process_vm_readv",
1: -	[311] = "process_vm_writev",
1: -	[312] = "kcmp",
1: -	[313] = "finit_module",
1: -	[314] = "sched_setattr",
1: -	[315] = "sched_getattr",
1: -	[316] = "renameat2",
1: -	[317] = "seccomp",
1: -	[318] = "getrandom",
1: -	[319] = "memfd_create",
1: -	[320] = "kexec_file_load",
1: -	[321] = "bpf",
1: -	[322] = "execveat",
1: -	[323] = "userfaultfd",
1: -	[324] = "membarrier",
1: -	[325] = "mlock2",
1: -	[326] = "copy_file_range",
1: -	[327] = "preadv2",
1: -	[328] = "pwritev2",
1: -	[329] = "pkey_mprotect",
1: -	[330] = "pkey_alloc",
1: -	[331] = "pkey_free",
1: -	[332] = "statx",
1: -	[333] = "io_pgetevents",
1: -	[334] = "rseq",
1: -	[424] = "pidfd_send_signal",
1: -	[425] = "io_uring_setup",
1: -	[426] = "io_uring_enter",
1: -	[427] = "io_uring_register",
1: -	[428] = "open_tree",
1: -	[429] = "move_mount",
1: -	[430] = "fsopen",
1: -	[431] = "fsconfig",
1: -	[432] = "fsmount",
1: -	[433] = "fspick",
1: -	[434] = "pidfd_open",
1: -	[435] = "clone3",
1: -	[437] = "openat2",
1: -	[438] = "pidfd_getfd",
1: +    [0] = "read",
1: +    [1] = "write",
1: +    [2] = "open",
1: +    [3] = "close",
1: +    [4] = "stat",
1: +    [5] = "fstat",
1: +    [6] = "lstat",
1: +    [7] = "poll",
1: +    [8] = "lseek",
1: +    [9] = "mmap",
1: +    [10] = "mprotect",
1: +    [11] = "munmap",
1: +    [12] = "brk",
1: +    [13] = "rt_sigaction",
1: +    [14] = "rt_sigprocmask",
1: +    [15] = "rt_sigreturn",
1: +    [16] = "ioctl",
1: +    [17] = "pread64",
1: +    [18] = "pwrite64",
1: +    [19] = "readv",
1: +    [20] = "writev",
1: +    [21] = "access",
1: +    [22] = "pipe",
1: +    [23] = "select",
1: +    [24] = "sched_yield",
1: +    [25] = "mremap",
1: +    [26] = "msync",
1: +    [27] = "mincore",
1: +    [28] = "madvise",
1: +    [29] = "shmget",
1: +    [30] = "shmat",
1: +    [31] = "shmctl",
1: +    [32] = "dup",
1: +    [33] = "dup2",
1: +    [34] = "pause",
1: +    [35] = "nanosleep",
1: +    [36] = "getitimer",
1: +    [37] = "alarm",
1: +    [38] = "setitimer",
1: +    [39] = "getpid",
1: +    [40] = "sendfile",
1: +    [41] = "socket",
1: +    [42] = "connect",
1: +    [43] = "accept",
1: +    [44] = "sendto",
1: +    [45] = "recvfrom",
1: +    [46] = "sendmsg",
1: +    [47] = "recvmsg",
1: +    [48] = "shutdown",
1: +    [49] = "bind",
1: +    [50] = "listen",
1: +    [51] = "getsockname",
1: +    [52] = "getpeername",
1: +    [53] = "socketpair",
1: +    [54] = "setsockopt",
1: +    [55] = "getsockopt",
1: +    [56] = "clone",
1: +    [57] = "fork",
1: +    [58] = "vfork",
1: +    [59] = "execve",
1: +    [60] = "exit",
1: +    [61] = "wait4",
1: +    [62] = "kill",
1: +    [63] = "uname",
1: +    [64] = "semget",
1: +    [65] = "semop",
1: +    [66] = "semctl",
1: +    [67] = "shmdt",
1: +    [68] = "msgget",
1: +    [69] = "msgsnd",
1: +    [70] = "msgrcv",
1: +    [71] = "msgctl",
1: +    [72] = "fcntl",
1: +    [73] = "flock",
1: +    [74] = "fsync",
1: +    [75] = "fdatasync",
1: +    [76] = "truncate",
1: +    [77] = "ftruncate",
1: +    [78] = "getdents",
1: +    [79] = "getcwd",
1: +    [80] = "chdir",
1: +    [81] = "fchdir",
1: +    [82] = "rename",
1: +    [83] = "mkdir",
1: +    [84] = "rmdir",
1: +    [85] = "creat",
1: +    [86] = "link",
1: +    [87] = "unlink",
1: +    [88] = "symlink",
1: +    [89] = "readlink",
1: +    [90] = "chmod",
1: +    [91] = "fchmod",
1: +    [92] = "chown",
1: +    [93] = "fchown",
1: +    [94] = "lchown",
1: +    [95] = "umask",
1: +    [96] = "gettimeofday",
1: +    [97] = "getrlimit",
1: +    [98] = "getrusage",
1: +    [99] = "sysinfo",
1: +    [100] = "times",
1: +    [101] = "ptrace",
1: +    [102] = "getuid",
1: +    [103] = "syslog",
1: +    [104] = "getgid",
1: +    [105] = "setuid",
1: +    [106] = "setgid",
1: +    [107] = "geteuid",
1: +    [108] = "getegid",
1: +    [109] = "setpgid",
1: +    [110] = "getppid",
1: +    [111] = "getpgrp",
1: +    [112] = "setsid",
1: +    [113] = "setreuid",
1: +    [114] = "setregid",
1: +    [115] = "getgroups",
1: +    [116] = "setgroups",
1: +    [117] = "setresuid",
1: +    [118] = "getresuid",
1: +    [119] = "setresgid",
1: +    [120] = "getresgid",
1: +    [121] = "getpgid",
1: +    [122] = "setfsuid",
1: +    [123] = "setfsgid",
1: +    [124] = "getsid",
1: +    [125] = "capget",
1: +    [126] = "capset",
1: +    [127] = "rt_sigpending",
1: +    [128] = "rt_sigtimedwait",
1: +    [129] = "rt_sigqueueinfo",
1: +    [130] = "rt_sigsuspend",
1: +    [131] = "sigaltstack",
1: +    [132] = "utime",
1: +    [133] = "mknod",
1: +    [134] = "uselib",
1: +    [135] = "personality",
1: +    [136] = "ustat",
1: +    [137] = "statfs",
1: +    [138] = "fstatfs",
1: +    [139] = "sysfs",
1: +    [140] = "getpriority",
1: +    [141] = "setpriority",
1: +    [142] = "sched_setparam",
1: +    [143] = "sched_getparam",
1: +    [144] = "sched_setscheduler",
1: +    [145] = "sched_getscheduler",
1: +    [146] = "sched_get_priority_max",
1: +    [147] = "sched_get_priority_min",
1: +    [148] = "sched_rr_get_interval",
1: +    [149] = "mlock",
1: +    [150] = "munlock",
1: +    [151] = "mlockall",
1: +    [152] = "munlockall",
1: +    [153] = "vhangup",
1: +    [154] = "modify_ldt",
1: +    [155] = "pivot_root",
1: +    [156] = "_sysctl",
1: +    [157] = "prctl",
1: +    [158] = "arch_prctl",
1: +    [159] = "adjtimex",
1: +    [160] = "setrlimit",
1: +    [161] = "chroot",
1: +    [162] = "sync",
1: +    [163] = "acct",
1: +    [164] = "settimeofday",
1: +    [165] = "mount",
1: +    [166] = "umount2",
1: +    [167] = "swapon",
1: +    [168] = "swapoff",
1: +    [169] = "reboot",
1: +    [170] = "sethostname",
1: +    [171] = "setdomainname",
1: +    [172] = "iopl",
1: +    [173] = "ioperm",
1: +    [174] = "create_module",
1: +    [175] = "init_module",
1: +    [176] = "delete_module",
1: +    [177] = "get_kernel_syms",
1: +    [178] = "query_module",
1: +    [179] = "quotactl",
1: +    [180] = "nfsservctl",
1: +    [181] = "getpmsg",
1: +    [182] = "putpmsg",
1: +    [183] = "afs_syscall",
1: +    [184] = "tuxcall",
1: +    [185] = "security",
1: +    [186] = "gettid",
1: +    [187] = "readahead",
1: +    [188] = "setxattr",
1: +    [189] = "lsetxattr",
1: +    [190] = "fsetxattr",
1: +    [191] = "getxattr",
1: +    [192] = "lgetxattr",
1: +    [193] = "fgetxattr",
1: +    [194] = "listxattr",
1: +    [195] = "llistxattr",
1: +    [196] = "flistxattr",
1: +    [197] = "removexattr",
1: +    [198] = "lremovexattr",
1: +    [199] = "fremovexattr",
1: +    [200] = "tkill",
1: +    [201] = "time",
1: +    [202] = "futex",
1: +    [203] = "sched_setaffinity",
1: +    [204] = "sched_getaffinity",
1: +    [205] = "set_thread_area",
1: +    [206] = "io_setup",
1: +    [207] = "io_destroy",
1: +    [208] = "io_getevents",
1: +    [209] = "io_submit",
1: +    [210] = "io_cancel",
1: +    [211] = "get_thread_area",
1: +    [212] = "lookup_dcookie",
1: +    [213] = "epoll_create",
1: +    [214] = "epoll_ctl_old",
1: +    [215] = "epoll_wait_old",
1: +    [216] = "remap_file_pages",
1: +    [217] = "getdents64",
1: +    [218] = "set_tid_address",
1: +    [219] = "restart_syscall",
1: +    [220] = "semtimedop",
1: +    [221] = "fadvise64",
1: +    [222] = "timer_create",
1: +    [223] = "timer_settime",
1: +    [224] = "timer_gettime",
1: +    [225] = "timer_getoverrun",
1: +    [226] = "timer_delete",
1: +    [227] = "clock_settime",
1: +    [228] = "clock_gettime",
1: +    [229] = "clock_getres",
1: +    [230] = "clock_nanosleep",
1: +    [231] = "exit_group",
1: +    [232] = "epoll_wait",
1: +    [233] = "epoll_ctl",
1: +    [234] = "tgkill",
1: +    [235] = "utimes",
1: +    [236] = "vserver",
1: +    [237] = "mbind",
1: +    [238] = "set_mempolicy",
1: +    [239] = "get_mempolicy",
1: +    [240] = "mq_open",
1: +    [241] = "mq_unlink",
1: +    [242] = "mq_timedsend",
1: +    [243] = "mq_timedreceive",
1: +    [244] = "mq_notify",
1: +    [245] = "mq_getsetattr",
1: +    [246] = "kexec_load",
1: +    [247] = "waitid",
1: +    [248] = "add_key",
1: +    [249] = "request_key",
1: +    [250] = "keyctl",
1: +    [251] = "ioprio_set",
1: +    [252] = "ioprio_get",
1: +    [253] = "inotify_init",
1: +    [254] = "inotify_add_watch",
1: +    [255] = "inotify_rm_watch",
1: +    [256] = "migrate_pages",
1: +    [257] = "openat",
1: +    [258] = "mkdirat",
1: +    [259] = "mknodat",
1: +    [260] = "fchownat",
1: +    [261] = "futimesat",
1: +    [262] = "newfstatat",
1: +    [263] = "unlinkat",
1: +    [264] = "renameat",
1: +    [265] = "linkat",
1: +    [266] = "symlinkat",
1: +    [267] = "readlinkat",
1: +    [268] = "fchmodat",
1: +    [269] = "faccessat",
1: +    [270] = "pselect6",
1: +    [271] = "ppoll",
1: +    [272] = "unshare",
1: +    [273] = "set_robust_list",
1: +    [274] = "get_robust_list",
1: +    [275] = "splice",
1: +    [276] = "tee",
1: +    [277] = "sync_file_range",
1: +    [278] = "vmsplice",
1: +    [279] = "move_pages",
1: +    [280] = "utimensat",
1: +    [281] = "epoll_pwait",
1: +    [282] = "signalfd",
1: +    [283] = "timerfd_create",
1: +    [284] = "eventfd",
1: +    [285] = "fallocate",
1: +    [286] = "timerfd_settime",
1: +    [287] = "timerfd_gettime",
1: +    [288] = "accept4",
1: +    [289] = "signalfd4",
1: +    [290] = "eventfd2",
1: +    [291] = "epoll_create1",
1: +    [292] = "dup3",
1: +    [293] = "pipe2",
1: +    [294] = "inotify_init1",
1: +    [295] = "preadv",
1: +    [296] = "pwritev",
1: +    [297] = "rt_tgsigqueueinfo",
1: +    [298] = "perf_event_open",
1: +    [299] = "recvmmsg",
1: +    [300] = "fanotify_init",
1: +    [301] = "fanotify_mark",
1: +    [302] = "prlimit64",
1: +    [303] = "name_to_handle_at",
1: +    [304] = "open_by_handle_at",
1: +    [305] = "clock_adjtime",
1: +    [306] = "syncfs",
1: +    [307] = "sendmmsg",
1: +    [308] = "setns",
1: +    [309] = "getcpu",
1: +    [310] = "process_vm_readv",
1: +    [311] = "process_vm_writev",
1: +    [312] = "kcmp",
1: +    [313] = "finit_module",
1: +    [314] = "sched_setattr",
1: +    [315] = "sched_getattr",
1: +    [316] = "renameat2",
1: +    [317] = "seccomp",
1: +    [318] = "getrandom",
1: +    [319] = "memfd_create",
1: +    [320] = "kexec_file_load",
1: +    [321] = "bpf",
1: +    [322] = "execveat",
1: +    [323] = "userfaultfd",
1: +    [324] = "membarrier",
1: +    [325] = "mlock2",
1: +    [326] = "copy_file_range",
1: +    [327] = "preadv2",
1: +    [328] = "pwritev2",
1: +    [329] = "pkey_mprotect",
1: +    [330] = "pkey_alloc",
1: +    [331] = "pkey_free",
1: +    [332] = "statx",
1: +    [333] = "io_pgetevents",
1: +    [334] = "rseq",
1: +    [424] = "pidfd_send_signal",
1: +    [425] = "io_uring_setup",
1: +    [426] = "io_uring_enter",
1: +    [427] = "io_uring_register",
1: +    [428] = "open_tree",
1: +    [429] = "move_mount",
1: +    [430] = "fsopen",
1: +    [431] = "fsconfig",
1: +    [432] = "fsmount",
1: +    [433] = "fspick",
1: +    [434] = "pidfd_open",
1: +    [435] = "clone3",
1: +    [437] = "openat2",
1: +    [438] = "pidfd_getfd",
1:  };
1: -size_t syscall_names_x86_64_size = sizeof(syscall_names_x86_64)/sizeof(char*);
1: +size_t syscall_names_x86_64_size =
1: +    sizeof(syscall_names_x86_64) / sizeof(char *);
1:  #endif
1:  
1: -void syscall_name(unsigned n, char *buf, size_t size)
1: -{
1: -	const char *name = NULL;
1: +void syscall_name(unsigned n, char *buf, size_t size) {
1: +  const char *name = NULL;
1:  
1: -	if (n < syscall_names_size)
1: -		name = syscall_names[n];
1: +  if (n < syscall_names_size)
1: +    name = syscall_names[n];
1:  #ifdef __x86_64__
1: -	else if (n < syscall_names_x86_64_size)
1: -		name = syscall_names_x86_64[n];
1: +  else if (n < syscall_names_x86_64_size)
1: +    name = syscall_names_x86_64[n];
1:  #endif
1:  
1: -	if (name)
1: -		strncpy(buf, name, size-1);
1: -	else
1: -		snprintf(buf, size, "[unknown: %u]", n);
1: +  if (name)
1: +    strncpy(buf, name, size - 1);
1: +  else
1: +    snprintf(buf, size, "[unknown: %u]", n);
1:  }
1:  
1: -int list_syscalls(void)
1: -{
1: -	const char **list = syscall_names;
1: -	size_t size = syscall_names_size;
1: +int list_syscalls(void) {
1: +  const char **list = syscall_names;
1: +  size_t size = syscall_names_size;
1:  
1:  #ifdef __x86_64__
1: -	if (!size) {
1: -		size = syscall_names_x86_64_size;
1: -		list = syscall_names_x86_64;
1: -	}
1: +  if (!size) {
1: +    size = syscall_names_x86_64_size;
1: +    list = syscall_names_x86_64;
1: +  }
1:  #endif
1:  
1: -	for (size_t i = 0; i < size; i++) {
1: -		if (list[i])
1: -			printf("%3zd: %s\n", i, list[i]);
1: -	}
1: +  for (size_t i = 0; i < size; i++) {
1: +    if (list[i])
1: +      printf("%3zd: %s\n", i, list[i]);
1: +  }
1:  
1: -	return (!list || !size);
1: +  return (!list || !size);
1:  }
1: -
1: diff --git a/libbpf-tools/syscount.bpf.c b/libbpf-tools/syscount.bpf.c
1: index ffac0be2..7eab9490 100644
1: --- a/libbpf-tools/syscount.bpf.c
1: +++ b/libbpf-tools/syscount.bpf.c
1: @@ -2,12 +2,12 @@
1:  // Copyright (c) 2020 Anton Protopopov
1:  //
1:  // Based on syscount(8) from BCC by Sasha Goldshtein
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 <string.h>
1:  #include "syscount.h"
1: +#include "vmlinux.h"
1:  
1:  const volatile bool count_by_process = false;
1:  const volatile bool measure_latency = false;
1: @@ -16,105 +16,100 @@ const volatile int filter_errno = false;
1:  const volatile pid_t filter_pid = 0;
1:  
1:  struct {
1: -	__uint(type, BPF_MAP_TYPE_HASH);
1: -	__uint(max_entries, MAX_ENTRIES);
1: -	__type(key, u32);
1: -	__type(value, u64);
1: -	__uint(map_flags, BPF_F_NO_PREALLOC);
1: +  __uint(type, BPF_MAP_TYPE_HASH);
1: +  __uint(max_entries, MAX_ENTRIES);
1: +  __type(key, u32);
1: +  __type(value, u64);
1: +  __uint(map_flags, BPF_F_NO_PREALLOC);
1:  } start SEC(".maps");
1:  
1:  struct {
1: -	__uint(type, BPF_MAP_TYPE_HASH);
1: -	__uint(max_entries, MAX_ENTRIES);
1: -	__type(key, u32);
1: -	__type(value, struct data_t);
1: -	__uint(map_flags, BPF_F_NO_PREALLOC);
1: +  __uint(type, BPF_MAP_TYPE_HASH);
1: +  __uint(max_entries, MAX_ENTRIES);
1: +  __type(key, u32);
1: +  __type(value, struct data_t);
1: +  __uint(map_flags, BPF_F_NO_PREALLOC);
1:  } data SEC(".maps");
1:  
1: -static __always_inline
1: -void *bpf_map_lookup_or_try_init(void *map, void *key, const void *init)
1: -{
1: -	void *val;
1: -	int err;
1: +static __always_inline void *bpf_map_lookup_or_try_init(void *map, void *key,
1: +                                                        const void *init) {
1: +  void *val;
1: +  int err;
1:  
1: -	val = bpf_map_lookup_elem(map, key);
1: -	if (val)
1: -		return val;
1: +  val = bpf_map_lookup_elem(map, key);
1: +  if (val)
1: +    return val;
1:  
1: -	err = bpf_map_update_elem(map, key, init, 0);
1: -	if (err)
1: -		return (void *) 0;
1: +  err = bpf_map_update_elem(map, key, init, 0);
1: +  if (err)
1: +    return (void *)0;
1:  
1: -	return bpf_map_lookup_elem(map, key);
1: +  return bpf_map_lookup_elem(map, key);
1:  }
1:  
1: -static __always_inline
1: -void save_proc_name(struct data_t *val)
1: -{
1: -	struct task_struct *current = (void *)bpf_get_current_task();
1: +static __always_inline void save_proc_name(struct data_t *val) {
1: +  struct task_struct *current = (void *)bpf_get_current_task();
1:  
1: -	/* We should save the process name every time because it can be
1: -	 * changed (e.g., by exec).  This can be optimized later by managing
1: -	 * this field with the help of tp/sched/sched_process_exec and
1: -	 * raw_tp/task_rename. */
1: -	BPF_CORE_READ_STR_INTO(&val->comm, current, group_leader, comm);
1: +  /* We should save the process name every time because it can be
1: +   * changed (e.g., by exec).  This can be optimized later by managing
1: +   * this field with the help of tp/sched/sched_process_exec and
1: +   * raw_tp/task_rename. */
1: +  BPF_CORE_READ_STR_INTO(&val->comm, current, group_leader, comm);
1:  }
1:  
1:  SEC("tracepoint/raw_syscalls/sys_enter")
1: -int sys_enter(struct trace_event_raw_sys_enter *args)
1: -{
1: -	u64 id = bpf_get_current_pid_tgid();
1: -	pid_t pid = id >> 32;
1: -	u32 tid = id;
1: -	u64 ts;
1: -
1: -	if (filter_pid && pid != filter_pid)
1: -		return 0;
1: -
1: -	ts = bpf_ktime_get_ns();
1: -	bpf_map_update_elem(&start, &tid, &ts, 0);
1: -	return 0;
1: +int sys_enter(struct trace_event_raw_sys_enter *args) {
1: +  u64 id = bpf_get_current_pid_tgid();
1: +  pid_t pid = id >> 32;
1: +  u32 tid = id;
1: +  u64 ts;
1: +
1: +  if (filter_pid && pid != filter_pid)
1: +    return 0;
1: +
1: +  ts = bpf_ktime_get_ns();
1: +  bpf_map_update_elem(&start, &tid, &ts, 0);
1: +  return 0;
1:  }
1:  
1:  SEC("tracepoint/raw_syscalls/sys_exit")
1: -int sys_exit(struct trace_event_raw_sys_exit *args)
1: -{
1: -	struct task_struct *current;
1: -	u64 id = bpf_get_current_pid_tgid();
1: -	static const struct data_t zero;
1: -	pid_t pid = id >> 32;
1: -	struct data_t *val;
1: -	u64 *start_ts;
1: -	u32 tid = id;
1: -	u32 key;
1: -
1: -	/* this happens when there is an interrupt */
1: -	if (args->id == -1)
1: -		return 0;
1: -
1: -	if (filter_pid && pid != filter_pid)
1: -		return 0;
1: -	if (filter_failed && args->ret >= 0)
1: -		return 0;
1: -	if (filter_errno && args->ret != -filter_errno)
1: -		return 0;
1: -
1: -	if (measure_latency) {
1: -		start_ts = bpf_map_lookup_elem(&start, &tid);
1: -		if (!start_ts)
1: -			return 0;
1: -	}
1: -
1: -	key = (count_by_process) ? pid : args->id;
1: -	val = bpf_map_lookup_or_try_init(&data, &key, &zero);
1: -	if (val) {
1: -		val->count++;
1: -		if (count_by_process)
1: -			save_proc_name(val);
1: -		if (measure_latency)
1: -			val->total_ns += bpf_ktime_get_ns() - *start_ts;
1: -	}
1: -	return 0;
1: +int sys_exit(struct trace_event_raw_sys_exit *args) {
1: +  struct task_struct *current;
1: +  u64 id = bpf_get_current_pid_tgid();
1: +  static const struct data_t zero;
1: +  pid_t pid = id >> 32;
1: +  struct data_t *val;
1: +  u64 *start_ts;
1: +  u32 tid = id;
1: +  u32 key;
1: +
1: +  /* this happens when there is an interrupt */
1: +  if (args->id == -1)
1: +    return 0;
1: +
1: +  if (filter_pid && pid != filter_pid)
1: +    return 0;
1: +  if (filter_failed && args->ret >= 0)
1: +    return 0;
1: +  if (filter_errno && args->ret != -filter_errno)
1: +    return 0;
1: +
1: +  if (measure_latency) {
1: +    start_ts = bpf_map_lookup_elem(&start, &tid);
1: +    if (!start_ts)
1: +      return 0;
1: +  }
1: +
1: +  key = (count_by_process) ? pid : args->id;
1: +  val = bpf_map_lookup_or_try_init(&data, &key, &zero);
1: +  if (val) {
1: +    val->count++;
1: +    if (count_by_process)
1: +      save_proc_name(val);
1: +    if (measure_latency)
1: +      val->total_ns += bpf_ktime_get_ns() - *start_ts;
1: +  }
1: +  return 0;
1:  }
1:  
1:  char LICENSE[] SEC("license") = "GPL";
1: diff --git a/libbpf-tools/syscount.c b/libbpf-tools/syscount.c
1: index 98cb5c6a..1c247d23 100644
1: --- a/libbpf-tools/syscount.c
1: +++ b/libbpf-tools/syscount.c
1: @@ -2,481 +2,461 @@
1:  // Copyright (c) 2020 Anton Protopopov
1:  //
1:  // Based on syscount(8) from BCC by Sasha Goldshtein
1: -#include <sys/resource.h>
1: -#include <unistd.h>
1: -#include <signal.h>
1: -#include <fcntl.h>
1: -#include <time.h>
1: +#include "syscount.h"
1:  #include <argp.h>
1:  #include <bpf/bpf.h>
1: -#include "syscount.h"
1: -#include "syscount.skel.h"
1: +#include <fcntl.h>
1: +#include <signal.h>
1: +#include <sys/resource.h>
1: +#include <time.h>
1: +#include <unistd.h>
1:  #include "errno_helpers.h"
1:  #include "syscall_helpers.h"
1: +#include "syscount.skel.h"
1:  
1:  /* This structure extends data_t by adding a key item which should be sorted
1:   * together with the count and total_ns fields */
1:  struct data_ext_t {
1: -	__u64 count;
1: -	__u64 total_ns;
1: -	char comm[TASK_COMM_LEN];
1: -	__u32 key;
1: +  __u64 count;
1: +  __u64 total_ns;
1: +  char comm[TASK_COMM_LEN];
1: +  __u32 key;
1:  };
1:  
1: -
1:  #define warn(...) fprintf(stderr, __VA_ARGS__)
1:  
1:  const char *argp_program_version = "syscount 0.1";
1:  const char *argp_program_bug_address = "<bpf@vger.kernel.org>";
1:  static const char argp_program_doc[] =
1: -"\nsyscount: summarize syscall counts and latencies\n"
1: -"\n"
1: -"EXAMPLES:\n"
1: -"    syscount                 # print top 10 syscalls by count every second\n"
1: -"    syscount -p $(pidof dd)  # look only at a particular process\n"
1: -"    syscount -L              # measure and sort output by latency\n"
1: -"    syscount -P              # group statistics by pid, not by syscall\n"
1: -"    syscount -x -i 5         # count only failed syscalls\n"
1: -"    syscount -e ENOENT -i 5  # count only syscalls failed with a given errno"
1: -;
1: +    "\nsyscount: summarize syscall counts and latencies\n"
1: +    "\n"
1: +    "EXAMPLES:\n"
1: +    "    syscount                 # print top 10 syscalls by count every "
1: +    "second\n"
1: +    "    syscount -p $(pidof dd)  # look only at a particular process\n"
1: +    "    syscount -L              # measure and sort output by latency\n"
1: +    "    syscount -P              # group statistics by pid, not by syscall\n"
1: +    "    syscount -x -i 5         # count only failed syscalls\n"
1: +    "    syscount -e ENOENT -i 5  # count only syscalls failed with a given "
1: +    "errno";
1:  
1:  static const struct argp_option opts[] = {
1: -	{ "verbose", 'v', NULL, 0, "Verbose debug output" },
1: -	{ "pid", 'p', "PID", 0, "Process PID to trace" },
1: -	{ "interval", 'i', "INTERVAL", 0, "Print summary at this interval"
1: -				" (seconds), 0 for infinite wait (default)" },
1: -	{ "duration", 'd', "DURATION", 0, "Total tracing duration (seconds)" },
1: -	{ "top", 'T', "TOP", 0, "Print only the top syscalls (default 10)" },
1: -	{ "failures", 'x', NULL, 0, "Trace only failed syscalls" },
1: -	{ "latency", 'L', NULL, 0, "Collect syscall latency" },
1: -	{ "milliseconds", 'm', NULL, 0, "Display latency in milliseconds"
1: -					" (default: microseconds)" },
1: -	{ "process", 'P', NULL, 0, "Count by process and not by syscall" },
1: -	{ "errno", 'e', "ERRNO", 0, "Trace only syscalls that return this error"
1: -				 "(numeric or EPERM, etc.)" },
1: -	{ "list", 'l', NULL, 0, "Print list of recognized syscalls and exit" },
1: -	{},
1: +    {"verbose", 'v', NULL, 0, "Verbose debug output"},
1: +    {"pid", 'p', "PID", 0, "Process PID to trace"},
1: +    {"interval", 'i', "INTERVAL", 0,
1: +     "Print summary at this interval"
1: +     " (seconds), 0 for infinite wait (default)"},
1: +    {"duration", 'd', "DURATION", 0, "Total tracing duration (seconds)"},
1: +    {"top", 'T', "TOP", 0, "Print only the top syscalls (default 10)"},
1: +    {"failures", 'x', NULL, 0, "Trace only failed syscalls"},
1: +    {"latency", 'L', NULL, 0, "Collect syscall latency"},
1: +    {"milliseconds", 'm', NULL, 0,
1: +     "Display latency in milliseconds"
1: +     " (default: microseconds)"},
1: +    {"process", 'P', NULL, 0, "Count by process and not by syscall"},
1: +    {"errno", 'e', "ERRNO", 0,
1: +     "Trace only syscalls that return this error"
1: +     "(numeric or EPERM, etc.)"},
1: +    {"list", 'l', NULL, 0, "Print list of recognized syscalls and exit"},
1: +    {},
1:  };
1:  
1:  static struct env {
1: -	bool list_syscalls;
1: -	bool milliseconds;
1: -	bool failures;
1: -	bool verbose;
1: -	bool latency;
1: -	bool process;
1: -	int filter_errno;
1: -	int interval;
1: -	int duration;
1: -	int top;
1: -	pid_t pid;
1: +  bool list_syscalls;
1: +  bool milliseconds;
1: +  bool failures;
1: +  bool verbose;
1: +  bool latency;
1: +  bool process;
1: +  int filter_errno;
1: +  int interval;
1: +  int duration;
1: +  int top;
1: +  pid_t pid;
1:  } env = {
1: -	.top = 10,
1: +    .top = 10,
1:  };
1:  
1: -static int get_int(const char *arg, int *ret, int min, int max)
1: -{
1: -	char *end;
1: -	long val;
1: -
1: -	errno = 0;
1: -	val = strtol(arg, &end, 10);
1: -	if (errno) {
1: -		warn("strtol: %s: %s\n", arg, strerror(errno));
1: -		return -1;
1: -	} else if (end == arg || val < min || val > max) {
1: -		return -1;
1: -	}
1: -	if (ret)
1: -		*ret = val;
1: -	return 0;
1: +static int get_int(const char *arg, int *ret, int min, int max) {
1: +  char *end;
1: +  long val;
1: +
1: +  errno = 0;
1: +  val = strtol(arg, &end, 10);
1: +  if (errno) {
1: +    warn("strtol: %s: %s\n", arg, strerror(errno));
1: +    return -1;
1: +  } else if (end == arg || val < min || val > max) {
1: +    return -1;
1: +  }
1: +  if (ret)
1: +    *ret = val;
1: +  return 0;
1:  }
1:  
1: -static int libbpf_print_fn(enum libbpf_print_level level,
1: -		const char *format, va_list args)
1: -{
1: -	if (level == LIBBPF_DEBUG && !env.verbose)
1: -		return 0;
1: +static int libbpf_print_fn(enum libbpf_print_level level, const char *format,
1: +                           va_list args) {
1: +  if (level == LIBBPF_DEBUG && !env.verbose)
1: +    return 0;
1:  
1: -	return vfprintf(stderr, format, args);
1: +  return vfprintf(stderr, format, args);
1:  }
1:  
1: -static int bump_memlock_rlimit(void)
1: -{
1: -	struct rlimit rlim_new = {
1: -		.rlim_cur	= RLIM_INFINITY,
1: -		.rlim_max	= RLIM_INFINITY,
1: -	};
1: +static int bump_memlock_rlimit(void) {
1: +  struct rlimit rlim_new = {
1: +      .rlim_cur = RLIM_INFINITY,
1: +      .rlim_max = RLIM_INFINITY,
1: +  };
1:  
1: -	return setrlimit(RLIMIT_MEMLOCK, &rlim_new);
1: +  return setrlimit(RLIMIT_MEMLOCK, &rlim_new);
1:  }
1:  
1: -static int compar_count(const void *dx, const void *dy)
1: -{
1: -	__u64 x = ((struct data_ext_t *) dx)->count;
1: -	__u64 y = ((struct data_ext_t *) dy)->count;
1: -	return x > y ? -1 : !(x == y);
1: +static int compar_count(const void *dx, const void *dy) {
1: +  __u64 x = ((struct data_ext_t *)dx)->count;
1: +  __u64 y = ((struct data_ext_t *)dy)->count;
1: +  return x > y ? -1 : !(x == y);
1:  }
1:  
1: -static int compar_latency(const void *dx, const void *dy)
1: -{
1: -	__u64 x = ((struct data_ext_t *) dx)->total_ns;
1: -	__u64 y = ((struct data_ext_t *) dy)->total_ns;
1: -	return x > y ? -1 : !(x == y);
1: +static int compar_latency(const void *dx, const void *dy) {
1: +  __u64 x = ((struct data_ext_t *)dx)->total_ns;
1: +  __u64 y = ((struct data_ext_t *)dy)->total_ns;
1: +  return x > y ? -1 : !(x == y);
1:  }
1:  
1: -static const char *agg_col(struct data_ext_t *val, char *buf, size_t size)
1: -{
1: -	if (env.process) {
1: -		snprintf(buf, size, "%-6u %-15s", val->key, val->comm);
1: -	} else {
1: -		syscall_name(val->key, buf, size);
1: -	}
1: -	return buf;
1: +static const char *agg_col(struct data_ext_t *val, char *buf, size_t size) {
1: +  if (env.process) {
1: +    snprintf(buf, size, "%-6u %-15s", val->key, val->comm);
1: +  } else {
1: +    syscall_name(val->key, buf, size);
1: +  }
1: +  return buf;
1:  }
1:  
1: -static const char *agg_colname(void)
1: -{
1: -	return (env.process) ? "PID    COMM" : "SYSCALL";
1: +static const char *agg_colname(void) {
1: +  return (env.process) ? "PID    COMM" : "SYSCALL";
1:  }
1:  
1: -static const char *time_colname(void)
1: -{
1: -	return (env.milliseconds) ? "TIME (ms)" : "TIME (us)";
1: +static const char *time_colname(void) {
1: +  return (env.milliseconds) ? "TIME (ms)" : "TIME (us)";
1:  }
1:  
1: -static void print_latency_header(void)
1: -{
1: -	printf("%-22s %8s %16s\n", agg_colname(), "COUNT", time_colname());
1: +static void print_latency_header(void) {
1: +  printf("%-22s %8s %16s\n", agg_colname(), "COUNT", time_colname());
1:  }
1:  
1: -static void print_count_header(void)
1: -{
1: -	printf("%-22s %8s\n", agg_colname(), "COUNT");
1: +static void print_count_header(void) {
1: +  printf("%-22s %8s\n", agg_colname(), "COUNT");
1:  }
1:  
1: -static void print_latency(struct data_ext_t *vals, size_t count)
1: -{
1: -	double div = env.milliseconds ? 1000000.0 : 1000.0;
1: -	char buf[2 * TASK_COMM_LEN];
1: -
1: -	print_latency_header();
1: -	for (int i = 0; i < count && i < env.top; i++)
1: -		printf("%-22s %8llu %16.3lf\n",
1: -		       agg_col(&vals[i], buf, sizeof(buf)),
1: -		       vals[i].count, vals[i].total_ns / div);
1: -	printf("\n");
1: +static void print_latency(struct data_ext_t *vals, size_t count) {
1: +  double div = env.milliseconds ? 1000000.0 : 1000.0;
1: +  char buf[2 * TASK_COMM_LEN];
1: +
1: +  print_latency_header();
1: +  for (int i = 0; i < count && i < env.top; i++)
1: +    printf("%-22s %8llu %16.3lf\n", agg_col(&vals[i], buf, sizeof(buf)),
1: +           vals[i].count, vals[i].total_ns / div);
1: +  printf("\n");
1:  }
1:  
1: -static void print_count(struct data_ext_t *vals, size_t count)
1: -{
1: -	char buf[2 * TASK_COMM_LEN];
1: +static void print_count(struct data_ext_t *vals, size_t count) {
1: +  char buf[2 * TASK_COMM_LEN];
1:  
1: -	print_count_header();
1: -	for (int i = 0; i < count && i < env.top; i++)
1: -		printf("%-22s %8llu\n",
1: -		       agg_col(&vals[i], buf, sizeof(buf)), vals[i].count);
1: -	printf("\n");
1: +  print_count_header();
1: +  for (int i = 0; i < count && i < env.top; i++)
1: +    printf("%-22s %8llu\n", agg_col(&vals[i], buf, sizeof(buf)), vals[i].count);
1: +  printf("\n");
1:  }
1:  
1: -static void print_timestamp()
1: -{
1: -	time_t now = time(NULL);
1: -	struct tm tm;
1: +static void print_timestamp() {
1: +  time_t now = time(NULL);
1: +  struct tm tm;
1:  
1: -	if (localtime_r(&now, &tm))
1: -		printf("[%02d:%02d:%02d]\n", tm.tm_hour, tm.tm_min, tm.tm_sec);
1: -	else
1: -		warn("localtime_r: %s", strerror(errno));
1: +  if (localtime_r(&now, &tm))
1: +    printf("[%02d:%02d:%02d]\n", tm.tm_hour, tm.tm_min, tm.tm_sec);
1: +  else
1: +    warn("localtime_r: %s", strerror(errno));
1:  }
1:  
1:  static bool batch_map_ops = true; /* hope for the best */
1:  
1: -static bool read_vals_batch(int fd, struct data_ext_t *vals, __u32 *count)
1: -{
1: -	struct data_t orig_vals[*count];
1: -	void *in = NULL, *out;
1: -	__u32 n, n_read = 0;
1: -	__u32 keys[*count];
1: -	int err = 0;
1: -
1: -	while (n_read < *count && !err) {
1: -		n = *count - n_read;
1: -		err = bpf_map_lookup_and_delete_batch(fd, &in, &out,
1: -				keys + n_read, orig_vals + n_read, &n, NULL);
1: -		if (err && errno != ENOENT) {
1: -			/* we want to propagate EINVAL upper, so that
1: -			 * the batch_map_ops flag is set to false */
1: -			if (errno != EINVAL)
1: -				warn("bpf_map_lookup_and_delete_batch: %s\n",
1: -				     strerror(-err));
1: -			return false;
1: -		}
1: -		n_read += n;
1: -		in = out;
1: -	}
1: -
1: -	for (__u32 i = 0; i < n_read; i++) {
1: -		vals[i].count = orig_vals[i].count;
1: -		vals[i].total_ns = orig_vals[i].total_ns;
1: -		vals[i].key = keys[i];
1: -		strncpy(vals[i].comm, orig_vals[i].comm, TASK_COMM_LEN);
1: -	}
1: -
1: -	*count = n_read;
1: -	return true;
1: +static bool read_vals_batch(int fd, struct data_ext_t *vals, __u32 *count) {
1: +  struct data_t orig_vals[*count];
1: +  void *in = NULL, *out;
1: +  __u32 n, n_read = 0;
1: +  __u32 keys[*count];
1: +  int err = 0;
1: +
1: +  while (n_read < *count && !err) {
1: +    n = *count - n_read;
1: +    err = bpf_map_lookup_and_delete_batch(fd, &in, &out, keys + n_read,
1: +                                          orig_vals + n_read, &n, NULL);
1: +    if (err && errno != ENOENT) {
1: +      /* we want to propagate EINVAL upper, so that
1: +       * the batch_map_ops flag is set to false */
1: +      if (errno != EINVAL)
1: +        warn("bpf_map_lookup_and_delete_batch: %s\n", strerror(-err));
1: +      return false;
1: +    }
1: +    n_read += n;
1: +    in = out;
1: +  }
1: +
1: +  for (__u32 i = 0; i < n_read; i++) {
1: +    vals[i].count = orig_vals[i].count;
1: +    vals[i].total_ns = orig_vals[i].total_ns;
1: +    vals[i].key = keys[i];
1: +    strncpy(vals[i].comm, orig_vals[i].comm, TASK_COMM_LEN);
1: +  }
1: +
1: +  *count = n_read;
1: +  return true;
1:  }
1:  
1: -static bool read_vals(int fd, struct data_ext_t *vals, __u32 *count)
1: -{
1: -	__u32 keys[MAX_ENTRIES];
1: -	struct data_t val;
1: -	__u32 key = -1;
1: -	__u32 next_key;
1: -	int i = 0;
1: -	int err;
1: -
1: -	if (batch_map_ops) {
1: -		bool ok = read_vals_batch(fd, vals, count);
1: -		if (!ok && errno == EINVAL) {
1: -			/* fall back to a racy variant */
1: -			batch_map_ops = false;
1: -		} else {
1: -			return ok;
1: -		}
1: -	}
1: -
1: -	if (!vals || !count || !*count)
1: -		return true;
1: -
1: -	for (key = -1; i < *count; ) {
1: -		err = bpf_map_get_next_key(fd, &key, &next_key);
1: -		if (err && errno != ENOENT) {
1: -			warn("failed to get next key: %s\n", strerror(errno));
1: -			return false;
1: -		} else if (err) {
1: -			break;
1: -		}
1: -		key = keys[i++] = next_key;
1: -	}
1: -
1: -	for (int j = 0; j < i; j++) {
1: -		err = bpf_map_lookup_elem(fd, &keys[j], &val);
1: -		if (err && errno != ENOENT) {
1: -			warn("failed to lookup element: %s\n", strerror(errno));
1: -			return false;
1: -		}
1: -		vals[j].count = val.count;
1: -		vals[j].total_ns = val.total_ns;
1: -		vals[j].key = keys[j];
1: -		memcpy(vals[j].comm, val.comm, TASK_COMM_LEN);
1: -	}
1: -
1: -	/* There is a race here: system calls which are represented by keys
1: -	 * above and happened between lookup and delete will be ignored.  This
1: -	 * will be fixed in future by using bpf_map_lookup_and_delete_batch,
1: -	 * but this function is too fresh to use it in bcc. */
1: -
1: -	for (int j = 0; j < i; j++) {
1: -		err = bpf_map_delete_elem(fd, &keys[j]);
1: -		if (err) {
1: -			warn("failed to delete element: %s\n", strerror(errno));
1: -			return false;
1: -		}
1: -	}
1: -
1: -	*count = i;
1: -	return true;
1: +static bool read_vals(int fd, struct data_ext_t *vals, __u32 *count) {
1: +  __u32 keys[MAX_ENTRIES];
1: +  struct data_t val;
1: +  __u32 key = -1;
1: +  __u32 next_key;
1: +  int i = 0;
1: +  int err;
1: +
1: +  if (batch_map_ops) {
1: +    bool ok = read_vals_batch(fd, vals, count);
1: +    if (!ok && errno == EINVAL) {
1: +      /* fall back to a racy variant */
1: +      batch_map_ops = false;
1: +    } else {
1: +      return ok;
1: +    }
1: +  }
1: +
1: +  if (!vals || !count || !*count)
1: +    return true;
1: +
1: +  for (key = -1; i < *count;) {
1: +    err = bpf_map_get_next_key(fd, &key, &next_key);
1: +    if (err && errno != ENOENT) {
1: +      warn("failed to get next key: %s\n", strerror(errno));
1: +      return false;
1: +    } else if (err) {
1: +      break;
1: +    }
1: +    key = keys[i++] = next_key;
1: +  }
1: +
1: +  for (int j = 0; j < i; j++) {
1: +    err = bpf_map_lookup_elem(fd, &keys[j], &val);
1: +    if (err && errno != ENOENT) {
1: +      warn("failed to lookup element: %s\n", strerror(errno));
1: +      return false;
1: +    }
1: +    vals[j].count = val.count;
1: +    vals[j].total_ns = val.total_ns;
1: +    vals[j].key = keys[j];
1: +    memcpy(vals[j].comm, val.comm, TASK_COMM_LEN);
1: +  }
1: +
1: +  /* There is a race here: system calls which are represented by keys
1: +   * above and happened between lookup and delete will be ignored.  This
1: +   * will be fixed in future by using bpf_map_lookup_and_delete_batch,
1: +   * but this function is too fresh to use it in bcc. */
1: +
1: +  for (int j = 0; j < i; j++) {
1: +    err = bpf_map_delete_elem(fd, &keys[j]);
1: +    if (err) {
1: +      warn("failed to delete element: %s\n", strerror(errno));
1: +      return false;
1: +    }
1: +  }
1: +
1: +  *count = i;
1: +  return true;
1:  }
1:  
1: -static error_t parse_arg(int key, char *arg, struct argp_state *state)
1: -{
1: -	int number;
1: -	int err;
1: -
1: -	switch (key) {
1: -	case 'v':
1: -		env.verbose = true;
1: -		break;
1: -	case 'x':
1: -		env.failures = true;
1: -		break;
1: -	case 'L':
1: -		env.latency = true;
1: -		break;
1: -	case 'm':
1: -		env.milliseconds = true;
1: -		break;
1: -	case 'P':
1: -		env.process = true;
1: -		break;
1: -	case 'p':
1: -		err = get_int(arg, &env.pid, 1, INT_MAX);
1: -		if (err) {
1: -			warn("invalid PID: %s\n", arg);
1: -			argp_usage(state);
1: -		}
1: -		break;
1: -	case 'i':
1: -		err = get_int(arg, &env.interval, 0, INT_MAX);
1: -		if (err) {
1: -			warn("invalid INTERVAL: %s\n", arg);
1: -			argp_usage(state);
1: -		}
1: -		break;
1: -	case 'd':
1: -		err = get_int(arg, &env.duration, 1, INT_MAX);
1: -		if (err) {
1: -			warn("invalid DURATION: %s\n", arg);
1: -			argp_usage(state);
1: -		}
1: -		break;
1: -	case 'T':
1: -		err = get_int(arg, &env.top, 1, INT_MAX);
1: -		if (err) {
1: -			warn("invalid TOP: %s\n", arg);
1: -			argp_usage(state);
1: -		}
1: -		break;
1: -	case 'e':
1: -		err = get_int(arg, &number, 1, INT_MAX);
1: -		if (err) {
1: -			number = errno_by_name(arg);
1: -			if (number < 0) {
1: -				warn("invalid errno: %s (bad, or can't "
1: -				     "parse dynamically; consider using "
1: -				     "numeric value and/or installing the "
1: -				     "errno program from moreutils)\n", arg);
1: -				argp_usage(state);
1: -			}
1: -		}
1: -		env.filter_errno = number;
1: -		break;
1: -	case 'l':
1: -		env.list_syscalls = true;
1: -		break;
1: -	default:
1: -		return ARGP_ERR_UNKNOWN;
1: -	}
1: -	return 0;
1: +static error_t parse_arg(int key, char *arg, struct argp_state *state) {
1: +  int number;
1: +  int err;
1: +
1: +  switch (key) {
1: +  case 'v':
1: +    env.verbose = true;
1: +    break;
1: +  case 'x':
1: +    env.failures = true;
1: +    break;
1: +  case 'L':
1: +    env.latency = true;
1: +    break;
1: +  case 'm':
1: +    env.milliseconds = true;
1: +    break;
1: +  case 'P':
1: +    env.process = true;
1: +    break;
1: +  case 'p':
1: +    err = get_int(arg, &env.pid, 1, INT_MAX);
1: +    if (err) {
1: +      warn("invalid PID: %s\n", arg);
1: +      argp_usage(state);
1: +    }
1: +    break;
1: +  case 'i':
1: +    err = get_int(arg, &env.interval, 0, INT_MAX);
1: +    if (err) {
1: +      warn("invalid INTERVAL: %s\n", arg);
1: +      argp_usage(state);
1: +    }
1: +    break;
1: +  case 'd':
1: +    err = get_int(arg, &env.duration, 1, INT_MAX);
1: +    if (err) {
1: +      warn("invalid DURATION: %s\n", arg);
1: +      argp_usage(state);
1: +    }
1: +    break;
1: +  case 'T':
1: +    err = get_int(arg, &env.top, 1, INT_MAX);
1: +    if (err) {
1: +      warn("invalid TOP: %s\n", arg);
1: +      argp_usage(state);
1: +    }
1: +    break;
1: +  case 'e':
1: +    err = get_int(arg, &number, 1, INT_MAX);
1: +    if (err) {
1: +      number = errno_by_name(arg);
1: +      if (number < 0) {
1: +        warn(
1: +            "invalid errno: %s (bad, or can't "
1: +            "parse dynamically; consider using "
1: +            "numeric value and/or installing the "
1: +            "errno program from moreutils)\n",
1: +            arg);
1: +        argp_usage(state);
1: +      }
1: +    }
1: +    env.filter_errno = number;
1: +    break;
1: +  case 'l':
1: +    env.list_syscalls = true;
1: +    break;
1: +  default:
1: +    return ARGP_ERR_UNKNOWN;
1: +  }
1: +  return 0;
1:  }
1:  
1:  static volatile sig_atomic_t hang_on = 1;
1:  
1: -void sig_int(int signo)
1: -{
1: -	hang_on = 0;
1: -}
1: -
1: -int main(int argc, char **argv)
1: -{
1: -	void (*print)(struct data_ext_t *, size_t);
1: -	int (*compar)(const void *, const void *);
1: -	static const struct argp argp = {
1: -		.options = opts,
1: -		.parser = parse_arg,
1: -		.doc = argp_program_doc,
1: -	};
1: -	struct data_ext_t vals[MAX_ENTRIES];
1: -	struct syscount_bpf *obj;
1: -	int seconds = 0;
1: -	__u32 count;
1: -	int err;
1: -
1: -	init_syscall_names();
1: -
1: -	err = argp_parse(&argp, argc, argv, 0, NULL, NULL);
1: -	if (err)
1: -		goto free_names;
1: -
1: -	if (env.list_syscalls) {
1: -		list_syscalls();
1: -		goto free_names;
1: -	}
1: -
1: -	libbpf_set_print(libbpf_print_fn);
1: -
1: -	err = bump_memlock_rlimit();
1: -	if (err) {
1: -		warn("failed to increase rlimit: %s\n", strerror(errno));
1: -		goto free_names;
1: -	}
1: -
1: -	obj = syscount_bpf__open();
1: -	if (!obj) {
1: -		warn("failed to open and/or load BPF object\n");
1: -		err = 1;
1: -		goto free_names;
1: -	}
1: -
1: -	if (env.pid)
1: -		obj->rodata->filter_pid = env.pid;
1: -	if (env.failures)
1: -		obj->rodata->filter_failed = true;
1: -	if (env.latency)
1: -		obj->rodata->measure_latency = true;
1: -	if (env.process)
1: -		obj->rodata->count_by_process = true;
1: -	if (env.filter_errno)
1: -		obj->rodata->filter_errno = env.filter_errno;
1: -
1: -	err = syscount_bpf__load(obj);
1: -	if (err) {
1: -		warn("failed to load BPF object: %s\n", strerror(-err));
1: -		goto cleanup_obj;
1: -	}
1: -
1: -	obj->links.sys_exit = bpf_program__attach(obj->progs.sys_exit);
1: -	err = libbpf_get_error(obj->links.sys_exit);
1: -	if (err) {
1: -		warn("failed to attach sys_exit program: %s\n",
1: -		     strerror(-err));
1: -		goto cleanup_obj;
1: -	}
1: -	if (env.latency) {
1: -		obj->links.sys_enter = bpf_program__attach(obj->progs.sys_enter);
1: -		err = libbpf_get_error(obj->links.sys_enter);
1: -		if (err) {
1: -			warn("failed to attach sys_enter programs: %s\n",
1: -			     strerror(-err));
1: -			goto cleanup_obj;
1: -		}
1: -	}
1: -
1: -	if (signal(SIGINT, sig_int) == SIG_ERR) {
1: -		warn("can't set signal handler: %s\n", strerror(-errno));
1: -		goto cleanup_obj;
1: -	}
1: -
1: -	compar = env.latency ? compar_latency : compar_count;
1: -	print = env.latency ? print_latency : print_count;
1: -
1: -	printf("Tracing syscalls, printing top %d... Ctrl+C to quit.\n", env.top);
1: -	while (hang_on) {
1: -		sleep(env.interval ?: 1);
1: -		if (env.duration) {
1: -			seconds += env.interval ?: 1;
1: -			if (seconds >= env.duration)
1: -				hang_on = 0;
1: -		}
1: -		if (hang_on && !env.interval)
1: -			continue;
1: -
1: -		count = MAX_ENTRIES;
1: -		if (!read_vals(bpf_map__fd(obj->maps.data), vals, &count))
1: -			break;
1: -		if (!count)
1: -			continue;
1: -
1: -		qsort(vals, count, sizeof(vals[0]), compar);
1: -		print_timestamp();
1: -		print(vals, count);
1: -	}
1: +void sig_int(int signo) { hang_on = 0; }
1: +
1: +int main(int argc, char **argv) {
1: +  void (*print)(struct data_ext_t *, size_t);
1: +  int (*compar)(const void *, const void *);
1: +  static const struct argp argp = {
1: +      .options = opts,
1: +      .parser = parse_arg,
1: +      .doc = argp_program_doc,
1: +  };
1: +  struct data_ext_t vals[MAX_ENTRIES];
1: +  struct syscount_bpf *obj;
1: +  int seconds = 0;
1: +  __u32 count;
1: +  int err;
1: +
1: +  init_syscall_names();
1: +
1: +  err = argp_parse(&argp, argc, argv, 0, NULL, NULL);
1: +  if (err)
1: +    goto free_names;
1: +
1: +  if (env.list_syscalls) {
1: +    list_syscalls();
1: +    goto free_names;
1: +  }
1: +
1: +  libbpf_set_print(libbpf_print_fn);
1: +
1: +  err = bump_memlock_rlimit();
1: +  if (err) {
1: +    warn("failed to increase rlimit: %s\n", strerror(errno));
1: +    goto free_names;
1: +  }
1: +
1: +  obj = syscount_bpf__open();
1: +  if (!obj) {
1: +    warn("failed to open and/or load BPF object\n");
1: +    err = 1;
1: +    goto free_names;
1: +  }
1: +
1: +  if (env.pid)
1: +    obj->rodata->filter_pid = env.pid;
1: +  if (env.failures)
1: +    obj->rodata->filter_failed = true;
1: +  if (env.latency)
1: +    obj->rodata->measure_latency = true;
1: +  if (env.process)
1: +    obj->rodata->count_by_process = true;
1: +  if (env.filter_errno)
1: +    obj->rodata->filter_errno = env.filter_errno;
1: +
1: +  err = syscount_bpf__load(obj);
1: +  if (err) {
1: +    warn("failed to load BPF object: %s\n", strerror(-err));
1: +    goto cleanup_obj;
1: +  }
1: +
1: +  obj->links.sys_exit = bpf_program__attach(obj->progs.sys_exit);
1: +  err = libbpf_get_error(obj->links.sys_exit);
1: +  if (err) {
1: +    warn("failed to attach sys_exit program: %s\n", strerror(-err));
1: +    goto cleanup_obj;
1: +  }
1: +  if (env.latency) {
1: +    obj->links.sys_enter = bpf_program__attach(obj->progs.sys_enter);
1: +    err = libbpf_get_error(obj->links.sys_enter);
1: +    if (err) {
1: +      warn("failed to attach sys_enter programs: %s\n", strerror(-err));
1: +      goto cleanup_obj;
1: +    }
1: +  }
1: +
1: +  if (signal(SIGINT, sig_int) == SIG_ERR) {
1: +    warn("can't set signal handler: %s\n", strerror(-errno));
1: +    goto cleanup_obj;
1: +  }
1: +
1: +  compar = env.latency ? compar_latency : compar_count;
1: +  print = env.latency ? print_latency : print_count;
1: +
1: +  printf("Tracing syscalls, printing top %d... Ctrl+C to quit.\n", env.top);
1: +  while (hang_on) {
1: +    sleep(env.interval ?: 1);
1: +    if (env.duration) {
1: +      seconds += env.interval ?: 1;
1: +      if (seconds >= env.duration)
1: +        hang_on = 0;
1: +    }
1: +    if (hang_on && !env.interval)
1: +      continue;
1: +
1: +    count = MAX_ENTRIES;
1: +    if (!read_vals(bpf_map__fd(obj->maps.data), vals, &count))
1: +      break;
1: +    if (!count)
1: +      continue;
1: +
1: +    qsort(vals, count, sizeof(vals[0]), compar);
1: +    print_timestamp();
1: +    print(vals, count);
1: +  }
1:  
1:  cleanup_obj:
1: -	syscount_bpf__destroy(obj);
1: +  syscount_bpf__destroy(obj);
1:  free_names:
1: -	free_syscall_names();
1: +  free_syscall_names();
1:  
1: -	return err != 0;
1: +  return err != 0;
1:  }
1: diff --git a/libbpf-tools/syscount.h b/libbpf-tools/syscount.h
1: index 148305a9..2418d85b 100644
1: --- a/libbpf-tools/syscount.h
1: +++ b/libbpf-tools/syscount.h
1: @@ -8,9 +8,9 @@
1:  #define TASK_COMM_LEN 16
1:  
1:  struct data_t {
1: -	__u64 count;
1: -	__u64 total_ns;
1: -	char comm[TASK_COMM_LEN];
1: +  __u64 count;
1: +  __u64 total_ns;
1: +  char comm[TASK_COMM_LEN];
1:  };
1:  
1:  #endif /* __SYSCOUNT_H */
1: diff --git a/libbpf-tools/xfsslower.c b/libbpf-tools/xfsslower.c
1: index d381f3f9..ba301f2a 100644
1: --- a/libbpf-tools/xfsslower.c
1: +++ b/libbpf-tools/xfsslower.c
1: @@ -192,8 +192,8 @@ int main(int argc, char **argv)
1:  
1:  	obj = xfsslower_bpf__open();
1:  	if (!obj) {
1: -		fprintf(stderr, "failed to open and/or load BPF object\n");
1: -		return 1;
1: +          fprintf(stderr, "failed to open and/or load BPF object\n");
1: +          return 1;
1:  	}
1:  
1:  	/* initialize global data (filtering options) */
1: Ignoring changes in the following files (wrong extension):
1:     libbpf-tools/Makefile
1:     libbpf-tools/.gitignore
1: Running clang-format on the following files:
1:     libbpf-tools/xfsslower.c
1:     libbpf-tools/syscount.bpf.c
1:     libbpf-tools/filelife.c
1:     libbpf-tools/syscall_helpers.h
1:     libbpf-tools/syscount.c
1:     libbpf-tools/errno_helpers.c
1:     libbpf-tools/syscall_helpers.c
1:     libbpf-tools/errno_helpers.h
1:     libbpf-tools/drsnoop.c
1:     libbpf-tools/syscount.h
1: old tree: 31181d3821f5f6bbe54867f798b0aebb0a616c97
1: new tree: 73977e1fda6bfa87c06474a198a758d267936429
 1/42 Test  #1: style-check ......................   Passed    3.92 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 -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/uapi -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__ -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/42 Test  #2: c_test_static ....................   Passed    1.94 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:105: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:102: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:97: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 7211 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/42 Test  #3: test_libbcc ......................   Passed   15.95 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 1ms
4: rtt min/avg/max/mdev = 0.005/0.008/0.086/0.008 ms, ipg/ewma 0.018/0.008 ms
4: .
4: ----------------------------------------------------------------------
4: Ran 2 tests in 0.559s
4: 
4: OK
 4/42 Test  #4: py_test_stat1_b ..................   Passed    2.10 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/42 Test  #5: py_test_bpf_log ..................   Passed    1.93 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 2ms
6: rtt min/avg/max/mdev = 0.007/0.008/0.129/0.012 ms, ipg/ewma 0.023/0.008 ms
6: .
6: ----------------------------------------------------------------------
6: Ran 2 tests in 0.494s
6: 
6: OK
 6/42 Test  #6: py_test_stat1_c ..................   Passed    0.90 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.060 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.060/0.060/0.060/0.000 ms
7: .
7: ----------------------------------------------------------------------
7: Ran 1 test in 0.358s
7: 
7: OK
 7/42 Test  #7: py_test_xlate1_c .................   Passed    1.10 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.302s
8: 
8: OK
 8/42 Test  #8: py_test_call1 ....................   Passed    1.06 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.383s
9: 
9: OK
9: ('fd 8:', 'stat1 0', 'stat2 1')
9: ('fd ffff9ff655da2000:', 'stat1 2', 'stat2 0')
9: ('fd a:', 'stat1 200', 'stat2 100')
9: ('fd 9:', 'stat1 1', 'stat2 1')
 9/42 Test  #9: py_test_trace1 ...................   Passed    0.61 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 5.884s
10: 
10: OK
10: ('ptr ffff9ff62a785d00:', 'stat1 (0 10)')
10: ('ptr ffff9ff6325c1740:', 'stat1 (0 5)')
10: ('ptr ffff9ff655482e80:', 'stat1 (0 1)')
10: ('ptr ffff9ff6507b2e80:', 'stat1 (0 2)')
10: ('ptr ffffffff89812480:', 'stat1 (0 102)')
10: ('ptr ffff9ff65645dd00:', 'stat1 (0 1)')
10: ('ptr ffff9ff655090000:', 'stat1 (0 22)')
10: ('ptr ffff9ff652e69740:', 'stat1 (0 1)')
10: ('ptr ffff9ff6569e1740:', 'stat1 (0 2)')
10: ('ptr ffff9ff656a0ae80:', 'stat1 (0 43)')
10: ('ptr ffff9ff654378000:', 'stat1 (0 100)')
10: ('ptr ffff9ff654058000:', 'stat1 (0 1)')
10/42 Test #10: py_test_trace2 ...................   Passed    5.99 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.00456572 s, 919 MB/s
11: 1024+0 records in
11: 1024+0 records out
11: 4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.0108757 s, 386 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 2.285s
11: 
11: OK
11/42 Test #11: py_test_trace3_c .................   Passed    2.51 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.451s
12: 
12: OK
12/42 Test #12: py_test_trace4 ...................   Passed    1.65 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.939s
13: 
13: OK
13/42 Test #13: py_test_trace_maxactive ..........   Passed    1.09 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.520s
14: 
14: OK
14/42 Test #14: py_test_probe_count ..............   Passed    5.58 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.581s
15: 
15: OK
15/42 Test #15: py_test_debuginfo ................   Passed    0.70 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 5a:75:5f:bb:ed:9e (100.1.1.254): index=0 time=8.019 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 36:e3:fa:82:22:d5 (200.1.1.254): index=0 time=14.721 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.015/0.015/0.015/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.141 ms
16: 64 bytes from 200.1.1.1: icmp_seq=2 ttl=63 time=0.085 ms
16: 
16: --- 200.1.1.1 ping statistics ---
16: 2 packets transmitted, 2 received, 0% packet loss, time 1008ms
16: rtt min/avg/max/mdev = 0.085/0.113/0.141/0.028 ms
16: [ ID] Interval       Transfer     Bandwidth
16: [  7]  0.0- 1.0 sec  3.15 GBytes  27.1 Gbits/sec
16: [ ID] Interval       Transfer     Bandwidth
16: [ 10]  0.0- 1.0 sec  3.15 GBytes  26.9 Gbits/sec
16: Starting netserver with host 'IN(6)ADDR_ANY' port '12865' and family AF_UNSPEC
16: MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 200.1.1.1 () port 0 AF_INET : 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     26502.52   
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     19832.33   
16: 16384  87380 
16: .
16: ----------------------------------------------------------------------
16: Ran 1 test in 10.073s
16: 
16: OK
16/42 Test #16: py_test_brb ......................   Passed   10.21 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.178 ms
17: 64 bytes from 200.1.1.1: icmp_seq=2 ttl=63 time=0.087 ms
17: 
17: --- 200.1.1.1 ping statistics ---
17: 2 packets transmitted, 2 received, 0% packet loss, time 1029ms
17: rtt min/avg/max/mdev = 0.087/0.132/0.178/0.046 ms
17: [ ID] Interval       Transfer     Bandwidth
17: [  7]  0.0- 1.0 sec  2.94 GBytes  25.2 Gbits/sec
17: [ ID] Interval       Transfer     Bandwidth
17: [ 10]  0.0- 1.0 sec  2.94 GBytes  25.0 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     25433.41   
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     21742.56   
17: 16384  87380 
17: .
17: ----------------------------------------------------------------------
17: Ran 1 test in 8.249s
17: 
17: OK
17/42 Test #17: py_test_brb2 .....................   Passed    8.45 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:183: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:183: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 82 tests in 79.712s
18: 
18: OK (skipped=1)
18: 0
18/42 Test #18: py_test_clang ....................   Passed   80.18 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          : 26       |****************************************|
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             : 0        |                    |
19:             67108864 -> 134217727            : 100      |********************|
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 = 'kworker/u4:2'
19:      value               : count     distribution
19:          0 -> 1          : 1        |*************                           |
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  : 3        |****************************************|
19: 
19: Bucket ptr = 'rcu_sched'
19:      value               : count     distribution
19:          0 -> 1          : 2        |****************************************|
19: 
19: Bucket ptr = 'kworker/0: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:        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 : 1        |****************************************|
19: 
19: Bucket ptr = 'kworker/1:9'
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           : 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 = '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:                  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          : 2        |*                   |
19:          68719476736 -> 137438953471         : 26       |********************|
19:         137438953472 -> 274877906943         : 0        |                    |
19:         274877906944 -> 549755813887         : 0        |                    |
19:         549755813888 -> 1099511627775        : 13       |**********          |
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: ----------------------------------------------------------------------
19: Ran 4 tests in 3.793s
19: 
19: OK
19:  |                    |
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           : 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        : 103      |********************|
19: 
19: Bucket ptr = 'iscsid'
19:      value               : count     distribution
19:          0 -> 1          : 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          : 11       |****************************************|
19: 
19: Bucket ptr = 'kworker/0:1H'
19:      value               : count     distribution
19:          0 -> 1          : 1        |****************************************|
19/42 Test #19: py_test_histogram ................   Passed    3.86 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.500s
20: 
20: OK
20/42 Test #20: py_array .........................   Passed    1.56 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     =   28905472
21: in use bytes     =    2915120
21: Total (incl. mmap):
21: system bytes     =   29696000
21: in use bytes     =    3705648
21: max mmap regions =          7
21: max mmap bytes   =    9203712
21: .
21: ----------------------------------------------------------------------
21: Ran 3 tests in 6.699s
21: 
21: OK
21/42 Test #21: py_uprobes .......................   Passed    6.76 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.277s
22: 
22: OK
22/42 Test #22: py_uprobes_2 .....................   Passed    0.36 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.378s
23: 
23: OK (skipped=1)
23/42 Test #23: py_test_stackid ..................   Passed    0.55 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.466s
24: 
24: OK
24/42 Test #24: py_test_tracepoint ...............   Passed    2.55 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/42 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/42 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.128s
27: 
27: OK
27/42 Test #27: py_test_percpu ...................   Passed    2.18 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.115s
28: 
28: OK
28/42 Test #28: py_test_dump_func ................   Passed    0.16 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.245s
29: 
29: OK
29/42 Test #29: py_test_disassembler .............   Passed    0.31 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 277.522s
30: 
30: OK (skipped=2)
30/42 Test #30: py_test_tools_smoke ..............   Passed  277.63 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 24.026s
31: 
31: OK
31/42 Test #31: py_test_tools_memleak ............   Passed   24.08 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 -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/uapi -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__ -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 0x55655d00180bULL: *((int8_t *)dest) = ctx->ax; __asm__ __volatile__("": : :"memory"); return 0;
32:   case 0x55655d001811ULL: *((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 0x55655d00180bULL: { 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 0x55655d001811ULL: { 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 0x55655d00180cULL: { 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 0x55655d00181fULL: *((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 0x55655d00180cULL: { 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 0x55655d00181fULL: *((int32_t *)dest) = ctx->dx; __asm__ __volatile__("": : :"memory"); return 0;
32:   }
32:   return -1;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace2_1(struct pt_regs *ctx, void *dest, size_t len) {
32:   if (len != sizeof(int32_t)) return -1;
32:   *((int32_t *)dest) = 5;
32:   return 0;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace2_2(struct pt_regs *ctx, void *dest, size_t len) {
32:   if (len != sizeof(int8_t)) return -1;
32:   *((int8_t *)dest) = ctx->ax; __asm__ __volatile__("": : :"memory");
32:   return 0;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace4_1(struct pt_regs *ctx, void *dest, size_t len) {
32:   if (len != sizeof(int64_t)) return -1;
32:   *((int64_t *)dest) = ctx->ax; __asm__ __volatile__("": : :"memory");
32:   return 0;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace4_2(struct pt_regs *ctx, void *dest, size_t len) {
32:   if (len != sizeof(int64_t)) return -1;
32:   *((int64_t *)dest) = ctx->dx; __asm__ __volatile__("": : :"memory");
32:   return 0;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace5_1(struct pt_regs *ctx, void *dest, size_t len) {
32:   if (len != sizeof(int64_t)) return -1;
32:   *((int64_t *)dest) = ctx->dx; __asm__ __volatile__("": : :"memory");
32:   return 0;
32: }
32: __attribute__((always_inline))
32: static __always_inline int _bpf_readarg_do_trace5_2(struct pt_regs *ctx, void *dest, size_t len) {
32:   if (len != sizeof(int64_t)) return -1;
32:   *((int64_t *)dest) = ctx->ax; __asm__ __volatile__("": : :"memory");
32:   return 0;
32: }
32: 
32: #include <linux/blkdev.h>
32: #include <uapi/linux/ptrace.h>
32: 
32: struct probe_result_t1 {
32:   char v1;
32:   int  v2;
32: };
32: 
32: struct probe_result_t2 {
32:   int  v1;
32:   char v2;
32: };
32: 
32: struct probe_result_t3 {
32:   int v1;
32:   int v2;
32: };
32: 
32: struct probe_result_t4 {
32:   u64  v1;
32:   char v2[8];
32: };
32: 
32: struct probe_result_t5 {
32:   char v1[8];
32:   u64  v2;
32: };
32: 
32: BPF_PERF_OUTPUT(event1);
32: BPF_PERF_OUTPUT(event2);
32: BPF_PERF_OUTPUT(event3);
32: BPF_PERF_OUTPUT(event4);
32: BPF_PERF_OUTPUT(event5);
32: 
32: __attribute__((section(".bpf.fn.do_trace1")))
32: int do_trace1(struct pt_regs *ctx) {
32: 
32:     struct probe_result_t1 result = {};
32:     _bpf_readarg_do_trace1_1(ctx, &result.v1, sizeof(*(&result.v1)));
32:     _bpf_readarg_do_trace1_2(ctx, &result.v2, sizeof(*(&result.v2)));
32:     bpf_perf_event_output(ctx, bpf_pseudo_fd(1, -1), CUR_CPU_IDENTIFIER, &result, sizeof(result));
32:     return 0;
32: };
32: __attribute__((section(".bpf.fn.do_trace2")))
32: int do_trace2(struct pt_regs *ctx) {
32: 
32:     struct probe_result_t2 result = {};
32:     _bpf_readarg_do_trace2_1(ctx, &result.v1, sizeof(*(&result.v1)));
32:     _bpf_readarg_do_trace2_2(ctx, &result.v2, sizeof(*(&result.v2)));
32:     bpf_perf_event_output(ctx, bpf_pseudo_fd(1, -2), CUR_CPU_IDENTIFIER, &result, sizeof(result));
32:     return 0;
32: }
32: __attribute__((section(".bpf.fn.do_trace3")))
32: int do_trace3(struct pt_regs *ctx) {
32: 
32:     struct probe_result_t3 result = {};
32:     _bpf_readarg_do_trace3_1(ctx, &result.v1, sizeof(*(&result.v1)));
32:     _bpf_readarg_do_trace3_2(ctx, &result.v2, sizeof(*(&result.v2)));
32:     bpf_perf_event_output(ctx, bpf_pseudo_fd(1, -3), CUR_CPU_IDENTIFIER, &result, sizeof(result));
32:     return 0;
32: }
32: __attribute__((section(".bpf.fn.do_trace4")))
32: int do_trace4(struct pt_regs *ctx) {
32: 
32:     struct probe_result_t4 result = {};
32:     _bpf_readarg_do_trace4_1(ctx, &result.v1, sizeof(*(&result.v1)));
32:     ({ u64 __addr = 0x0; _bpf_readarg_do_trace4_2(ctx, &__addr, sizeof(__addr));bpf_probe_read(&result.v2, sizeof(result.v2), (void *)__addr);});
32:     bpf_perf_event_output(ctx, bpf_pseudo_fd(1, -4), CUR_CPU_IDENTIFIER, &result, sizeof(result));
32:     return 0;
32: }
32: __attribute__((section(".bpf.fn.do_trace5")))
32: int do_trace5(struct pt_regs *ctx) {
32: 
32:     struct probe_result_t5 result = {};
32:     ({ u64 __addr = 0x0; _bpf_readarg_do_trace5_1(ctx, &__addr, sizeof(__addr));bpf_probe_read(&result.v1, sizeof(result.v1), (void *)__addr);});
32:     _bpf_readarg_do_trace5_2(ctx, &result.v2, sizeof(*(&result.v2)));
32:     bpf_perf_event_output(ctx, bpf_pseudo_fd(1, -5), CUR_CPU_IDENTIFIER, &result, sizeof(result));
32:     return 0;
32: }
32: 
32: #include <bcc/footer.h>
32: .
32: ----------------------------------------------------------------------
32: Ran 1 test in 4.057s
32: 
32: OK
32: Running from kernel directory at: /lib/modules/4.15.0-1009-gcp/build
32: str5
32: str4
32: str7
32: str6
32: str9
32: str8
32/42 Test #32: py_test_usdt .....................   Passed    4.36 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.053s
33: 
33: OK
33/42 Test #33: py_test_usdt2 ....................   Passed    2.28 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/8391/root/tmp/tmpzERC6W/liba.so 0x581
34:     argument #1 4 signed   bytes @ *(bp - 4)
34:   location #2 /proc/8391/root/tmp/tmpzERC6W/libb.so 0x581
34:     argument #1 4 signed   bytes @ *(bp - 4)
34:   location #3 /proc/8391/root/tmp/tmpzERC6W/a.out 0x7b1
34:     argument #1 4 signed   bytes @ *(bp - 4)
34: test_dup_name:probe [sema 0x0]
34:   location #1 /proc/8391/root/tmp/tmpzERC6W/liba.so 0x582
34:     argument #1 4 signed   bytes @ *(bp - 4)
34:   location #2 /proc/8391/root/tmp/tmpzERC6W/libb.so 0x582
34:     argument #1 4 signed   bytes @ *(bp - 4)
34:   location #3 /proc/8391/root/tmp/tmpzERC6W/a.out 0x7b2
34:     argument #1 4 signed   bytes @ *(bp - 4)
34: libc:setjmp [sema 0x0]
34:   location #1 /proc/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/root/lib/x86_64-linux-gnu/libc-2.27.so 0x96df0
34:     argument #1 8 unsigned bytes @ bx
34:   location #2 /proc/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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/8391/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.130s
34: 
34: OK
34: temp directory: /tmp/tmpzERC6W
34/42 Test #34: py_test_usdt3 ....................   Passed    1.30 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.945s
35: 
35: OK (expected failures=5)
35/42 Test #35: py_test_license ..................   Passed    3.00 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.269s
36: 
36: OK
36: Before freeing llvm memory: RssFile:  43388 kB
36: After  freeing llvm memory: RssFile:  11940 kB
36/42 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.459s
37: 
37: OK
37/42 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.448s
38: 
38: OK
38/42 Test #38: py_test_lpm_trie .................   Passed    0.52 sec
test 39
      Start 39: lua_test_clang

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

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

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

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

100% tests passed, 0 tests failed out of 42

Total Test time (real) = 492.87 sec
+ head -n 1 Testing/TAG
+ cp Testing/20200602-0057/Test.xml ./CTestResults.xml
Taking single-use slave ubuntu1804-slave-ebc offline.
Finished: SUCCESS