1. 24 Oct, 2017 1 commit
  2. 23 Oct, 2017 1 commit
  3. 20 Oct, 2017 1 commit
  4. 19 Oct, 2017 1 commit
  5. 18 Oct, 2017 4 commits
  6. 17 Oct, 2017 1 commit
  7. 16 Oct, 2017 3 commits
    • 4ast's avatar
      Merge pull request #1390 from iovisor/yhs_dev · e6e66272
      4ast authored
      attempt to compile with system bpf.h if default compile failed
      e6e66272
    • Yonghong Song's avatar
      bpf: print out the src debug info to a temporary file · dd3e7eaf
      Yonghong Song authored
      Currently, for C++ API and for each func, the original src
      and the rewritten source has been stored in
      BCC_PROG_TAG_DIR directory. This patch allows the
      source debug info (bytecode embedded by source code)
      also stored in the same BCC_PROG_TAG_DIR directory.
      
      This feature is not turned on by default now.
      It requires non-zero (debug_flag & DEBUG_SOURCE).
      The DEBUG_SOURCE enables "-g", with which a lot of more
      llvm insns executed and it may increase application
      RSS overhead by 4M (in my test).
      
      As an example, if you modify examples/cpp/RandomRead.cc
      to enable DEBUG_SOURCE, as below
      -  bpf = new ebpf::BPF();
      +  bpf = new ebpf::BPF(8);
      
      After running the application, you can see:
      -bash-4.3$ ls /var/tmp/bcc/bpf_prog_7f01346289a53cc3/
      on_urandom_read.c  on_urandom_read.dis.txt  on_urandom_read.rewritten.c
      -bash-4.3$ cat /var/tmp/bcc/bpf_prog_7f01346289a53cc3/on_urandom_read.dis.txt
      ; int on_urandom_read(struct urandom_read_args* attr) { // Line  23
         0:	bf 16 00 00 00 00 00 00 	r6 = r1
         1:	b7 01 00 00 00 00 00 00 	r1 = 0
      ; struct event_t event = {}; // Line  24
         2:	63 1a f8 ff 00 00 00 00 	*(u32 *)(r10 - 8) = r1
         3:	63 1a f4 ff 00 00 00 00 	*(u32 *)(r10 - 12) = r1
      .....
      Signed-off-by: default avatarYonghong Song <yhs@fb.com>
      dd3e7eaf
    • Yonghong Song's avatar
      attempt to compile with system bpf.h if default compile failed · c53d8ae7
      Yonghong Song authored
      Currently, bcc uses its own version of bpf.h which tries to
      sync with upstream header regularly. If the host bpf.h version
      is lower, bcc can still compile as some bcc codes may requires
      a higher version of bpf.h.
      
      Such an approach does have a drawback. Suppose service A,
      statically linked with bcc, runs on kernel version X.
      Now, the kernel upgrades to version Y. After kernel upgrade/reboot,
      service A may not be able to compile since old bcc bpf.h
      may not align with the new kernel headers.
      For such cases, new version of service A needs rollout.
      
      This patch addresses this issue by attempting a second
      compilation using system bpf.h instead. The feature is not on
      by default. To enable it, pass -DBCC_BACKUP_COMPILE=1
      in cmake setup stage.
      Signed-off-by: default avatarYonghong Song <yhs@fb.com>
      c53d8ae7
  8. 12 Oct, 2017 5 commits
  9. 11 Oct, 2017 4 commits
  10. 10 Oct, 2017 3 commits
  11. 08 Oct, 2017 2 commits
    • Paul Chaignon's avatar
      Fix segfault with enumerations · f7f873a2
      Paul Chaignon authored
      When serializing map types to JSON, if it encounters an enumeration,
      the rewriter goes into an infinite loop until it segfaults.  This fix
      properly serializes enumerations in the same way unions and structs
      are.
      
          enum a {
            CHOICE_A,
            CHOICE_B,
          };
          BPF_HASH(m, u32, enum a);
      
      is serialized as:
      
          ["a", ["CHOICE_A","CHOICE_B"], "enum"]
      f7f873a2
    • yonghong-song's avatar
      Merge pull request #1382 from palmtenor/vdso · 54a5b4d1
      yonghong-song authored
      Support resolve vDSO symbols
      54a5b4d1
  12. 07 Oct, 2017 4 commits
  13. 06 Oct, 2017 4 commits
  14. 05 Oct, 2017 4 commits
  15. 04 Oct, 2017 2 commits