<matrixRun _class='hudson.matrix.MatrixRun'><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>sha1</name><value>7a343d4b1df60417ba97dd29b7ce675b1e3222e5</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbActualCommit</name><value>7a343d4b1df60417ba97dd29b7ce675b1e3222e5</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbActualCommitAuthor</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbActualCommitAuthorEmail</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbAuthorRepoGitUrl</name><value>https://github.com/dalehamel/bcc.git</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbTriggerAuthor</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbTriggerAuthorEmail</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbTriggerAuthorLogin</name><value>yonghong-song</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbTriggerAuthorLoginMention</name><value>@yonghong-song</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbPullId</name><value>2714</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbTargetBranch</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbSourceBranch</name><value>github-actions</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GIT_BRANCH</name><value>github-actions</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbPullAuthorEmail</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbPullAuthorLogin</name><value>dalehamel</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbPullAuthorLoginMention</name><value>@dalehamel</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbPullDescription</name><value>GitHub pull request #2714 of commit 7a343d4b1df60417ba97dd29b7ce675b1e3222e5, has merge conflicts.</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbPullTitle</name><value>GitHub actions</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbPullLink</name><value>https://github.com/iovisor/bcc/pull/2714</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbPullLongDescription</name><value>This is an attempt to get bcc running in github actions.\r\n\r\n# Status\r\n\r\nCurrently this appears to actually be running more test cases than on jenkins:\r\n\r\n```\r\ntest cases:   37 |   35 passed | 2 failed\r\nassertions: 2414 | 2412 passed | 2 failed\r\n```\r\n\r\nBut on jenkins for libbcc I see:\r\n\r\n```\r\n3: test cases:  37 |  36 passed | 1 failed\r\n3: assertions: 626 | 624 passed | 2 failed\r\n```\r\n\r\nThe failures that i'm seeing, at least for libbcc, are also present on jenkins.\r\n\r\n# What is still failing?\r\n\r\nHere's an example of a failed test run:\r\n\r\nhttps://github.com/dalehamel/bcc/runs/399623026\r\n\r\nThe bits that fail:\r\n\r\n\r\nCurrently there are a few tests that fail, I'd love some help in figuring out why!\r\n\r\n```\r\n 3/36 Test  #3: test_libbcc ......................***Failed   11.81 sec\r\n\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\ntest_libbcc is a Catch v1.4.0 host application.\r\nRun with -? for options\r\n\r\n-------------------------------------------------------------------------------\r\nresolve global addr in libc in this process\r\n-------------------------------------------------------------------------------\r\n/bcc/tests/cc/test_c_api.cc:583\r\n...............................................................................\r\n\r\n/bcc/tests/cc/test_c_api.cc:599: FAILED:\r\n  REQUIRE( res == 0 )\r\nwith expansion:\r\n  -1 == 0\r\n\r\n/virtual/main.c:2:7: error: map not found: /sys/fs/bpf/test_pinned_table\r\n      BPF_TABLE_PINNED(\"hash\", u64, u64, ids, 1024, \"/sys/fs/bpf/test_pinned_table\");\r\n      ^\r\n/virtual/include/bcc/helpers.h:98:92: note: expanded from macro 'BPF_TABLE_PINNED'\r\n#define BPF_TABLE_PINNED(_table_type, _key_type, _leaf_type, _name, _max_entries, _pinned) \\r\n                                                                                           ^\r\n/virtual/include/bcc/helpers.h:95:76: note: expanded from macro '\\r\nBPF_TABLE'\r\n#define BPF_TABLE(_table_type, _key_type, _leaf_type, _name, _max_entries) \\r\n                                                                           ^\r\n/virtual/include/bcc/helpers.h:90:4: note: expanded from macro '\\r\nBPF_F_TABLE'\r\n}; \\r\n   ^\r\n1 error generated.\r\nParse error:\r\n    4@i%ra+1r\r\n-------^\r\n===============================================================================\r\ntest cases:   36 |   35 passed | 1 failed\r\nassertions: 2420 | 2419 passed | 1 failed\r\n\r\nFailed\r\n```\r\n\r\nAnd for the python failures:\r\n\r\n```\r\n16/36 Test #16: py_test_brb ......................***Failed    5.55 sec\r\nE\r\n======================================================================\r\nERROR: test_brb (__main__.TestBPFSocket)\r\n----------------------------------------------------------------------\r\nTraceback (most recent call last):\r\n  File \"/bcc/tests/python/test_brb.py\", line 162, in test_brb\r\n    disable_ipv6=True)\r\n  File \"/bcc/tests/python/simulation.py\", line 94, in _create_ns\r\n    disable_ipv6)\r\n  File \"/bcc/tests/python/simulation.py\", line 68, in _ns_add_ifc\r\n    ns_ipdb.interfaces.lo.up().commit()\r\n  File \"/usr/local/lib/python2.7/dist-packages/pyroute2/ipdb/interfaces.py\", line 1078, in commit\r\n    raise error\r\nCommitException: target state is not set\r\n\r\n----------------------------------------------------------------------\r\nRan 1 test in 5.338s\r\n\r\nFAILED (errors=1)\r\nFailed\r\n\r\n      Start 17: py_test_brb2\r\n```\r\n\r\n```\r\n17/36 Test #17: py_test_brb2 .....................***Failed    5.51 sec\r\nE\r\n======================================================================\r\nERROR: test_brb2 (__main__.TestBPFSocket)\r\n----------------------------------------------------------------------\r\nTraceback (most recent call last):\r\n  File \"/bcc/tests/python/test_brb2.py\", line 150, in test_brb2\r\n    disable_ipv6=True)\r\n  File \"/bcc/tests/python/simulation.py\", line 94, in _create_ns\r\n    disable_ipv6)\r\n  File \"/bcc/tests/python/simulation.py\", line 68, in _ns_add_ifc\r\n    ns_ipdb.interfaces.lo.up().commit()\r\n  File \"/usr/local/lib/python2.7/dist-packages/pyroute2/ipdb/interfaces.py\", line 1078, in commit\r\n    raise error\r\nCommitException: target state is not set\r\n\r\n----------------------------------------------------------------------\r\nRan 1 test in 5.292s\r\n\r\nFAILED (errors=1)\r\nFailed\r\n```\r\n\r\nAnd a few others\r\n</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbCommentBody</name><value>[buildbot, test this please]</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbGhRepository</name><value>iovisor/bcc</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbCredentialsId</name><value>6d3daf13-69b8-48b1-9c8f-ec5353264113</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "bcc-pr" build number 262</shortDescription><upstreamBuild>262</upstreamBuild><upstreamProject>bcc-pr</upstreamProject><upstreamUrl>job/bcc-pr/</upstreamUrl></cause></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginpr2528merge _class='hudson.plugins.git.util.Build'><buildNumber>74</buildNumber><marked><SHA1>9a5313acfdcbed6003488622747de26938881d70</SHA1><branch><SHA1>9a5313acfdcbed6003488622747de26938881d70</SHA1><name>refs/remotes/origin/pr/2528/merge</name></branch></marked><revision><SHA1>9a5313acfdcbed6003488622747de26938881d70</SHA1><branch><SHA1>9a5313acfdcbed6003488622747de26938881d70</SHA1><name>refs/remotes/origin/pr/2528/merge</name></branch></revision></refsremotesoriginpr2528merge><refsremotesoriginpr2711merge _class='hudson.plugins.git.util.Build'><buildNumber>247</buildNumber><marked><SHA1>3ab8d18db9cdcb0b1494f851579b64661be29bd9</SHA1><branch><SHA1>3ab8d18db9cdcb0b1494f851579b64661be29bd9</SHA1><name>refs/remotes/origin/pr/2711/merge</name></branch></marked><revision><SHA1>3ab8d18db9cdcb0b1494f851579b64661be29bd9</SHA1><branch><SHA1>3ab8d18db9cdcb0b1494f851579b64661be29bd9</SHA1><name>refs/remotes/origin/pr/2711/merge</name></branch></revision></refsremotesoriginpr2711merge><refsremotesoriginpr2646merge _class='hudson.plugins.git.util.Build'><buildNumber>172</buildNumber><marked><SHA1>abcf671ab1536f855795f32ea21a3a956ec47449</SHA1><branch><SHA1>abcf671ab1536f855795f32ea21a3a956ec47449</SHA1><name>refs/remotes/origin/pr/2646/merge</name></branch></marked><revision><SHA1>abcf671ab1536f855795f32ea21a3a956ec47449</SHA1><branch><SHA1>abcf671ab1536f855795f32ea21a3a956ec47449</SHA1><name>refs/remotes/origin/pr/2646/merge</name></branch></revision></refsremotesoriginpr2646merge><refsremotesoriginpr2686merge _class='hudson.plugins.git.util.Build'><buildNumber>218</buildNumber><marked><SHA1>55af5d636555c663aa35d23f19a15f89ca81022a</SHA1><branch><SHA1>55af5d636555c663aa35d23f19a15f89ca81022a</SHA1><name>refs/remotes/origin/pr/2686/merge</name></branch></marked><revision><SHA1>55af5d636555c663aa35d23f19a15f89ca81022a</SHA1><branch><SHA1>55af5d636555c663aa35d23f19a15f89ca81022a</SHA1><name>refs/remotes/origin/pr/2686/merge</name></branch></revision></refsremotesoriginpr2686merge><refsremotesoriginpr2568merge _class='hudson.plugins.git.util.Build'><buildNumber>98</buildNumber><marked><SHA1>a848c84e4b957d6beedd7f1a13d89af330a30938</SHA1><branch><SHA1>a848c84e4b957d6beedd7f1a13d89af330a30938</SHA1><name>refs/remotes/origin/pr/2568/merge</name></branch></marked><revision><SHA1>a848c84e4b957d6beedd7f1a13d89af330a30938</SHA1><branch><SHA1>a848c84e4b957d6beedd7f1a13d89af330a30938</SHA1><name>refs/remotes/origin/pr/2568/merge</name></branch></revision></refsremotesoriginpr2568merge><refsremotesoriginpr2603merge _class='hudson.plugins.git.util.Build'><buildNumber>136</buildNumber><marked><SHA1>23728cf12d8ce3aef2d9f81ca3c070897f8c80a6</SHA1><branch><SHA1>23728cf12d8ce3aef2d9f81ca3c070897f8c80a6</SHA1><name>refs/remotes/origin/pr/2603/merge</name></branch></marked><revision><SHA1>23728cf12d8ce3aef2d9f81ca3c070897f8c80a6</SHA1><branch><SHA1>23728cf12d8ce3aef2d9f81ca3c070897f8c80a6</SHA1><name>refs/remotes/origin/pr/2603/merge</name></branch></revision></refsremotesoriginpr2603merge><refsremotesoriginpr2643merge _class='hudson.plugins.git.util.Build'><buildNumber>168</buildNumber><marked><SHA1>b0a01cdb85a5ff139911b10da29f0164ad707814</SHA1><branch><SHA1>b0a01cdb85a5ff139911b10da29f0164ad707814</SHA1><name>refs/remotes/origin/pr/2643/merge</name></branch></marked><revision><SHA1>b0a01cdb85a5ff139911b10da29f0164ad707814</SHA1><branch><SHA1>b0a01cdb85a5ff139911b10da29f0164ad707814</SHA1><name>refs/remotes/origin/pr/2643/merge</name></branch></revision></refsremotesoriginpr2643merge><refsremotesoriginpr2598merge _class='hudson.plugins.git.util.Build'><buildNumber>129</buildNumber><marked><SHA1>4f7cb2798b1548cee4c2b9311a9920e4db7699ee</SHA1><branch><SHA1>4f7cb2798b1548cee4c2b9311a9920e4db7699ee</SHA1><name>refs/remotes/origin/pr/2598/merge</name></branch></marked><revision><SHA1>4f7cb2798b1548cee4c2b9311a9920e4db7699ee</SHA1><branch><SHA1>4f7cb2798b1548cee4c2b9311a9920e4db7699ee</SHA1><name>refs/remotes/origin/pr/2598/merge</name></branch></revision></refsremotesoriginpr2598merge><refsremotesoriginpr2613merge _class='hudson.plugins.git.util.Build'><buildNumber>149</buildNumber><marked><SHA1>3e7e5d573ac51569a941050b64bd1a3196bfdc19</SHA1><branch><SHA1>3e7e5d573ac51569a941050b64bd1a3196bfdc19</SHA1><name>refs/remotes/origin/pr/2613/merge</name></branch></marked><revision><SHA1>3e7e5d573ac51569a941050b64bd1a3196bfdc19</SHA1><branch><SHA1>3e7e5d573ac51569a941050b64bd1a3196bfdc19</SHA1><name>refs/remotes/origin/pr/2613/merge</name></branch></revision></refsremotesoriginpr2613merge><refsremotesoriginpr2633merge _class='hudson.plugins.git.util.Build'><buildNumber>166</buildNumber><marked><SHA1>86d61cee80699305e53eba2d91d1a30b4326b34a</SHA1><branch><SHA1>86d61cee80699305e53eba2d91d1a30b4326b34a</SHA1><name>refs/remotes/origin/pr/2633/merge</name></branch></marked><revision><SHA1>86d61cee80699305e53eba2d91d1a30b4326b34a</SHA1><branch><SHA1>86d61cee80699305e53eba2d91d1a30b4326b34a</SHA1><name>refs/remotes/origin/pr/2633/merge</name></branch></revision></refsremotesoriginpr2633merge><refsremotesoriginpr2653merge _class='hudson.plugins.git.util.Build'><buildNumber>184</buildNumber><marked><SHA1>cd48db92401194e170bd105f796b1763144956d8</SHA1><branch><SHA1>cd48db92401194e170bd105f796b1763144956d8</SHA1><name>refs/remotes/origin/pr/2653/merge</name></branch></marked><revision><SHA1>cd48db92401194e170bd105f796b1763144956d8</SHA1><branch><SHA1>cd48db92401194e170bd105f796b1763144956d8</SHA1><name>refs/remotes/origin/pr/2653/merge</name></branch></revision></refsremotesoriginpr2653merge><refsremotesoriginpr2600merge _class='hudson.plugins.git.util.Build'><buildNumber>131</buildNumber><marked><SHA1>f51c10122b69be8edaefaa4d25e8a334d3a7ba9a</SHA1><branch><SHA1>f51c10122b69be8edaefaa4d25e8a334d3a7ba9a</SHA1><name>refs/remotes/origin/pr/2600/merge</name></branch></marked><revision><SHA1>f51c10122b69be8edaefaa4d25e8a334d3a7ba9a</SHA1><branch><SHA1>f51c10122b69be8edaefaa4d25e8a334d3a7ba9a</SHA1><name>refs/remotes/origin/pr/2600/merge</name></branch></revision></refsremotesoriginpr2600merge><refsremotesoriginpr2545merge _class='hudson.plugins.git.util.Build'><buildNumber>83</buildNumber><marked><SHA1>c69606c28417cd0625f269db3da79731b247c017</SHA1><branch><SHA1>c69606c28417cd0625f269db3da79731b247c017</SHA1><name>refs/remotes/origin/pr/2545/merge</name></branch></marked><revision><SHA1>c69606c28417cd0625f269db3da79731b247c017</SHA1><branch><SHA1>c69606c28417cd0625f269db3da79731b247c017</SHA1><name>refs/remotes/origin/pr/2545/merge</name></branch></revision></refsremotesoriginpr2545merge><refsremotesoriginpr2535merge _class='hudson.plugins.git.util.Build'><buildNumber>116</buildNumber><marked><SHA1>4f4daf6f78aaffa2276507474f03b06049d20dff</SHA1><branch><SHA1>4f4daf6f78aaffa2276507474f03b06049d20dff</SHA1><name>refs/remotes/origin/pr/2535/merge</name></branch></marked><revision><SHA1>4f4daf6f78aaffa2276507474f03b06049d20dff</SHA1><branch><SHA1>4f4daf6f78aaffa2276507474f03b06049d20dff</SHA1><name>refs/remotes/origin/pr/2535/merge</name></branch></revision></refsremotesoriginpr2535merge><refsremotesoriginpr2437merge _class='hudson.plugins.git.util.Build'><buildNumber>8</buildNumber><marked><SHA1>1d33111c31f8226d64a0feea11eb6bbb7195ea40</SHA1><branch><SHA1>1d33111c31f8226d64a0feea11eb6bbb7195ea40</SHA1><name>refs/remotes/origin/pr/2437/merge</name></branch></marked><revision><SHA1>1d33111c31f8226d64a0feea11eb6bbb7195ea40</SHA1><branch><SHA1>1d33111c31f8226d64a0feea11eb6bbb7195ea40</SHA1><name>refs/remotes/origin/pr/2437/merge</name></branch></revision></refsremotesoriginpr2437merge><refsremotesoriginpr2620merge _class='hudson.plugins.git.util.Build'><buildNumber>154</buildNumber><marked><SHA1>c895fd8cf60f128476d3e24581235b8b48861e6d</SHA1><branch><SHA1>c895fd8cf60f128476d3e24581235b8b48861e6d</SHA1><name>refs/remotes/origin/pr/2620/merge</name></branch></marked><revision><SHA1>c895fd8cf60f128476d3e24581235b8b48861e6d</SHA1><branch><SHA1>c895fd8cf60f128476d3e24581235b8b48861e6d</SHA1><name>refs/remotes/origin/pr/2620/merge</name></branch></revision></refsremotesoriginpr2620merge><refsremotesoriginpr2482merge _class='hudson.plugins.git.util.Build'><buildNumber>46</buildNumber><marked><SHA1>5ff59d53da54fa98c77dc2676fe208e7d6d0bad7</SHA1><branch><SHA1>5ff59d53da54fa98c77dc2676fe208e7d6d0bad7</SHA1><name>refs/remotes/origin/pr/2482/merge</name></branch></marked><revision><SHA1>5ff59d53da54fa98c77dc2676fe208e7d6d0bad7</SHA1><branch><SHA1>5ff59d53da54fa98c77dc2676fe208e7d6d0bad7</SHA1><name>refs/remotes/origin/pr/2482/merge</name></branch></revision></refsremotesoriginpr2482merge><refsremotesoriginpr2457merge _class='hudson.plugins.git.util.Build'><buildNumber>17</buildNumber><marked><SHA1>5bafc922036722f7902ec0c3ac4cd08233609e94</SHA1><branch><SHA1>5bafc922036722f7902ec0c3ac4cd08233609e94</SHA1><name>refs/remotes/origin/pr/2457/merge</name></branch></marked><revision><SHA1>5bafc922036722f7902ec0c3ac4cd08233609e94</SHA1><branch><SHA1>5bafc922036722f7902ec0c3ac4cd08233609e94</SHA1><name>refs/remotes/origin/pr/2457/merge</name></branch></revision></refsremotesoriginpr2457merge><refsremotesoriginpr2502merge _class='hudson.plugins.git.util.Build'><buildNumber>61</buildNumber><marked><SHA1>a0f4c55ce39b1a8edc6e6131e38be1983f0e835e</SHA1><branch><SHA1>a0f4c55ce39b1a8edc6e6131e38be1983f0e835e</SHA1><name>refs/remotes/origin/pr/2502/merge</name></branch></marked><revision><SHA1>a0f4c55ce39b1a8edc6e6131e38be1983f0e835e</SHA1><branch><SHA1>a0f4c55ce39b1a8edc6e6131e38be1983f0e835e</SHA1><name>refs/remotes/origin/pr/2502/merge</name></branch></revision></refsremotesoriginpr2502merge><refsremotesoriginpr2522merge _class='hudson.plugins.git.util.Build'><buildNumber>78</buildNumber><marked><SHA1>0c6b340f3d118071e9042ec77391e92a763fcae4</SHA1><branch><SHA1>0c6b340f3d118071e9042ec77391e92a763fcae4</SHA1><name>refs/remotes/origin/pr/2522/merge</name></branch></marked><revision><SHA1>0c6b340f3d118071e9042ec77391e92a763fcae4</SHA1><branch><SHA1>0c6b340f3d118071e9042ec77391e92a763fcae4</SHA1><name>refs/remotes/origin/pr/2522/merge</name></branch></revision></refsremotesoriginpr2522merge><refsremotesoriginpr2650merge _class='hudson.plugins.git.util.Build'><buildNumber>179</buildNumber><marked><SHA1>fa46c1790e6623f7ed0a1da2e93e0dfe4004952e</SHA1><branch><SHA1>fa46c1790e6623f7ed0a1da2e93e0dfe4004952e</SHA1><name>refs/remotes/origin/pr/2650/merge</name></branch></marked><revision><SHA1>fa46c1790e6623f7ed0a1da2e93e0dfe4004952e</SHA1><branch><SHA1>fa46c1790e6623f7ed0a1da2e93e0dfe4004952e</SHA1><name>refs/remotes/origin/pr/2650/merge</name></branch></revision></refsremotesoriginpr2650merge><refsremotesoriginpr2404merge _class='hudson.plugins.git.util.Build'><buildNumber>20</buildNumber><marked><SHA1>0e09566432350faeb1042a8f885a1d14db8c3079</SHA1><branch><SHA1>0e09566432350faeb1042a8f885a1d14db8c3079</SHA1><name>refs/remotes/origin/pr/2404/merge</name></branch></marked><revision><SHA1>0e09566432350faeb1042a8f885a1d14db8c3079</SHA1><branch><SHA1>0e09566432350faeb1042a8f885a1d14db8c3079</SHA1><name>refs/remotes/origin/pr/2404/merge</name></branch></revision></refsremotesoriginpr2404merge><refsremotesoriginpr2560merge _class='hudson.plugins.git.util.Build'><buildNumber>93</buildNumber><marked><SHA1>8e21e2c84f886e4d57a01e82e15a425426dd5407</SHA1><branch><SHA1>8e21e2c84f886e4d57a01e82e15a425426dd5407</SHA1><name>refs/remotes/origin/pr/2560/merge</name></branch></marked><revision><SHA1>8e21e2c84f886e4d57a01e82e15a425426dd5407</SHA1><branch><SHA1>8e21e2c84f886e4d57a01e82e15a425426dd5407</SHA1><name>refs/remotes/origin/pr/2560/merge</name></branch></revision></refsremotesoriginpr2560merge><refsremotesoriginpr2575merge _class='hudson.plugins.git.util.Build'><buildNumber>100</buildNumber><marked><SHA1>5bfbb4d74e2c82dc0f14d20d09659ae48d8e43af</SHA1><branch><SHA1>5bfbb4d74e2c82dc0f14d20d09659ae48d8e43af</SHA1><name>refs/remotes/origin/pr/2575/merge</name></branch></marked><revision><SHA1>5bfbb4d74e2c82dc0f14d20d09659ae48d8e43af</SHA1><branch><SHA1>5bfbb4d74e2c82dc0f14d20d09659ae48d8e43af</SHA1><name>refs/remotes/origin/pr/2575/merge</name></branch></revision></refsremotesoriginpr2575merge><refsremotesoriginpr2520merge _class='hudson.plugins.git.util.Build'><buildNumber>68</buildNumber><marked><SHA1>b4a50e67d279dba7de22c5f15f8ce64b67a744f1</SHA1><branch><SHA1>b4a50e67d279dba7de22c5f15f8ce64b67a744f1</SHA1><name>refs/remotes/origin/pr/2520/merge</name></branch></marked><revision><SHA1>b4a50e67d279dba7de22c5f15f8ce64b67a744f1</SHA1><branch><SHA1>b4a50e67d279dba7de22c5f15f8ce64b67a744f1</SHA1><name>refs/remotes/origin/pr/2520/merge</name></branch></revision></refsremotesoriginpr2520merge><refsremotesoriginpr2540merge _class='hudson.plugins.git.util.Build'><buildNumber>80</buildNumber><marked><SHA1>9f7df6f7b4c3a817e3ae935510e19734d3e2c48f</SHA1><branch><SHA1>9f7df6f7b4c3a817e3ae935510e19734d3e2c48f</SHA1><name>refs/remotes/origin/pr/2540/merge</name></branch></marked><revision><SHA1>9f7df6f7b4c3a817e3ae935510e19734d3e2c48f</SHA1><branch><SHA1>9f7df6f7b4c3a817e3ae935510e19734d3e2c48f</SHA1><name>refs/remotes/origin/pr/2540/merge</name></branch></revision></refsremotesoriginpr2540merge><refsremotesoriginpr2465merge _class='hudson.plugins.git.util.Build'><buildNumber>25</buildNumber><marked><SHA1>706056329559cf85fa329aa72da6d84cb7ebe575</SHA1><branch><SHA1>706056329559cf85fa329aa72da6d84cb7ebe575</SHA1><name>refs/remotes/origin/pr/2465/merge</name></branch></marked><revision><SHA1>706056329559cf85fa329aa72da6d84cb7ebe575</SHA1><branch><SHA1>706056329559cf85fa329aa72da6d84cb7ebe575</SHA1><name>refs/remotes/origin/pr/2465/merge</name></branch></revision></refsremotesoriginpr2465merge><refsremotesoriginpr2717merge _class='hudson.plugins.git.util.Build'><buildNumber>261</buildNumber><marked><SHA1>2d8d6faae172da6237135dfd334609b66c11276a</SHA1><branch><SHA1>2d8d6faae172da6237135dfd334609b66c11276a</SHA1><name>refs/remotes/origin/pr/2717/merge</name></branch></marked><revision><SHA1>2d8d6faae172da6237135dfd334609b66c11276a</SHA1><branch><SHA1>2d8d6faae172da6237135dfd334609b66c11276a</SHA1><name>refs/remotes/origin/pr/2717/merge</name></branch></revision></refsremotesoriginpr2717merge><refsremotesoriginpr2693merge _class='hudson.plugins.git.util.Build'><buildNumber>221</buildNumber><marked><SHA1>3d15e62972c2ffedcef0b227d3f1874aca7a3b26</SHA1><branch><SHA1>3d15e62972c2ffedcef0b227d3f1874aca7a3b26</SHA1><name>refs/remotes/origin/pr/2693/merge</name></branch></marked><revision><SHA1>3d15e62972c2ffedcef0b227d3f1874aca7a3b26</SHA1><branch><SHA1>3d15e62972c2ffedcef0b227d3f1874aca7a3b26</SHA1><name>refs/remotes/origin/pr/2693/merge</name></branch></revision></refsremotesoriginpr2693merge><detached _class='hudson.plugins.git.util.Build'><buildNumber>262</buildNumber><marked><SHA1>7a343d4b1df60417ba97dd29b7ce675b1e3222e5</SHA1><branch><SHA1>7a343d4b1df60417ba97dd29b7ce675b1e3222e5</SHA1><name>detached</name></branch></marked><revision><SHA1>7a343d4b1df60417ba97dd29b7ce675b1e3222e5</SHA1><branch><SHA1>7a343d4b1df60417ba97dd29b7ce675b1e3222e5</SHA1><name>detached</name></branch></revision></detached><refsremotesoriginpr2659merge _class='hudson.plugins.git.util.Build'><buildNumber>188</buildNumber><marked><SHA1>2fe89089de30f701a3b3a862099b2c099ea40e17</SHA1><branch><SHA1>2fe89089de30f701a3b3a862099b2c099ea40e17</SHA1><name>refs/remotes/origin/pr/2659/merge</name></branch></marked><revision><SHA1>2fe89089de30f701a3b3a862099b2c099ea40e17</SHA1><branch><SHA1>2fe89089de30f701a3b3a862099b2c099ea40e17</SHA1><name>refs/remotes/origin/pr/2659/merge</name></branch></revision></refsremotesoriginpr2659merge><refsremotesoriginpr2563merge _class='hudson.plugins.git.util.Build'><buildNumber>96</buildNumber><marked><SHA1>9cbc7ce9422ebe42da07520d6cee7b728d20cf39</SHA1><branch><SHA1>9cbc7ce9422ebe42da07520d6cee7b728d20cf39</SHA1><name>refs/remotes/origin/pr/2563/merge</name></branch></marked><revision><SHA1>9cbc7ce9422ebe42da07520d6cee7b728d20cf39</SHA1><branch><SHA1>9cbc7ce9422ebe42da07520d6cee7b728d20cf39</SHA1><name>refs/remotes/origin/pr/2563/merge</name></branch></revision></refsremotesoriginpr2563merge><refsremotesoriginpr2696merge _class='hudson.plugins.git.util.Build'><buildNumber>226</buildNumber><marked><SHA1>31fd3b74cc31a8b0332007703dadc2604c8e1517</SHA1><branch><SHA1>31fd3b74cc31a8b0332007703dadc2604c8e1517</SHA1><name>refs/remotes/origin/pr/2696/merge</name></branch></marked><revision><SHA1>31fd3b74cc31a8b0332007703dadc2604c8e1517</SHA1><branch><SHA1>31fd3b74cc31a8b0332007703dadc2604c8e1517</SHA1><name>refs/remotes/origin/pr/2696/merge</name></branch></revision></refsremotesoriginpr2696merge><refsremotesoriginpr2699merge _class='hudson.plugins.git.util.Build'><buildNumber>234</buildNumber><marked><SHA1>3782841ca9217857fda1bad4a25d258035abdbe7</SHA1><branch><SHA1>3782841ca9217857fda1bad4a25d258035abdbe7</SHA1><name>refs/remotes/origin/pr/2699/merge</name></branch></marked><revision><SHA1>3782841ca9217857fda1bad4a25d258035abdbe7</SHA1><branch><SHA1>3782841ca9217857fda1bad4a25d258035abdbe7</SHA1><name>refs/remotes/origin/pr/2699/merge</name></branch></revision></refsremotesoriginpr2699merge><refsremotesoriginpr2681merge _class='hudson.plugins.git.util.Build'><buildNumber>207</buildNumber><marked><SHA1>06a02c4b193710ed873851838d44032205645022</SHA1><branch><SHA1>06a02c4b193710ed873851838d44032205645022</SHA1><name>refs/remotes/origin/pr/2681/merge</name></branch></marked><revision><SHA1>06a02c4b193710ed873851838d44032205645022</SHA1><branch><SHA1>06a02c4b193710ed873851838d44032205645022</SHA1><name>refs/remotes/origin/pr/2681/merge</name></branch></revision></refsremotesoriginpr2681merge><refsremotesoriginpr2709merge _class='hudson.plugins.git.util.Build'><buildNumber>243</buildNumber><marked><SHA1>729f3df9e9a27b27f0cc7a6e9cedff9776414abc</SHA1><branch><SHA1>729f3df9e9a27b27f0cc7a6e9cedff9776414abc</SHA1><name>refs/remotes/origin/pr/2709/merge</name></branch></marked><revision><SHA1>729f3df9e9a27b27f0cc7a6e9cedff9776414abc</SHA1><branch><SHA1>729f3df9e9a27b27f0cc7a6e9cedff9776414abc</SHA1><name>refs/remotes/origin/pr/2709/merge</name></branch></revision></refsremotesoriginpr2709merge><refsremotesoriginpr2503merge _class='hudson.plugins.git.util.Build'><buildNumber>58</buildNumber><marked><SHA1>2c65607d510390b0e3795aae757a2bde4dc0f56f</SHA1><branch><SHA1>2c65607d510390b0e3795aae757a2bde4dc0f56f</SHA1><name>refs/remotes/origin/pr/2503/merge</name></branch></marked><revision><SHA1>2c65607d510390b0e3795aae757a2bde4dc0f56f</SHA1><branch><SHA1>2c65607d510390b0e3795aae757a2bde4dc0f56f</SHA1><name>refs/remotes/origin/pr/2503/merge</name></branch></revision></refsremotesoriginpr2503merge><refsremotesoriginpr2468merge _class='hudson.plugins.git.util.Build'><buildNumber>28</buildNumber><marked><SHA1>dafbbd9951a6780ca0367bedfcf27222ab13ab22</SHA1><branch><SHA1>dafbbd9951a6780ca0367bedfcf27222ab13ab22</SHA1><name>refs/remotes/origin/pr/2468/merge</name></branch></marked><revision><SHA1>dafbbd9951a6780ca0367bedfcf27222ab13ab22</SHA1><branch><SHA1>dafbbd9951a6780ca0367bedfcf27222ab13ab22</SHA1><name>refs/remotes/origin/pr/2468/merge</name></branch></revision></refsremotesoriginpr2468merge><refsremotesoriginpr2481merge _class='hudson.plugins.git.util.Build'><buildNumber>41</buildNumber><marked><SHA1>efc51715bf825d55c735f17035562b91e7d1b5c7</SHA1><branch><SHA1>efc51715bf825d55c735f17035562b91e7d1b5c7</SHA1><name>refs/remotes/origin/pr/2481/merge</name></branch></marked><revision><SHA1>efc51715bf825d55c735f17035562b91e7d1b5c7</SHA1><branch><SHA1>efc51715bf825d55c735f17035562b91e7d1b5c7</SHA1><name>refs/remotes/origin/pr/2481/merge</name></branch></revision></refsremotesoriginpr2481merge><refsremotesoriginpr2451merge _class='hudson.plugins.git.util.Build'><buildNumber>11</buildNumber><marked><SHA1>0de2759a56d8ec943a4cbaa861835ea9ca699734</SHA1><branch><SHA1>0de2759a56d8ec943a4cbaa861835ea9ca699734</SHA1><name>refs/remotes/origin/pr/2451/merge</name></branch></marked><revision><SHA1>0de2759a56d8ec943a4cbaa861835ea9ca699734</SHA1><branch><SHA1>0de2759a56d8ec943a4cbaa861835ea9ca699734</SHA1><name>refs/remotes/origin/pr/2451/merge</name></branch></revision></refsremotesoriginpr2451merge><refsremotesoriginpr2458merge _class='hudson.plugins.git.util.Build'><buildNumber>18</buildNumber><marked><SHA1>34d4937ab03a111f00c3dcc64568345064c44627</SHA1><branch><SHA1>34d4937ab03a111f00c3dcc64568345064c44627</SHA1><name>refs/remotes/origin/pr/2458/merge</name></branch></marked><revision><SHA1>34d4937ab03a111f00c3dcc64568345064c44627</SHA1><branch><SHA1>34d4937ab03a111f00c3dcc64568345064c44627</SHA1><name>refs/remotes/origin/pr/2458/merge</name></branch></revision></refsremotesoriginpr2458merge><refsremotesoriginpr2684merge _class='hudson.plugins.git.util.Build'><buildNumber>213</buildNumber><marked><SHA1>e45fff282e1c129e08358e254e5223062a586e36</SHA1><branch><SHA1>e45fff282e1c129e08358e254e5223062a586e36</SHA1><name>refs/remotes/origin/pr/2684/merge</name></branch></marked><revision><SHA1>e45fff282e1c129e08358e254e5223062a586e36</SHA1><branch><SHA1>e45fff282e1c129e08358e254e5223062a586e36</SHA1><name>refs/remotes/origin/pr/2684/merge</name></branch></revision></refsremotesoriginpr2684merge><refsremotesoriginpr2694merge _class='hudson.plugins.git.util.Build'><buildNumber>227</buildNumber><marked><SHA1>1afb16ac6670c0fc759962953a807252fac21552</SHA1><branch><SHA1>1afb16ac6670c0fc759962953a807252fac21552</SHA1><name>refs/remotes/origin/pr/2694/merge</name></branch></marked><revision><SHA1>1afb16ac6670c0fc759962953a807252fac21552</SHA1><branch><SHA1>1afb16ac6670c0fc759962953a807252fac21552</SHA1><name>refs/remotes/origin/pr/2694/merge</name></branch></revision></refsremotesoriginpr2694merge><refsremotesoriginpr2706merge _class='hudson.plugins.git.util.Build'><buildNumber>238</buildNumber><marked><SHA1>6aa3c6562aaa861af1bd98dae36cdbdbbffaca54</SHA1><branch><SHA1>6aa3c6562aaa861af1bd98dae36cdbdbbffaca54</SHA1><name>refs/remotes/origin/pr/2706/merge</name></branch></marked><revision><SHA1>6aa3c6562aaa861af1bd98dae36cdbdbbffaca54</SHA1><branch><SHA1>6aa3c6562aaa861af1bd98dae36cdbdbbffaca54</SHA1><name>refs/remotes/origin/pr/2706/merge</name></branch></revision></refsremotesoriginpr2706merge><refsremotesoriginpr2464merge _class='hudson.plugins.git.util.Build'><buildNumber>22</buildNumber><marked><SHA1>1a5316f20d9ffb9906f606482bf558197ab7b36a</SHA1><branch><SHA1>1a5316f20d9ffb9906f606482bf558197ab7b36a</SHA1><name>refs/remotes/origin/pr/2464/merge</name></branch></marked><revision><SHA1>1a5316f20d9ffb9906f606482bf558197ab7b36a</SHA1><branch><SHA1>1a5316f20d9ffb9906f606482bf558197ab7b36a</SHA1><name>refs/remotes/origin/pr/2464/merge</name></branch></revision></refsremotesoriginpr2464merge><refsremotesoriginpr2474merge _class='hudson.plugins.git.util.Build'><buildNumber>31</buildNumber><marked><SHA1>4b52f6f57c53481fa0ec118ea24a1bdc4820aeb5</SHA1><branch><SHA1>4b52f6f57c53481fa0ec118ea24a1bdc4820aeb5</SHA1><name>refs/remotes/origin/pr/2474/merge</name></branch></marked><revision><SHA1>4b52f6f57c53481fa0ec118ea24a1bdc4820aeb5</SHA1><branch><SHA1>4b52f6f57c53481fa0ec118ea24a1bdc4820aeb5</SHA1><name>refs/remotes/origin/pr/2474/merge</name></branch></revision></refsremotesoriginpr2474merge><refsremotesoriginpr2399merge _class='hudson.plugins.git.util.Build'><buildNumber>24</buildNumber><marked><SHA1>4555c4ed09e44f43d97eb80d5866d93ee541db52</SHA1><branch><SHA1>4555c4ed09e44f43d97eb80d5866d93ee541db52</SHA1><name>refs/remotes/origin/pr/2399/merge</name></branch></marked><revision><SHA1>4555c4ed09e44f43d97eb80d5866d93ee541db52</SHA1><branch><SHA1>4555c4ed09e44f43d97eb80d5866d93ee541db52</SHA1><name>refs/remotes/origin/pr/2399/merge</name></branch></revision></refsremotesoriginpr2399merge><refsremotesoriginpr2562merge _class='hudson.plugins.git.util.Build'><buildNumber>97</buildNumber><marked><SHA1>43ecc261d9a0089afe78740396df89f7f9fe83b4</SHA1><branch><SHA1>43ecc261d9a0089afe78740396df89f7f9fe83b4</SHA1><name>refs/remotes/origin/pr/2562/merge</name></branch></marked><revision><SHA1>43ecc261d9a0089afe78740396df89f7f9fe83b4</SHA1><branch><SHA1>43ecc261d9a0089afe78740396df89f7f9fe83b4</SHA1><name>refs/remotes/origin/pr/2562/merge</name></branch></revision></refsremotesoriginpr2562merge><refsremotesoriginpr2655merge _class='hudson.plugins.git.util.Build'><buildNumber>182</buildNumber><marked><SHA1>cf21b632cfe56fbe3cfe95a141727fc1e8160051</SHA1><branch><SHA1>cf21b632cfe56fbe3cfe95a141727fc1e8160051</SHA1><name>refs/remotes/origin/pr/2655/merge</name></branch></marked><revision><SHA1>cf21b632cfe56fbe3cfe95a141727fc1e8160051</SHA1><branch><SHA1>cf21b632cfe56fbe3cfe95a141727fc1e8160051</SHA1><name>refs/remotes/origin/pr/2655/merge</name></branch></revision></refsremotesoriginpr2655merge><refsremotesoriginpr2625merge _class='hudson.plugins.git.util.Build'><buildNumber>155</buildNumber><marked><SHA1>6250e5ad2b7bc6e7cbf0bc2740586262519e90d0</SHA1><branch><SHA1>6250e5ad2b7bc6e7cbf0bc2740586262519e90d0</SHA1><name>refs/remotes/origin/pr/2625/merge</name></branch></marked><revision><SHA1>6250e5ad2b7bc6e7cbf0bc2740586262519e90d0</SHA1><branch><SHA1>6250e5ad2b7bc6e7cbf0bc2740586262519e90d0</SHA1><name>refs/remotes/origin/pr/2625/merge</name></branch></revision></refsremotesoriginpr2625merge><refsremotesoriginpr2665merge _class='hudson.plugins.git.util.Build'><buildNumber>260</buildNumber><marked><SHA1>bab52660430bcf976ea48643f75bf51cf20b8cb1</SHA1><branch><SHA1>bab52660430bcf976ea48643f75bf51cf20b8cb1</SHA1><name>refs/remotes/origin/pr/2665/merge</name></branch></marked><revision><SHA1>bab52660430bcf976ea48643f75bf51cf20b8cb1</SHA1><branch><SHA1>bab52660430bcf976ea48643f75bf51cf20b8cb1</SHA1><name>refs/remotes/origin/pr/2665/merge</name></branch></revision></refsremotesoriginpr2665merge><refsremotesoriginpr2660merge _class='hudson.plugins.git.util.Build'><buildNumber>190</buildNumber><marked><SHA1>e8881582af5dd4e276465d76a317bf9ff39e8a5a</SHA1><branch><SHA1>e8881582af5dd4e276465d76a317bf9ff39e8a5a</SHA1><name>refs/remotes/origin/pr/2660/merge</name></branch></marked><revision><SHA1>e8881582af5dd4e276465d76a317bf9ff39e8a5a</SHA1><branch><SHA1>e8881582af5dd4e276465d76a317bf9ff39e8a5a</SHA1><name>refs/remotes/origin/pr/2660/merge</name></branch></revision></refsremotesoriginpr2660merge><refsremotesoriginpr2532merge _class='hudson.plugins.git.util.Build'><buildNumber>77</buildNumber><marked><SHA1>617e0ca4fc895f2ff7bcd521313204db9f41e929</SHA1><branch><SHA1>617e0ca4fc895f2ff7bcd521313204db9f41e929</SHA1><name>refs/remotes/origin/pr/2532/merge</name></branch></marked><revision><SHA1>617e0ca4fc895f2ff7bcd521313204db9f41e929</SHA1><branch><SHA1>617e0ca4fc895f2ff7bcd521313204db9f41e929</SHA1><name>refs/remotes/origin/pr/2532/merge</name></branch></revision></refsremotesoriginpr2532merge><refsremotesoriginpr2637merge _class='hudson.plugins.git.util.Build'><buildNumber>163</buildNumber><marked><SHA1>d2de12709686a74a0483bdb9b7bf5715d64f5459</SHA1><branch><SHA1>d2de12709686a74a0483bdb9b7bf5715d64f5459</SHA1><name>refs/remotes/origin/pr/2637/merge</name></branch></marked><revision><SHA1>d2de12709686a74a0483bdb9b7bf5715d64f5459</SHA1><branch><SHA1>d2de12709686a74a0483bdb9b7bf5715d64f5459</SHA1><name>refs/remotes/origin/pr/2637/merge</name></branch></revision></refsremotesoriginpr2637merge><refsremotesoriginpr2585merge _class='hudson.plugins.git.util.Build'><buildNumber>108</buildNumber><marked><SHA1>fa9ca30aabaea8d1cfb3061c52e6e71e7f1e50ce</SHA1><branch><SHA1>fa9ca30aabaea8d1cfb3061c52e6e71e7f1e50ce</SHA1><name>refs/remotes/origin/pr/2585/merge</name></branch></marked><revision><SHA1>fa9ca30aabaea8d1cfb3061c52e6e71e7f1e50ce</SHA1><branch><SHA1>fa9ca30aabaea8d1cfb3061c52e6e71e7f1e50ce</SHA1><name>refs/remotes/origin/pr/2585/merge</name></branch></revision></refsremotesoriginpr2585merge><refsremotesoriginpr2324merge _class='hudson.plugins.git.util.Build'><buildNumber>13</buildNumber><marked><SHA1>91925f723c4424884963ac2f5e8d3cbeae01c304</SHA1><branch><SHA1>91925f723c4424884963ac2f5e8d3cbeae01c304</SHA1><name>refs/remotes/origin/pr/2324/merge</name></branch></marked><revision><SHA1>91925f723c4424884963ac2f5e8d3cbeae01c304</SHA1><branch><SHA1>91925f723c4424884963ac2f5e8d3cbeae01c304</SHA1><name>refs/remotes/origin/pr/2324/merge</name></branch></revision></refsremotesoriginpr2324merge><refsremotesoriginpr2527merge _class='hudson.plugins.git.util.Build'><buildNumber>73</buildNumber><marked><SHA1>7ac4187f13a382ffb048966d778055357642f2dd</SHA1><branch><SHA1>7ac4187f13a382ffb048966d778055357642f2dd</SHA1><name>refs/remotes/origin/pr/2527/merge</name></branch></marked><revision><SHA1>7ac4187f13a382ffb048966d778055357642f2dd</SHA1><branch><SHA1>7ac4187f13a382ffb048966d778055357642f2dd</SHA1><name>refs/remotes/origin/pr/2527/merge</name></branch></revision></refsremotesoriginpr2527merge><refsremotesoriginpr2602merge _class='hudson.plugins.git.util.Build'><buildNumber>134</buildNumber><marked><SHA1>00430a10e0e8cf4b18c98d364cc221713ff89dac</SHA1><branch><SHA1>00430a10e0e8cf4b18c98d364cc221713ff89dac</SHA1><name>refs/remotes/origin/pr/2602/merge</name></branch></marked><revision><SHA1>00430a10e0e8cf4b18c98d364cc221713ff89dac</SHA1><branch><SHA1>00430a10e0e8cf4b18c98d364cc221713ff89dac</SHA1><name>refs/remotes/origin/pr/2602/merge</name></branch></revision></refsremotesoriginpr2602merge><refsremotesoriginpr2642merge _class='hudson.plugins.git.util.Build'><buildNumber>169</buildNumber><marked><SHA1>78e340bdd6032223e3628d6e4742b2241dc28617</SHA1><branch><SHA1>78e340bdd6032223e3628d6e4742b2241dc28617</SHA1><name>refs/remotes/origin/pr/2642/merge</name></branch></marked><revision><SHA1>78e340bdd6032223e3628d6e4742b2241dc28617</SHA1><branch><SHA1>78e340bdd6032223e3628d6e4742b2241dc28617</SHA1><name>refs/remotes/origin/pr/2642/merge</name></branch></revision></refsremotesoriginpr2642merge><refsremotesoriginpr2677merge _class='hudson.plugins.git.util.Build'><buildNumber>203</buildNumber><marked><SHA1>d9ea5660e60a3104cb8e10d4ce713732b772092c</SHA1><branch><SHA1>d9ea5660e60a3104cb8e10d4ce713732b772092c</SHA1><name>refs/remotes/origin/pr/2677/merge</name></branch></marked><revision><SHA1>d9ea5660e60a3104cb8e10d4ce713732b772092c</SHA1><branch><SHA1>d9ea5660e60a3104cb8e10d4ce713732b772092c</SHA1><name>refs/remotes/origin/pr/2677/merge</name></branch></revision></refsremotesoriginpr2677merge><refsremotesoriginpr2475merge _class='hudson.plugins.git.util.Build'><buildNumber>39</buildNumber><marked><SHA1>1b71700f5754c2ba95550261d52dd3c01ddc5078</SHA1><branch><SHA1>1b71700f5754c2ba95550261d52dd3c01ddc5078</SHA1><name>refs/remotes/origin/pr/2475/merge</name></branch></marked><revision><SHA1>1b71700f5754c2ba95550261d52dd3c01ddc5078</SHA1><branch><SHA1>1b71700f5754c2ba95550261d52dd3c01ddc5078</SHA1><name>refs/remotes/origin/pr/2475/merge</name></branch></revision></refsremotesoriginpr2475merge><refsremotesoriginpr2712merge _class='hudson.plugins.git.util.Build'><buildNumber>251</buildNumber><marked><SHA1>6dcbf5a075a44c16b86a034c1f9e461d412ebfa9</SHA1><branch><SHA1>6dcbf5a075a44c16b86a034c1f9e461d412ebfa9</SHA1><name>refs/remotes/origin/pr/2712/merge</name></branch></marked><revision><SHA1>6dcbf5a075a44c16b86a034c1f9e461d412ebfa9</SHA1><branch><SHA1>6dcbf5a075a44c16b86a034c1f9e461d412ebfa9</SHA1><name>refs/remotes/origin/pr/2712/merge</name></branch></revision></refsremotesoriginpr2712merge><refsremotesoriginpr2544merge _class='hudson.plugins.git.util.Build'><buildNumber>85</buildNumber><marked><SHA1>558239695fde72e2b72d4c65890caf49029e8549</SHA1><branch><SHA1>558239695fde72e2b72d4c65890caf49029e8549</SHA1><name>refs/remotes/origin/pr/2544/merge</name></branch></marked><revision><SHA1>558239695fde72e2b72d4c65890caf49029e8549</SHA1><branch><SHA1>558239695fde72e2b72d4c65890caf49029e8549</SHA1><name>refs/remotes/origin/pr/2544/merge</name></branch></revision></refsremotesoriginpr2544merge><refsremotesoriginpr2480merge _class='hudson.plugins.git.util.Build'><buildNumber>42</buildNumber><marked><SHA1>dc3301b4eaf4afedc7b2a80ab9f484163fb6cb45</SHA1><branch><SHA1>dc3301b4eaf4afedc7b2a80ab9f484163fb6cb45</SHA1><name>refs/remotes/origin/pr/2480/merge</name></branch></marked><revision><SHA1>dc3301b4eaf4afedc7b2a80ab9f484163fb6cb45</SHA1><branch><SHA1>dc3301b4eaf4afedc7b2a80ab9f484163fb6cb45</SHA1><name>refs/remotes/origin/pr/2480/merge</name></branch></revision></refsremotesoriginpr2480merge><refsremotesoriginpr2683merge _class='hudson.plugins.git.util.Build'><buildNumber>212</buildNumber><marked><SHA1>b28a1962ad7465973acd9a658971992864d45cc7</SHA1><branch><SHA1>b28a1962ad7465973acd9a658971992864d45cc7</SHA1><name>refs/remotes/origin/pr/2683/merge</name></branch></marked><revision><SHA1>b28a1962ad7465973acd9a658971992864d45cc7</SHA1><branch><SHA1>b28a1962ad7465973acd9a658971992864d45cc7</SHA1><name>refs/remotes/origin/pr/2683/merge</name></branch></revision></refsremotesoriginpr2683merge><refsremotesoriginpr2579merge _class='hudson.plugins.git.util.Build'><buildNumber>139</buildNumber><marked><SHA1>e76a69df2fa545ce7c8e1046c35c0a52c501f8ff</SHA1><branch><SHA1>e76a69df2fa545ce7c8e1046c35c0a52c501f8ff</SHA1><name>refs/remotes/origin/pr/2579/merge</name></branch></marked><revision><SHA1>e76a69df2fa545ce7c8e1046c35c0a52c501f8ff</SHA1><branch><SHA1>e76a69df2fa545ce7c8e1046c35c0a52c501f8ff</SHA1><name>refs/remotes/origin/pr/2579/merge</name></branch></revision></refsremotesoriginpr2579merge><refsremotesoriginpr2689merge _class='hudson.plugins.git.util.Build'><buildNumber>220</buildNumber><marked><SHA1>8108a74ca639d452b7b1147402a6518668ca471d</SHA1><branch><SHA1>8108a74ca639d452b7b1147402a6518668ca471d</SHA1><name>refs/remotes/origin/pr/2689/merge</name></branch></marked><revision><SHA1>8108a74ca639d452b7b1147402a6518668ca471d</SHA1><branch><SHA1>8108a74ca639d452b7b1147402a6518668ca471d</SHA1><name>refs/remotes/origin/pr/2689/merge</name></branch></revision></refsremotesoriginpr2689merge><refsremotesoriginpr2614merge _class='hudson.plugins.git.util.Build'><buildNumber>150</buildNumber><marked><SHA1>a8dfc54f693192bc9bcef31bcf0f64b503ae2b62</SHA1><branch><SHA1>a8dfc54f693192bc9bcef31bcf0f64b503ae2b62</SHA1><name>refs/remotes/origin/pr/2614/merge</name></branch></marked><revision><SHA1>a8dfc54f693192bc9bcef31bcf0f64b503ae2b62</SHA1><branch><SHA1>a8dfc54f693192bc9bcef31bcf0f64b503ae2b62</SHA1><name>refs/remotes/origin/pr/2614/merge</name></branch></revision></refsremotesoriginpr2614merge><refsremotesoriginpr2626merge _class='hudson.plugins.git.util.Build'><buildNumber>156</buildNumber><marked><SHA1>d0a3da4c307fd89ee43c1fb5603805b50aec8b14</SHA1><branch><SHA1>d0a3da4c307fd89ee43c1fb5603805b50aec8b14</SHA1><name>refs/remotes/origin/pr/2626/merge</name></branch></marked><revision><SHA1>d0a3da4c307fd89ee43c1fb5603805b50aec8b14</SHA1><branch><SHA1>d0a3da4c307fd89ee43c1fb5603805b50aec8b14</SHA1><name>refs/remotes/origin/pr/2626/merge</name></branch></revision></refsremotesoriginpr2626merge><refsremotesoriginpr2596merge _class='hudson.plugins.git.util.Build'><buildNumber>142</buildNumber><marked><SHA1>560b8090f01511ca01fcba52ca317eb894d2f955</SHA1><branch><SHA1>560b8090f01511ca01fcba52ca317eb894d2f955</SHA1><name>refs/remotes/origin/pr/2596/merge</name></branch></marked><revision><SHA1>560b8090f01511ca01fcba52ca317eb894d2f955</SHA1><branch><SHA1>560b8090f01511ca01fcba52ca317eb894d2f955</SHA1><name>refs/remotes/origin/pr/2596/merge</name></branch></revision></refsremotesoriginpr2596merge><refsremotesoriginpr2516merge _class='hudson.plugins.git.util.Build'><buildNumber>66</buildNumber><marked><SHA1>42d092c998f8e32f22ff38cd3832813087343e55</SHA1><branch><SHA1>42d092c998f8e32f22ff38cd3832813087343e55</SHA1><name>refs/remotes/origin/pr/2516/merge</name></branch></marked><revision><SHA1>42d092c998f8e32f22ff38cd3832813087343e55</SHA1><branch><SHA1>42d092c998f8e32f22ff38cd3832813087343e55</SHA1><name>refs/remotes/origin/pr/2516/merge</name></branch></revision></refsremotesoriginpr2516merge><refsremotesoriginpr2496merge _class='hudson.plugins.git.util.Build'><buildNumber>53</buildNumber><marked><SHA1>d4dd8df4cd220b5a493b0565b7852075ad192662</SHA1><branch><SHA1>d4dd8df4cd220b5a493b0565b7852075ad192662</SHA1><name>refs/remotes/origin/pr/2496/merge</name></branch></marked><revision><SHA1>d4dd8df4cd220b5a493b0565b7852075ad192662</SHA1><branch><SHA1>d4dd8df4cd220b5a493b0565b7852075ad192662</SHA1><name>refs/remotes/origin/pr/2496/merge</name></branch></revision></refsremotesoriginpr2496merge><refsremotesoriginpr2433merge _class='hudson.plugins.git.util.Build'><buildNumber>14</buildNumber><marked><SHA1>9ad62c67a8a6cc58284204b312ebe526c0df3288</SHA1><branch><SHA1>9ad62c67a8a6cc58284204b312ebe526c0df3288</SHA1><name>refs/remotes/origin/pr/2433/merge</name></branch></marked><revision><SHA1>9ad62c67a8a6cc58284204b312ebe526c0df3288</SHA1><branch><SHA1>9ad62c67a8a6cc58284204b312ebe526c0df3288</SHA1><name>refs/remotes/origin/pr/2433/merge</name></branch></revision></refsremotesoriginpr2433merge><refsremotesoriginpr2541merge _class='hudson.plugins.git.util.Build'><buildNumber>81</buildNumber><marked><SHA1>891eb501f5f98d2c4a744ce31fb15cf1861454c9</SHA1><branch><SHA1>891eb501f5f98d2c4a744ce31fb15cf1861454c9</SHA1><name>refs/remotes/origin/pr/2541/merge</name></branch></marked><revision><SHA1>891eb501f5f98d2c4a744ce31fb15cf1861454c9</SHA1><branch><SHA1>891eb501f5f98d2c4a744ce31fb15cf1861454c9</SHA1><name>refs/remotes/origin/pr/2541/merge</name></branch></revision></refsremotesoriginpr2541merge><refsremotesoriginpr2551merge _class='hudson.plugins.git.util.Build'><buildNumber>88</buildNumber><marked><SHA1>49c0c749bb192f3652c81d8706158915b2782968</SHA1><branch><SHA1>49c0c749bb192f3652c81d8706158915b2782968</SHA1><name>refs/remotes/origin/pr/2551/merge</name></branch></marked><revision><SHA1>49c0c749bb192f3652c81d8706158915b2782968</SHA1><branch><SHA1>49c0c749bb192f3652c81d8706158915b2782968</SHA1><name>refs/remotes/origin/pr/2551/merge</name></branch></revision></refsremotesoriginpr2551merge><refsremotesoriginpr2561merge _class='hudson.plugins.git.util.Build'><buildNumber>94</buildNumber><marked><SHA1>bff5864ad4934a08fb19c78d1487682e357b8c8c</SHA1><branch><SHA1>bff5864ad4934a08fb19c78d1487682e357b8c8c</SHA1><name>refs/remotes/origin/pr/2561/merge</name></branch></marked><revision><SHA1>bff5864ad4934a08fb19c78d1487682e357b8c8c</SHA1><branch><SHA1>bff5864ad4934a08fb19c78d1487682e357b8c8c</SHA1><name>refs/remotes/origin/pr/2561/merge</name></branch></revision></refsremotesoriginpr2561merge><refsremotesoriginpr2476merge _class='hudson.plugins.git.util.Build'><buildNumber>125</buildNumber><marked><SHA1>613abb5d302557b7a660569b70a39e250320cbb7</SHA1><branch><SHA1>613abb5d302557b7a660569b70a39e250320cbb7</SHA1><name>refs/remotes/origin/pr/2476/merge</name></branch></marked><revision><SHA1>613abb5d302557b7a660569b70a39e250320cbb7</SHA1><branch><SHA1>613abb5d302557b7a660569b70a39e250320cbb7</SHA1><name>refs/remotes/origin/pr/2476/merge</name></branch></revision></refsremotesoriginpr2476merge><refsremotesoriginpr2708merge _class='hudson.plugins.git.util.Build'><buildNumber>242</buildNumber><marked><SHA1>e397e5e0e703ab196a9444bbe0f736105931e7e8</SHA1><branch><SHA1>e397e5e0e703ab196a9444bbe0f736105931e7e8</SHA1><name>refs/remotes/origin/pr/2708/merge</name></branch></marked><revision><SHA1>e397e5e0e703ab196a9444bbe0f736105931e7e8</SHA1><branch><SHA1>e397e5e0e703ab196a9444bbe0f736105931e7e8</SHA1><name>refs/remotes/origin/pr/2708/merge</name></branch></revision></refsremotesoriginpr2708merge><refsremotesoriginpr2584merge _class='hudson.plugins.git.util.Build'><buildNumber>106</buildNumber><marked><SHA1>51e3fc105efa0de813223633bc6bd6df11c0e28a</SHA1><branch><SHA1>51e3fc105efa0de813223633bc6bd6df11c0e28a</SHA1><name>refs/remotes/origin/pr/2584/merge</name></branch></marked><revision><SHA1>51e3fc105efa0de813223633bc6bd6df11c0e28a</SHA1><branch><SHA1>51e3fc105efa0de813223633bc6bd6df11c0e28a</SHA1><name>refs/remotes/origin/pr/2584/merge</name></branch></revision></refsremotesoriginpr2584merge><refsremotesoriginpr2594merge _class='hudson.plugins.git.util.Build'><buildNumber>122</buildNumber><marked><SHA1>69303d81639871fac2613dd100c3230156cbb871</SHA1><branch><SHA1>69303d81639871fac2613dd100c3230156cbb871</SHA1><name>refs/remotes/origin/pr/2594/merge</name></branch></marked><revision><SHA1>69303d81639871fac2613dd100c3230156cbb871</SHA1><branch><SHA1>69303d81639871fac2613dd100c3230156cbb871</SHA1><name>refs/remotes/origin/pr/2594/merge</name></branch></revision></refsremotesoriginpr2594merge><refsremotesoriginpr2574merge _class='hudson.plugins.git.util.Build'><buildNumber>109</buildNumber><marked><SHA1>804673e9f03747bc80cbafc2fcb7b04118007845</SHA1><branch><SHA1>804673e9f03747bc80cbafc2fcb7b04118007845</SHA1><name>refs/remotes/origin/pr/2574/merge</name></branch></marked><revision><SHA1>804673e9f03747bc80cbafc2fcb7b04118007845</SHA1><branch><SHA1>804673e9f03747bc80cbafc2fcb7b04118007845</SHA1><name>refs/remotes/origin/pr/2574/merge</name></branch></revision></refsremotesoriginpr2574merge><refsremotesoriginpr2682merge _class='hudson.plugins.git.util.Build'><buildNumber>211</buildNumber><marked><SHA1>72c19b0d4798468cdbeb25e520ec6c407f53165a</SHA1><branch><SHA1>72c19b0d4798468cdbeb25e520ec6c407f53165a</SHA1><name>refs/remotes/origin/pr/2682/merge</name></branch></marked><revision><SHA1>72c19b0d4798468cdbeb25e520ec6c407f53165a</SHA1><branch><SHA1>72c19b0d4798468cdbeb25e520ec6c407f53165a</SHA1><name>refs/remotes/origin/pr/2682/merge</name></branch></revision></refsremotesoriginpr2682merge><refsremotesoriginpr2705merge _class='hudson.plugins.git.util.Build'><buildNumber>240</buildNumber><marked><SHA1>b049830044e2ddda0a8b63c3efab95a535d222d2</SHA1><branch><SHA1>b049830044e2ddda0a8b63c3efab95a535d222d2</SHA1><name>refs/remotes/origin/pr/2705/merge</name></branch></marked><revision><SHA1>b049830044e2ddda0a8b63c3efab95a535d222d2</SHA1><branch><SHA1>b049830044e2ddda0a8b63c3efab95a535d222d2</SHA1><name>refs/remotes/origin/pr/2705/merge</name></branch></revision></refsremotesoriginpr2705merge><refsremotesoriginpr2672merge _class='hudson.plugins.git.util.Build'><buildNumber>195</buildNumber><marked><SHA1>be95cda62a962270c2997699f2ea28c30ea5178d</SHA1><branch><SHA1>be95cda62a962270c2997699f2ea28c30ea5178d</SHA1><name>refs/remotes/origin/pr/2672/merge</name></branch></marked><revision><SHA1>be95cda62a962270c2997699f2ea28c30ea5178d</SHA1><branch><SHA1>be95cda62a962270c2997699f2ea28c30ea5178d</SHA1><name>refs/remotes/origin/pr/2672/merge</name></branch></revision></refsremotesoriginpr2672merge><refsremotesoriginpr2695merge _class='hudson.plugins.git.util.Build'><buildNumber>232</buildNumber><marked><SHA1>74e75992a9bf9ae222155f09fc655d2ab2e29ec4</SHA1><branch><SHA1>74e75992a9bf9ae222155f09fc655d2ab2e29ec4</SHA1><name>refs/remotes/origin/pr/2695/merge</name></branch></marked><revision><SHA1>74e75992a9bf9ae222155f09fc655d2ab2e29ec4</SHA1><branch><SHA1>74e75992a9bf9ae222155f09fc655d2ab2e29ec4</SHA1><name>refs/remotes/origin/pr/2695/merge</name></branch></revision></refsremotesoriginpr2695merge><refsremotesoriginpr2557merge _class='hudson.plugins.git.util.Build'><buildNumber>89</buildNumber><marked><SHA1>cffff1d404bb4f3e18c0e79362abf396a38a8878</SHA1><branch><SHA1>cffff1d404bb4f3e18c0e79362abf396a38a8878</SHA1><name>refs/remotes/origin/pr/2557/merge</name></branch></marked><revision><SHA1>cffff1d404bb4f3e18c0e79362abf396a38a8878</SHA1><branch><SHA1>cffff1d404bb4f3e18c0e79362abf396a38a8878</SHA1><name>refs/remotes/origin/pr/2557/merge</name></branch></revision></refsremotesoriginpr2557merge><refsremotesoriginpr2685merge _class='hudson.plugins.git.util.Build'><buildNumber>216</buildNumber><marked><SHA1>fd2059c377dc12e7bc3d1765a114fca6d77109ad</SHA1><branch><SHA1>fd2059c377dc12e7bc3d1765a114fca6d77109ad</SHA1><name>refs/remotes/origin/pr/2685/merge</name></branch></marked><revision><SHA1>fd2059c377dc12e7bc3d1765a114fca6d77109ad</SHA1><branch><SHA1>fd2059c377dc12e7bc3d1765a114fca6d77109ad</SHA1><name>refs/remotes/origin/pr/2685/merge</name></branch></revision></refsremotesoriginpr2685merge><refsremotesoriginpr2647merge _class='hudson.plugins.git.util.Build'><buildNumber>173</buildNumber><marked><SHA1>9df251e131dfc7831ed9a58243b6f43986ed6dc8</SHA1><branch><SHA1>9df251e131dfc7831ed9a58243b6f43986ed6dc8</SHA1><name>refs/remotes/origin/pr/2647/merge</name></branch></marked><revision><SHA1>9df251e131dfc7831ed9a58243b6f43986ed6dc8</SHA1><branch><SHA1>9df251e131dfc7831ed9a58243b6f43986ed6dc8</SHA1><name>refs/remotes/origin/pr/2647/merge</name></branch></revision></refsremotesoriginpr2647merge><refsremotesoriginpr2529merge _class='hudson.plugins.git.util.Build'><buildNumber>75</buildNumber><marked><SHA1>67e3335b1b17dd8b8bab7eee977f49228f84dbb3</SHA1><branch><SHA1>67e3335b1b17dd8b8bab7eee977f49228f84dbb3</SHA1><name>refs/remotes/origin/pr/2529/merge</name></branch></marked><revision><SHA1>67e3335b1b17dd8b8bab7eee977f49228f84dbb3</SHA1><branch><SHA1>67e3335b1b17dd8b8bab7eee977f49228f84dbb3</SHA1><name>refs/remotes/origin/pr/2529/merge</name></branch></revision></refsremotesoriginpr2529merge><refsremotesoriginpr2577merge _class='hudson.plugins.git.util.Build'><buildNumber>104</buildNumber><marked><SHA1>b24e9146ab99ee43e45de79d69db52f8b289c267</SHA1><branch><SHA1>b24e9146ab99ee43e45de79d69db52f8b289c267</SHA1><name>refs/remotes/origin/pr/2577/merge</name></branch></marked><revision><SHA1>b24e9146ab99ee43e45de79d69db52f8b289c267</SHA1><branch><SHA1>b24e9146ab99ee43e45de79d69db52f8b289c267</SHA1><name>refs/remotes/origin/pr/2577/merge</name></branch></revision></refsremotesoriginpr2577merge><refsremotesoriginpr2612merge _class='hudson.plugins.git.util.Build'><buildNumber>148</buildNumber><marked><SHA1>999856012ef1bcbc8dd40f937a30ee1f98c2180a</SHA1><branch><SHA1>999856012ef1bcbc8dd40f937a30ee1f98c2180a</SHA1><name>refs/remotes/origin/pr/2612/merge</name></branch></marked><revision><SHA1>999856012ef1bcbc8dd40f937a30ee1f98c2180a</SHA1><branch><SHA1>999856012ef1bcbc8dd40f937a30ee1f98c2180a</SHA1><name>refs/remotes/origin/pr/2612/merge</name></branch></revision></refsremotesoriginpr2612merge><refsremotesoriginpr2632merge _class='hudson.plugins.git.util.Build'><buildNumber>158</buildNumber><marked><SHA1>78c3755f787a68f085d7e1ab1e4b19ad1d6eef3c</SHA1><branch><SHA1>78c3755f787a68f085d7e1ab1e4b19ad1d6eef3c</SHA1><name>refs/remotes/origin/pr/2632/merge</name></branch></marked><revision><SHA1>78c3755f787a68f085d7e1ab1e4b19ad1d6eef3c</SHA1><branch><SHA1>78c3755f787a68f085d7e1ab1e4b19ad1d6eef3c</SHA1><name>refs/remotes/origin/pr/2632/merge</name></branch></revision></refsremotesoriginpr2632merge><refsremotesoriginpr2450merge _class='hudson.plugins.git.util.Build'><buildNumber>3</buildNumber><marked><SHA1>ef216ad8a72a283090f026554d1a07bbe18612bd</SHA1><branch><SHA1>ef216ad8a72a283090f026554d1a07bbe18612bd</SHA1><name>refs/remotes/origin/pr/2450/merge</name></branch></marked><revision><SHA1>ef216ad8a72a283090f026554d1a07bbe18612bd</SHA1><branch><SHA1>ef216ad8a72a283090f026554d1a07bbe18612bd</SHA1><name>refs/remotes/origin/pr/2450/merge</name></branch></revision></refsremotesoriginpr2450merge><refsremotesoriginpr2514merge _class='hudson.plugins.git.util.Build'><buildNumber>64</buildNumber><marked><SHA1>c0ab24305e23c54b9f8feb7148300253807e79ae</SHA1><branch><SHA1>c0ab24305e23c54b9f8feb7148300253807e79ae</SHA1><name>refs/remotes/origin/pr/2514/merge</name></branch></marked><revision><SHA1>c0ab24305e23c54b9f8feb7148300253807e79ae</SHA1><branch><SHA1>c0ab24305e23c54b9f8feb7148300253807e79ae</SHA1><name>refs/remotes/origin/pr/2514/merge</name></branch></revision></refsremotesoriginpr2514merge><refsremotesoriginpr2549merge _class='hudson.plugins.git.util.Build'><buildNumber>87</buildNumber><marked><SHA1>ed80c60d2b2a90262a8c72f659389181b0ce46e4</SHA1><branch><SHA1>ed80c60d2b2a90262a8c72f659389181b0ce46e4</SHA1><name>refs/remotes/origin/pr/2549/merge</name></branch></marked><revision><SHA1>ed80c60d2b2a90262a8c72f659389181b0ce46e4</SHA1><branch><SHA1>ed80c60d2b2a90262a8c72f659389181b0ce46e4</SHA1><name>refs/remotes/origin/pr/2549/merge</name></branch></revision></refsremotesoriginpr2549merge><refsremotesoriginpr2604merge _class='hudson.plugins.git.util.Build'><buildNumber>138</buildNumber><marked><SHA1>9950b23cb9d377a332fc56ae1ff5aa0a1beb865b</SHA1><branch><SHA1>9950b23cb9d377a332fc56ae1ff5aa0a1beb865b</SHA1><name>refs/remotes/origin/pr/2604/merge</name></branch></marked><revision><SHA1>9950b23cb9d377a332fc56ae1ff5aa0a1beb865b</SHA1><branch><SHA1>9950b23cb9d377a332fc56ae1ff5aa0a1beb865b</SHA1><name>refs/remotes/origin/pr/2604/merge</name></branch></revision></refsremotesoriginpr2604merge><refsremotesoriginpr2667merge _class='hudson.plugins.git.util.Build'><buildNumber>193</buildNumber><marked><SHA1>5990c479792da3f06d7a80c72726268403f40c1c</SHA1><branch><SHA1>5990c479792da3f06d7a80c72726268403f40c1c</SHA1><name>refs/remotes/origin/pr/2667/merge</name></branch></marked><revision><SHA1>5990c479792da3f06d7a80c72726268403f40c1c</SHA1><branch><SHA1>5990c479792da3f06d7a80c72726268403f40c1c</SHA1><name>refs/remotes/origin/pr/2667/merge</name></branch></revision></refsremotesoriginpr2667merge><refsremotesoriginpr2687merge _class='hudson.plugins.git.util.Build'><buildNumber>219</buildNumber><marked><SHA1>3b1e980063fd3c3ec10e947f66499cf829a15cbb</SHA1><branch><SHA1>3b1e980063fd3c3ec10e947f66499cf829a15cbb</SHA1><name>refs/remotes/origin/pr/2687/merge</name></branch></marked><revision><SHA1>3b1e980063fd3c3ec10e947f66499cf829a15cbb</SHA1><branch><SHA1>3b1e980063fd3c3ec10e947f66499cf829a15cbb</SHA1><name>refs/remotes/origin/pr/2687/merge</name></branch></revision></refsremotesoriginpr2687merge><refsremotesoriginpr2470merge _class='hudson.plugins.git.util.Build'><buildNumber>29</buildNumber><marked><SHA1>af04f2e1e5da0b60cce7c91120a3b0aa1722b365</SHA1><branch><SHA1>af04f2e1e5da0b60cce7c91120a3b0aa1722b365</SHA1><name>refs/remotes/origin/pr/2470/merge</name></branch></marked><revision><SHA1>af04f2e1e5da0b60cce7c91120a3b0aa1722b365</SHA1><branch><SHA1>af04f2e1e5da0b60cce7c91120a3b0aa1722b365</SHA1><name>refs/remotes/origin/pr/2470/merge</name></branch></revision></refsremotesoriginpr2470merge><refsremotesoriginpr2479merge _class='hudson.plugins.git.util.Build'><buildNumber>40</buildNumber><marked><SHA1>9ee03e84d780ee8ad86dd38514b687ac39453c3d</SHA1><branch><SHA1>9ee03e84d780ee8ad86dd38514b687ac39453c3d</SHA1><name>refs/remotes/origin/pr/2479/merge</name></branch></marked><revision><SHA1>9ee03e84d780ee8ad86dd38514b687ac39453c3d</SHA1><branch><SHA1>9ee03e84d780ee8ad86dd38514b687ac39453c3d</SHA1><name>refs/remotes/origin/pr/2479/merge</name></branch></revision></refsremotesoriginpr2479merge><refsremotesoriginpr2499merge _class='hudson.plugins.git.util.Build'><buildNumber>54</buildNumber><marked><SHA1>afadbc5266374da6486d1754269eda2d437c3021</SHA1><branch><SHA1>afadbc5266374da6486d1754269eda2d437c3021</SHA1><name>refs/remotes/origin/pr/2499/merge</name></branch></marked><revision><SHA1>afadbc5266374da6486d1754269eda2d437c3021</SHA1><branch><SHA1>afadbc5266374da6486d1754269eda2d437c3021</SHA1><name>refs/remotes/origin/pr/2499/merge</name></branch></revision></refsremotesoriginpr2499merge><refsremotesoriginpr2554merge _class='hudson.plugins.git.util.Build'><buildNumber>90</buildNumber><marked><SHA1>20eeb19bb77f72fa0a94fb1574a74c3ca279e8b0</SHA1><branch><SHA1>20eeb19bb77f72fa0a94fb1574a74c3ca279e8b0</SHA1><name>refs/remotes/origin/pr/2554/merge</name></branch></marked><revision><SHA1>20eeb19bb77f72fa0a94fb1574a74c3ca279e8b0</SHA1><branch><SHA1>20eeb19bb77f72fa0a94fb1574a74c3ca279e8b0</SHA1><name>refs/remotes/origin/pr/2554/merge</name></branch></revision></refsremotesoriginpr2554merge><refsremotesoriginpr2644merge _class='hudson.plugins.git.util.Build'><buildNumber>170</buildNumber><marked><SHA1>0e22a1b8cf0a38062c6b160d290afc36785b7a5e</SHA1><branch><SHA1>0e22a1b8cf0a38062c6b160d290afc36785b7a5e</SHA1><name>refs/remotes/origin/pr/2644/merge</name></branch></marked><revision><SHA1>0e22a1b8cf0a38062c6b160d290afc36785b7a5e</SHA1><branch><SHA1>0e22a1b8cf0a38062c6b160d290afc36785b7a5e</SHA1><name>refs/remotes/origin/pr/2644/merge</name></branch></revision></refsremotesoriginpr2644merge><refsremotesoriginpr2511merge _class='hudson.plugins.git.util.Build'><buildNumber>62</buildNumber><marked><SHA1>94addcad2706b0418b6c53fe544c8757be51b8be</SHA1><branch><SHA1>94addcad2706b0418b6c53fe544c8757be51b8be</SHA1><name>refs/remotes/origin/pr/2511/merge</name></branch></marked><revision><SHA1>94addcad2706b0418b6c53fe544c8757be51b8be</SHA1><branch><SHA1>94addcad2706b0418b6c53fe544c8757be51b8be</SHA1><name>refs/remotes/origin/pr/2511/merge</name></branch></revision></refsremotesoriginpr2511merge><refsremotesoriginpr2456merge _class='hudson.plugins.git.util.Build'><buildNumber>15</buildNumber><marked><SHA1>a994e764c1058aac223a68054f8d5decfbbab13b</SHA1><branch><SHA1>a994e764c1058aac223a68054f8d5decfbbab13b</SHA1><name>refs/remotes/origin/pr/2456/merge</name></branch></marked><revision><SHA1>a994e764c1058aac223a68054f8d5decfbbab13b</SHA1><branch><SHA1>a994e764c1058aac223a68054f8d5decfbbab13b</SHA1><name>refs/remotes/origin/pr/2456/merge</name></branch></revision></refsremotesoriginpr2456merge><refsremotesoriginpr2621merge _class='hudson.plugins.git.util.Build'><buildNumber>152</buildNumber><marked><SHA1>a0b50128a49295753b873d5dbd1db389acddd21d</SHA1><branch><SHA1>a0b50128a49295753b873d5dbd1db389acddd21d</SHA1><name>refs/remotes/origin/pr/2621/merge</name></branch></marked><revision><SHA1>a0b50128a49295753b873d5dbd1db389acddd21d</SHA1><branch><SHA1>a0b50128a49295753b873d5dbd1db389acddd21d</SHA1><name>refs/remotes/origin/pr/2621/merge</name></branch></revision></refsremotesoriginpr2621merge><refsremotesoriginpr2618merge _class='hudson.plugins.git.util.Build'><buildNumber>151</buildNumber><marked><SHA1>d8135f3bdc7185addefce575ea0fe3fb82b65b70</SHA1><branch><SHA1>d8135f3bdc7185addefce575ea0fe3fb82b65b70</SHA1><name>refs/remotes/origin/pr/2618/merge</name></branch></marked><revision><SHA1>d8135f3bdc7185addefce575ea0fe3fb82b65b70</SHA1><branch><SHA1>d8135f3bdc7185addefce575ea0fe3fb82b65b70</SHA1><name>refs/remotes/origin/pr/2618/merge</name></branch></revision></refsremotesoriginpr2618merge><refsremotesoriginpr2523merge _class='hudson.plugins.git.util.Build'><buildNumber>70</buildNumber><marked><SHA1>f476447011ed26924462deaa00460e7d57bc868d</SHA1><branch><SHA1>f476447011ed26924462deaa00460e7d57bc868d</SHA1><name>refs/remotes/origin/pr/2523/merge</name></branch></marked><revision><SHA1>f476447011ed26924462deaa00460e7d57bc868d</SHA1><branch><SHA1>f476447011ed26924462deaa00460e7d57bc868d</SHA1><name>refs/remotes/origin/pr/2523/merge</name></branch></revision></refsremotesoriginpr2523merge><refsremotesoriginpr2438merge _class='hudson.plugins.git.util.Build'><buildNumber>7</buildNumber><marked><SHA1>fdc23289503102ec3712dac2aa8db50c0659f1b8</SHA1><branch><SHA1>fdc23289503102ec3712dac2aa8db50c0659f1b8</SHA1><name>refs/remotes/origin/pr/2438/merge</name></branch></marked><revision><SHA1>fdc23289503102ec3712dac2aa8db50c0659f1b8</SHA1><branch><SHA1>fdc23289503102ec3712dac2aa8db50c0659f1b8</SHA1><name>refs/remotes/origin/pr/2438/merge</name></branch></revision></refsremotesoriginpr2438merge><refsremotesoriginpr2488merge _class='hudson.plugins.git.util.Build'><buildNumber>49</buildNumber><marked><SHA1>a55c09b24844847e4c44e8857ae035870f5f838b</SHA1><branch><SHA1>a55c09b24844847e4c44e8857ae035870f5f838b</SHA1><name>refs/remotes/origin/pr/2488/merge</name></branch></marked><revision><SHA1>a55c09b24844847e4c44e8857ae035870f5f838b</SHA1><branch><SHA1>a55c09b24844847e4c44e8857ae035870f5f838b</SHA1><name>refs/remotes/origin/pr/2488/merge</name></branch></revision></refsremotesoriginpr2488merge><refsremotesoriginpr2431merge _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>af079dd26be2ead11e98c6f113997fb2bc8c6684</SHA1><branch><SHA1>af079dd26be2ead11e98c6f113997fb2bc8c6684</SHA1><name>refs/remotes/origin/pr/2431/merge</name></branch></marked><revision><SHA1>af079dd26be2ead11e98c6f113997fb2bc8c6684</SHA1><branch><SHA1>af079dd26be2ead11e98c6f113997fb2bc8c6684</SHA1><name>refs/remotes/origin/pr/2431/merge</name></branch></revision></refsremotesoriginpr2431merge><refsremotesoriginpr2716merge _class='hudson.plugins.git.util.Build'><buildNumber>258</buildNumber><marked><SHA1>05cd14bdc0df561b2d833b1b1ef0b86db25a5754</SHA1><branch><SHA1>05cd14bdc0df561b2d833b1b1ef0b86db25a5754</SHA1><name>refs/remotes/origin/pr/2716/merge</name></branch></marked><revision><SHA1>05cd14bdc0df561b2d833b1b1ef0b86db25a5754</SHA1><branch><SHA1>05cd14bdc0df561b2d833b1b1ef0b86db25a5754</SHA1><name>refs/remotes/origin/pr/2716/merge</name></branch></revision></refsremotesoriginpr2716merge><refsremotesoriginpr2494merge _class='hudson.plugins.git.util.Build'><buildNumber>52</buildNumber><marked><SHA1>dd5db26ffbd46d65625e642198670e40fa10eb92</SHA1><branch><SHA1>dd5db26ffbd46d65625e642198670e40fa10eb92</SHA1><name>refs/remotes/origin/pr/2494/merge</name></branch></marked><revision><SHA1>dd5db26ffbd46d65625e642198670e40fa10eb92</SHA1><branch><SHA1>dd5db26ffbd46d65625e642198670e40fa10eb92</SHA1><name>refs/remotes/origin/pr/2494/merge</name></branch></revision></refsremotesoriginpr2494merge><refsremotesoriginpr2143merge _class='hudson.plugins.git.util.Build'><buildNumber>143</buildNumber><marked><SHA1>3434aa2ce74f1f7ac9b000bbdb9cc04ba91ce07f</SHA1><branch><SHA1>3434aa2ce74f1f7ac9b000bbdb9cc04ba91ce07f</SHA1><name>refs/remotes/origin/pr/2143/merge</name></branch></marked><revision><SHA1>3434aa2ce74f1f7ac9b000bbdb9cc04ba91ce07f</SHA1><branch><SHA1>3434aa2ce74f1f7ac9b000bbdb9cc04ba91ce07f</SHA1><name>refs/remotes/origin/pr/2143/merge</name></branch></revision></refsremotesoriginpr2143merge><refsremotesoriginpr2658merge _class='hudson.plugins.git.util.Build'><buildNumber>187</buildNumber><marked><SHA1>5ca2d4b1e05bbb02e86c3010ca6de715d4123d3a</SHA1><branch><SHA1>5ca2d4b1e05bbb02e86c3010ca6de715d4123d3a</SHA1><name>refs/remotes/origin/pr/2658/merge</name></branch></marked><revision><SHA1>5ca2d4b1e05bbb02e86c3010ca6de715d4123d3a</SHA1><branch><SHA1>5ca2d4b1e05bbb02e86c3010ca6de715d4123d3a</SHA1><name>refs/remotes/origin/pr/2658/merge</name></branch></revision></refsremotesoriginpr2658merge><refsremotesoriginpr2455merge _class='hudson.plugins.git.util.Build'><buildNumber>16</buildNumber><marked><SHA1>56d9cafb2aaa8cdf5bab86a28fcd592886a50ae3</SHA1><branch><SHA1>56d9cafb2aaa8cdf5bab86a28fcd592886a50ae3</SHA1><name>refs/remotes/origin/pr/2455/merge</name></branch></marked><revision><SHA1>56d9cafb2aaa8cdf5bab86a28fcd592886a50ae3</SHA1><branch><SHA1>56d9cafb2aaa8cdf5bab86a28fcd592886a50ae3</SHA1><name>refs/remotes/origin/pr/2455/merge</name></branch></revision></refsremotesoriginpr2455merge><refsremotesoriginpr2484merge _class='hudson.plugins.git.util.Build'><buildNumber>47</buildNumber><marked><SHA1>2decd91afa25e28529df6350b0870cbf7af0d6f0</SHA1><branch><SHA1>2decd91afa25e28529df6350b0870cbf7af0d6f0</SHA1><name>refs/remotes/origin/pr/2484/merge</name></branch></marked><revision><SHA1>2decd91afa25e28529df6350b0870cbf7af0d6f0</SHA1><branch><SHA1>2decd91afa25e28529df6350b0870cbf7af0d6f0</SHA1><name>refs/remotes/origin/pr/2484/merge</name></branch></revision></refsremotesoriginpr2484merge><refsremotesoriginpr2500merge _class='hudson.plugins.git.util.Build'><buildNumber>56</buildNumber><marked><SHA1>7c4df25837e242c5f8915b2ef44681b252dd0a47</SHA1><branch><SHA1>7c4df25837e242c5f8915b2ef44681b252dd0a47</SHA1><name>refs/remotes/origin/pr/2500/merge</name></branch></marked><revision><SHA1>7c4df25837e242c5f8915b2ef44681b252dd0a47</SHA1><branch><SHA1>7c4df25837e242c5f8915b2ef44681b252dd0a47</SHA1><name>refs/remotes/origin/pr/2500/merge</name></branch></revision></refsremotesoriginpr2500merge><refsremotesoriginpr2698merge _class='hudson.plugins.git.util.Build'><buildNumber>233</buildNumber><marked><SHA1>f5b5e3caec76af2231138f1562ccbeafe7daf338</SHA1><branch><SHA1>f5b5e3caec76af2231138f1562ccbeafe7daf338</SHA1><name>refs/remotes/origin/pr/2698/merge</name></branch></marked><revision><SHA1>f5b5e3caec76af2231138f1562ccbeafe7daf338</SHA1><branch><SHA1>f5b5e3caec76af2231138f1562ccbeafe7daf338</SHA1><name>refs/remotes/origin/pr/2698/merge</name></branch></revision></refsremotesoriginpr2698merge><refsremotesoriginpr2645merge _class='hudson.plugins.git.util.Build'><buildNumber>171</buildNumber><marked><SHA1>152af17e033c750ef3ec32c2d901da8cff909a19</SHA1><branch><SHA1>152af17e033c750ef3ec32c2d901da8cff909a19</SHA1><name>refs/remotes/origin/pr/2645/merge</name></branch></marked><revision><SHA1>152af17e033c750ef3ec32c2d901da8cff909a19</SHA1><branch><SHA1>152af17e033c750ef3ec32c2d901da8cff909a19</SHA1><name>refs/remotes/origin/pr/2645/merge</name></branch></revision></refsremotesoriginpr2645merge><refsremotesoriginpr2582merge _class='hudson.plugins.git.util.Build'><buildNumber>126</buildNumber><marked><SHA1>f4946f662dd19daab37ada5ecb4617bc8787b871</SHA1><branch><SHA1>f4946f662dd19daab37ada5ecb4617bc8787b871</SHA1><name>refs/remotes/origin/pr/2582/merge</name></branch></marked><revision><SHA1>f4946f662dd19daab37ada5ecb4617bc8787b871</SHA1><branch><SHA1>f4946f662dd19daab37ada5ecb4617bc8787b871</SHA1><name>refs/remotes/origin/pr/2582/merge</name></branch></revision></refsremotesoriginpr2582merge><refsremotesoriginpr2635merge _class='hudson.plugins.git.util.Build'><buildNumber>210</buildNumber><marked><SHA1>8f70ce56dcca6041d884ffde8aebe4ac845478a2</SHA1><branch><SHA1>8f70ce56dcca6041d884ffde8aebe4ac845478a2</SHA1><name>refs/remotes/origin/pr/2635/merge</name></branch></marked><revision><SHA1>8f70ce56dcca6041d884ffde8aebe4ac845478a2</SHA1><branch><SHA1>8f70ce56dcca6041d884ffde8aebe4ac845478a2</SHA1><name>refs/remotes/origin/pr/2635/merge</name></branch></revision></refsremotesoriginpr2635merge><refsremotesoriginpr2675merge _class='hudson.plugins.git.util.Build'><buildNumber>205</buildNumber><marked><SHA1>633b9e164d97b80e21e9b33f4344e2752e362857</SHA1><branch><SHA1>633b9e164d97b80e21e9b33f4344e2752e362857</SHA1><name>refs/remotes/origin/pr/2675/merge</name></branch></marked><revision><SHA1>633b9e164d97b80e21e9b33f4344e2752e362857</SHA1><branch><SHA1>633b9e164d97b80e21e9b33f4344e2752e362857</SHA1><name>refs/remotes/origin/pr/2675/merge</name></branch></revision></refsremotesoriginpr2675merge><refsremotesoriginpr2710merge _class='hudson.plugins.git.util.Build'><buildNumber>256</buildNumber><marked><SHA1>a52b14d88a14dc399c30e54a1c08d5d2fb1b4c5f</SHA1><branch><SHA1>a52b14d88a14dc399c30e54a1c08d5d2fb1b4c5f</SHA1><name>refs/remotes/origin/pr/2710/merge</name></branch></marked><revision><SHA1>a52b14d88a14dc399c30e54a1c08d5d2fb1b4c5f</SHA1><branch><SHA1>a52b14d88a14dc399c30e54a1c08d5d2fb1b4c5f</SHA1><name>refs/remotes/origin/pr/2710/merge</name></branch></revision></refsremotesoriginpr2710merge><refsremotesoriginpr2477merge _class='hudson.plugins.git.util.Build'><buildNumber>34</buildNumber><marked><SHA1>3976987e75ef26d8b4cee8f78d8ec6c81526d082</SHA1><branch><SHA1>3976987e75ef26d8b4cee8f78d8ec6c81526d082</SHA1><name>refs/remotes/origin/pr/2477/merge</name></branch></marked><revision><SHA1>3976987e75ef26d8b4cee8f78d8ec6c81526d082</SHA1><branch><SHA1>3976987e75ef26d8b4cee8f78d8ec6c81526d082</SHA1><name>refs/remotes/origin/pr/2477/merge</name></branch></revision></refsremotesoriginpr2477merge><refsremotesoriginpr2680merge _class='hudson.plugins.git.util.Build'><buildNumber>206</buildNumber><marked><SHA1>66847cfa8e01bb313a0e0354594958500b69bded</SHA1><branch><SHA1>66847cfa8e01bb313a0e0354594958500b69bded</SHA1><name>refs/remotes/origin/pr/2680/merge</name></branch></marked><revision><SHA1>66847cfa8e01bb313a0e0354594958500b69bded</SHA1><branch><SHA1>66847cfa8e01bb313a0e0354594958500b69bded</SHA1><name>refs/remotes/origin/pr/2680/merge</name></branch></revision></refsremotesoriginpr2680merge><refsremotesoriginpr2547merge _class='hudson.plugins.git.util.Build'><buildNumber>86</buildNumber><marked><SHA1>d3a9b5d0d39b32972ac321c27e10da34769bcdec</SHA1><branch><SHA1>d3a9b5d0d39b32972ac321c27e10da34769bcdec</SHA1><name>refs/remotes/origin/pr/2547/merge</name></branch></marked><revision><SHA1>d3a9b5d0d39b32972ac321c27e10da34769bcdec</SHA1><branch><SHA1>d3a9b5d0d39b32972ac321c27e10da34769bcdec</SHA1><name>refs/remotes/origin/pr/2547/merge</name></branch></revision></refsremotesoriginpr2547merge><refsremotesoriginpr2622merge _class='hudson.plugins.git.util.Build'><buildNumber>153</buildNumber><marked><SHA1>253a690c93dfb50040eaa4b308a180233090fc3a</SHA1><branch><SHA1>253a690c93dfb50040eaa4b308a180233090fc3a</SHA1><name>refs/remotes/origin/pr/2622/merge</name></branch></marked><revision><SHA1>253a690c93dfb50040eaa4b308a180233090fc3a</SHA1><branch><SHA1>253a690c93dfb50040eaa4b308a180233090fc3a</SHA1><name>refs/remotes/origin/pr/2622/merge</name></branch></revision></refsremotesoriginpr2622merge><refsremotesoriginpr2495merge _class='hudson.plugins.git.util.Build'><buildNumber>51</buildNumber><marked><SHA1>7eeede22504f05e76c7638ef9e9a3aa303aec648</SHA1><branch><SHA1>7eeede22504f05e76c7638ef9e9a3aa303aec648</SHA1><name>refs/remotes/origin/pr/2495/merge</name></branch></marked><revision><SHA1>7eeede22504f05e76c7638ef9e9a3aa303aec648</SHA1><branch><SHA1>7eeede22504f05e76c7638ef9e9a3aa303aec648</SHA1><name>refs/remotes/origin/pr/2495/merge</name></branch></revision></refsremotesoriginpr2495merge><refsremotesoriginpr2530merge _class='hudson.plugins.git.util.Build'><buildNumber>76</buildNumber><marked><SHA1>e8f195b68ba0cc526093420460d99a541ec8eea8</SHA1><branch><SHA1>e8f195b68ba0cc526093420460d99a541ec8eea8</SHA1><name>refs/remotes/origin/pr/2530/merge</name></branch></marked><revision><SHA1>e8f195b68ba0cc526093420460d99a541ec8eea8</SHA1><branch><SHA1>e8f195b68ba0cc526093420460d99a541ec8eea8</SHA1><name>refs/remotes/origin/pr/2530/merge</name></branch></revision></refsremotesoriginpr2530merge><refsremotesoriginpr2524merge _class='hudson.plugins.git.util.Build'><buildNumber>71</buildNumber><marked><SHA1>c066bb01f7259560b0ae064de48c4bcaedd28125</SHA1><branch><SHA1>c066bb01f7259560b0ae064de48c4bcaedd28125</SHA1><name>refs/remotes/origin/pr/2524/merge</name></branch></marked><revision><SHA1>c066bb01f7259560b0ae064de48c4bcaedd28125</SHA1><branch><SHA1>c066bb01f7259560b0ae064de48c4bcaedd28125</SHA1><name>refs/remotes/origin/pr/2524/merge</name></branch></revision></refsremotesoriginpr2524merge><refsremotesoriginpr2449merge _class='hudson.plugins.git.util.Build'><buildNumber>1</buildNumber><marked><SHA1>664c8152485a4208ef3647a9660c18e2c00c7469</SHA1><branch><SHA1>664c8152485a4208ef3647a9660c18e2c00c7469</SHA1><name>refs/remotes/origin/pr/2449/merge</name></branch></marked><revision><SHA1>664c8152485a4208ef3647a9660c18e2c00c7469</SHA1><branch><SHA1>664c8152485a4208ef3647a9660c18e2c00c7469</SHA1><name>refs/remotes/origin/pr/2449/merge</name></branch></revision></refsremotesoriginpr2449merge><refsremotesoriginpr2634merge _class='hudson.plugins.git.util.Build'><buildNumber>160</buildNumber><marked><SHA1>b14d52694bfd49f914ac0ca76ee2b03c40c34b8b</SHA1><branch><SHA1>b14d52694bfd49f914ac0ca76ee2b03c40c34b8b</SHA1><name>refs/remotes/origin/pr/2634/merge</name></branch></marked><revision><SHA1>b14d52694bfd49f914ac0ca76ee2b03c40c34b8b</SHA1><branch><SHA1>b14d52694bfd49f914ac0ca76ee2b03c40c34b8b</SHA1><name>refs/remotes/origin/pr/2634/merge</name></branch></revision></refsremotesoriginpr2634merge><refsremotesoriginpr2483merge _class='hudson.plugins.git.util.Build'><buildNumber>43</buildNumber><marked><SHA1>72c340c1c4c08e011e96ee53f45975e33b75de8a</SHA1><branch><SHA1>72c340c1c4c08e011e96ee53f45975e33b75de8a</SHA1><name>refs/remotes/origin/pr/2483/merge</name></branch></marked><revision><SHA1>72c340c1c4c08e011e96ee53f45975e33b75de8a</SHA1><branch><SHA1>72c340c1c4c08e011e96ee53f45975e33b75de8a</SHA1><name>refs/remotes/origin/pr/2483/merge</name></branch></revision></refsremotesoriginpr2483merge><refsremotesoriginpr2606merge _class='hudson.plugins.git.util.Build'><buildNumber>140</buildNumber><marked><SHA1>2bba7f66fe718c1f8b7c8a67e5cc8273fc52541a</SHA1><branch><SHA1>2bba7f66fe718c1f8b7c8a67e5cc8273fc52541a</SHA1><name>refs/remotes/origin/pr/2606/merge</name></branch></marked><revision><SHA1>2bba7f66fe718c1f8b7c8a67e5cc8273fc52541a</SHA1><branch><SHA1>2bba7f66fe718c1f8b7c8a67e5cc8273fc52541a</SHA1><name>refs/remotes/origin/pr/2606/merge</name></branch></revision></refsremotesoriginpr2606merge><refsremotesoriginpr2593merge _class='hudson.plugins.git.util.Build'><buildNumber>121</buildNumber><marked><SHA1>45fbe1e60f5367d4eeaad74033e3d764ac1f3ee6</SHA1><branch><SHA1>45fbe1e60f5367d4eeaad74033e3d764ac1f3ee6</SHA1><name>refs/remotes/origin/pr/2593/merge</name></branch></marked><revision><SHA1>45fbe1e60f5367d4eeaad74033e3d764ac1f3ee6</SHA1><branch><SHA1>45fbe1e60f5367d4eeaad74033e3d764ac1f3ee6</SHA1><name>refs/remotes/origin/pr/2593/merge</name></branch></revision></refsremotesoriginpr2593merge><refsremotesoriginpr2704merge _class='hudson.plugins.git.util.Build'><buildNumber>235</buildNumber><marked><SHA1>c5bbd0775b52cfe59a5ba4f689c8ffd6064c803b</SHA1><branch><SHA1>c5bbd0775b52cfe59a5ba4f689c8ffd6064c803b</SHA1><name>refs/remotes/origin/pr/2704/merge</name></branch></marked><revision><SHA1>c5bbd0775b52cfe59a5ba4f689c8ffd6064c803b</SHA1><branch><SHA1>c5bbd0775b52cfe59a5ba4f689c8ffd6064c803b</SHA1><name>refs/remotes/origin/pr/2704/merge</name></branch></revision></refsremotesoriginpr2704merge><refsremotesoriginpr2559merge _class='hudson.plugins.git.util.Build'><buildNumber>92</buildNumber><marked><SHA1>dc8274ef50dcfb490bd51d8f8d9b5c470c2ddc32</SHA1><branch><SHA1>dc8274ef50dcfb490bd51d8f8d9b5c470c2ddc32</SHA1><name>refs/remotes/origin/pr/2559/merge</name></branch></marked><revision><SHA1>dc8274ef50dcfb490bd51d8f8d9b5c470c2ddc32</SHA1><branch><SHA1>dc8274ef50dcfb490bd51d8f8d9b5c470c2ddc32</SHA1><name>refs/remotes/origin/pr/2559/merge</name></branch></revision></refsremotesoriginpr2559merge><refsremotesoriginpr2599merge _class='hudson.plugins.git.util.Build'><buildNumber>128</buildNumber><marked><SHA1>6cf71e6801eb6407d6037fd6ac7a32f3d1e2c154</SHA1><branch><SHA1>6cf71e6801eb6407d6037fd6ac7a32f3d1e2c154</SHA1><name>refs/remotes/origin/pr/2599/merge</name></branch></marked><revision><SHA1>6cf71e6801eb6407d6037fd6ac7a32f3d1e2c154</SHA1><branch><SHA1>6cf71e6801eb6407d6037fd6ac7a32f3d1e2c154</SHA1><name>refs/remotes/origin/pr/2599/merge</name></branch></revision></refsremotesoriginpr2599merge><refsremotesoriginpr2629merge _class='hudson.plugins.git.util.Build'><buildNumber>157</buildNumber><marked><SHA1>567415e0a4caf24298f95373cb663531690acac0</SHA1><branch><SHA1>567415e0a4caf24298f95373cb663531690acac0</SHA1><name>refs/remotes/origin/pr/2629/merge</name></branch></marked><revision><SHA1>567415e0a4caf24298f95373cb663531690acac0</SHA1><branch><SHA1>567415e0a4caf24298f95373cb663531690acac0</SHA1><name>refs/remotes/origin/pr/2629/merge</name></branch></revision></refsremotesoriginpr2629merge><refsremotesoriginpr2581merge _class='hudson.plugins.git.util.Build'><buildNumber>105</buildNumber><marked><SHA1>2cabf5fa73b91dfe367a5aed3687a1a93fe04d68</SHA1><branch><SHA1>2cabf5fa73b91dfe367a5aed3687a1a93fe04d68</SHA1><name>refs/remotes/origin/pr/2581/merge</name></branch></marked><revision><SHA1>2cabf5fa73b91dfe367a5aed3687a1a93fe04d68</SHA1><branch><SHA1>2cabf5fa73b91dfe367a5aed3687a1a93fe04d68</SHA1><name>refs/remotes/origin/pr/2581/merge</name></branch></revision></refsremotesoriginpr2581merge><refsremotesoriginpr2651merge _class='hudson.plugins.git.util.Build'><buildNumber>186</buildNumber><marked><SHA1>3977149475016b30cd21d64b7c802b8c0593d86a</SHA1><branch><SHA1>3977149475016b30cd21d64b7c802b8c0593d86a</SHA1><name>refs/remotes/origin/pr/2651/merge</name></branch></marked><revision><SHA1>3977149475016b30cd21d64b7c802b8c0593d86a</SHA1><branch><SHA1>3977149475016b30cd21d64b7c802b8c0593d86a</SHA1><name>refs/remotes/origin/pr/2651/merge</name></branch></revision></refsremotesoriginpr2651merge><refsremotesoriginpr2536merge _class='hudson.plugins.git.util.Build'><buildNumber>79</buildNumber><marked><SHA1>1ef835ec0f04c6a4e2503ac6bf51919bab0aa5db</SHA1><branch><SHA1>1ef835ec0f04c6a4e2503ac6bf51919bab0aa5db</SHA1><name>refs/remotes/origin/pr/2536/merge</name></branch></marked><revision><SHA1>1ef835ec0f04c6a4e2503ac6bf51919bab0aa5db</SHA1><branch><SHA1>1ef835ec0f04c6a4e2503ac6bf51919bab0aa5db</SHA1><name>refs/remotes/origin/pr/2536/merge</name></branch></revision></refsremotesoriginpr2536merge><refsremotesoriginpr2576merge _class='hudson.plugins.git.util.Build'><buildNumber>101</buildNumber><marked><SHA1>eb3dfb30f7f98802d1bdc6846dbbacf55618c510</SHA1><branch><SHA1>eb3dfb30f7f98802d1bdc6846dbbacf55618c510</SHA1><name>refs/remotes/origin/pr/2576/merge</name></branch></marked><revision><SHA1>eb3dfb30f7f98802d1bdc6846dbbacf55618c510</SHA1><branch><SHA1>eb3dfb30f7f98802d1bdc6846dbbacf55618c510</SHA1><name>refs/remotes/origin/pr/2576/merge</name></branch></revision></refsremotesoriginpr2576merge><refsremotesoriginpr2611merge _class='hudson.plugins.git.util.Build'><buildNumber>144</buildNumber><marked><SHA1>d3e53d6b1e72025483213c2af7bcbf0ff23fec2d</SHA1><branch><SHA1>d3e53d6b1e72025483213c2af7bcbf0ff23fec2d</SHA1><name>refs/remotes/origin/pr/2611/merge</name></branch></marked><revision><SHA1>d3e53d6b1e72025483213c2af7bcbf0ff23fec2d</SHA1><branch><SHA1>d3e53d6b1e72025483213c2af7bcbf0ff23fec2d</SHA1><name>refs/remotes/origin/pr/2611/merge</name></branch></revision></refsremotesoriginpr2611merge></buildsByBranchName><lastBuiltRevision><SHA1>7a343d4b1df60417ba97dd29b7ce675b1e3222e5</SHA1><branch><SHA1>7a343d4b1df60417ba97dd29b7ce675b1e3222e5</SHA1><name>detached</name></branch></lastBuiltRevision><remoteUrl>https://github.com/iovisor/bcc.git</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.GitTagAction'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>ubuntu1604</displayName><duration>762115</duration><estimatedDuration>877784</estimatedDuration><fullDisplayName>bcc-pr » ubuntu1604 ubuntu1604</fullDisplayName><id>262</id><keepLog>false</keepLog><number>262</number><queueId>2119</queueId><result>SUCCESS</result><timestamp>1579715233583</timestamp><url>https://buildbot.iovisor.org/jenkins/user/yonghong-song/my-views/view/all/job/bcc-pr/label=ubuntu1604/262/</url><builtOn>ubuntu1604-slave-aa0</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/runqslower.py</affectedPath><commitId>bac633a6bb60b6b8542348ea3f61c367eae14f7c</commitId><timestamp>1562145717000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/jmarchan</absoluteUrl><fullName>jmarchan</fullName></author><authorEmail>jmarchan@redhat.com</authorEmail><comment>tools: fix runqslower warning

The state member of task_struct is volatile and it's use as the last
parameter of bpf_probe_read (const void *) triggers the following
clang warning (LLVM 8):

/virtual/main.c:56:42: warning: passing 'volatile long *' to parameter of type 'const void *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
    bpf_probe_read(&amp;state, sizeof(long), &amp;prev-&gt;state);
                                         ^~~~~~~~~~~~
1 warning generated.
Tracing run queue latency higher than 10000 us
TIME     COMM             PID           LAT(us)

An explicit cast fixes the warning.
</comment><date>2019-07-03 11:21:57 +0200</date><id>bac633a6bb60b6b8542348ea3f61c367eae14f7c</id><msg>tools: fix runqslower warning</msg><path><editType>edit</editType><file>tools/runqslower.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/btrfsslower.py</affectedPath><commitId>f84acf9e5cbbea3f60f06a29dd189530e5052a47</commitId><timestamp>1562697492000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Error in time comparison

Datetime comparisons requires the use of timedelta.
</comment><date>2019-07-09 11:38:12 -0700</date><id>f84acf9e5cbbea3f60f06a29dd189530e5052a47</id><msg>Error in time comparison</msg><path><editType>edit</editType><file>tools/btrfsslower.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/compat/linux/virtual_bpf.h</affectedPath><affectedPath>introspection/bps.c</affectedPath><affectedPath>src/cc/libbpf</affectedPath><commitId>06e30cca8342aed6a1cd83de65d17945499ab6bb</commitId><timestamp>1562768300000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>sync to latest libbpf repo

sync with latest libbpf repo

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-07-10 07:18:20 -0700</date><id>06e30cca8342aed6a1cd83de65d17945499ab6bb</id><msg>sync to latest libbpf repo</msg><path><editType>edit</editType><file>src/cc/compat/linux/virtual_bpf.h</file></path><path><editType>edit</editType><file>src/cc/libbpf</file></path><path><editType>edit</editType><file>introspection/bps.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/cc/CMakeLists.txt</affectedPath><affectedPath>tests/cc/usdt_test_lib.c</affectedPath><affectedPath>src/cc/bcc_syms.cc</affectedPath><affectedPath>src/cc/syms.h</affectedPath><affectedPath>src/cc/bcc_syms.h</affectedPath><affectedPath>src/cc/usdt/usdt.cc</affectedPath><affectedPath>examples/cpp/pyperf/PyPerfUtil.cc</affectedPath><affectedPath>src/cc/ns_guard.h</affectedPath><affectedPath>src/cc/CMakeLists.txt</affectedPath><affectedPath>src/cc/libbpf.c</affectedPath><affectedPath>src/cc/bcc_elf.c</affectedPath><affectedPath>src/cc/bcc_proc.c</affectedPath><affectedPath>src/cc/api/BPF.cc</affectedPath><affectedPath>src/cc/api/BPF.h</affectedPath><affectedPath>src/cc/bcc_proc.h</affectedPath><affectedPath>src/cc/usdt.h</affectedPath><affectedPath>tests/cc/test_c_api.cc</affectedPath><affectedPath>tests/cc/dummy_proc_map.txt</affectedPath><affectedPath>src/cc/ns_guard.cc</affectedPath><affectedPath>tests/cc/test_usdt_probes.cc</affectedPath><commitId>01ee0b61a854e06cb62272ddfbb4eeaf16e9ad7c</commitId><timestamp>1562796669000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Use device+inode to identify matching files; prepend /proc/pid/root to
paths for usdt.
</comment><date>2019-07-10 15:11:09 -0700</date><id>01ee0b61a854e06cb62272ddfbb4eeaf16e9ad7c</id><msg>Use device+inode to identify matching files; prepend /proc/pid/root to</msg><path><editType>edit</editType><file>tests/cc/CMakeLists.txt</file></path><path><editType>add</editType><file>tests/cc/usdt_test_lib.c</file></path><path><editType>edit</editType><file>src/cc/api/BPF.h</file></path><path><editType>edit</editType><file>src/cc/usdt/usdt.cc</file></path><path><editType>edit</editType><file>src/cc/api/BPF.cc</file></path><path><editType>edit</editType><file>src/cc/bcc_elf.c</file></path><path><editType>edit</editType><file>src/cc/bcc_proc.h</file></path><path><editType>add</editType><file>tests/cc/dummy_proc_map.txt</file></path><path><editType>edit</editType><file>src/cc/usdt.h</file></path><path><editType>delete</editType><file>src/cc/ns_guard.cc</file></path><path><editType>edit</editType><file>src/cc/bcc_syms.cc</file></path><path><editType>edit</editType><file>src/cc/syms.h</file></path><path><editType>edit</editType><file>tests/cc/test_c_api.cc</file></path><path><editType>delete</editType><file>src/cc/ns_guard.h</file></path><path><editType>edit</editType><file>src/cc/bcc_proc.c</file></path><path><editType>edit</editType><file>src/cc/bcc_syms.h</file></path><path><editType>edit</editType><file>examples/cpp/pyperf/PyPerfUtil.cc</file></path><path><editType>edit</editType><file>src/cc/CMakeLists.txt</file></path><path><editType>edit</editType><file>tests/cc/test_usdt_probes.cc</file></path><path><editType>edit</editType><file>src/cc/libbpf.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/bcc_syms.cc</affectedPath><affectedPath>src/cc/syms.h</affectedPath><affectedPath>src/cc/bcc_elf.h</affectedPath><affectedPath>src/cc/bcc_elf.c</affectedPath><commitId>d42fcc8eabfe2197cb2aba67113e839240d4b9a5</commitId><timestamp>1562962521000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Lazily symbolize regular ELF binaries

This patch adds a new API to bcc_elf.h, bcc_elf_foreach_sym_lazy. This
helper avoids storing symbol names in string format, as for large
binaries this data can get quite large.

Instead we store the location in the ELF binary where we can later find
the string. Later on, we can load these strings on demand and cache them
in case they're accessed again.

This patch also makes lazy resolution the default for regular ELF
binaries, where regular means not perfmap or VDSO.
</comment><date>2019-07-12 13:15:21 -0700</date><id>d42fcc8eabfe2197cb2aba67113e839240d4b9a5</id><msg>Lazily symbolize regular ELF binaries</msg><path><editType>edit</editType><file>src/cc/syms.h</file></path><path><editType>edit</editType><file>src/cc/bcc_elf.c</file></path><path><editType>edit</editType><file>src/cc/bcc_elf.h</file></path><path><editType>edit</editType><file>src/cc/bcc_syms.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/bcc_syms.cc</affectedPath><commitId>24496c7760f0fb6f7a0510b8087f7d4a1ad79d9c</commitId><timestamp>1562962521000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Lazify ProcSyms::find_name

It's pretty much strictly better to walk all the symbol names on demand
to find a symbol rather than storing it all in memory beforehand.
</comment><date>2019-07-12 13:15:21 -0700</date><id>24496c7760f0fb6f7a0510b8087f7d4a1ad79d9c</id><msg>Lazify ProcSyms::find_name</msg><path><editType>edit</editType><file>src/cc/bcc_syms.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/bcc_elf.c</affectedPath><commitId>0ca7917cdea01421b5c7f54e399ddb511e664f4e</commitId><timestamp>1562962521000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Make bcc_elf_symbol_str support debuginfo
</comment><date>2019-07-12 13:15:21 -0700</date><id>0ca7917cdea01421b5c7f54e399ddb511e664f4e</id><msg>Make bcc_elf_symbol_str support debuginfo</msg><path><editType>edit</editType><file>src/cc/bcc_elf.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/bcc_syms.cc</affectedPath><affectedPath>src/cc/syms.h</affectedPath><affectedPath>src/cc/bcc_elf.h</affectedPath><affectedPath>src/cc/bcc_elf.c</affectedPath><commitId>1772fd163c04436871c2439e48d57b7308c589d5</commitId><timestamp>1562962521000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Thread through debugfile flag

So we don't have to guess and check when reading symbols. Sometimes if
the elf sections are laid out just right you can "guess" the wrong
string.
</comment><date>2019-07-12 13:15:21 -0700</date><id>1772fd163c04436871c2439e48d57b7308c589d5</id><msg>Thread through debugfile flag</msg><path><editType>edit</editType><file>src/cc/bcc_elf.h</file></path><path><editType>edit</editType><file>src/cc/bcc_elf.c</file></path><path><editType>edit</editType><file>src/cc/syms.h</file></path><path><editType>edit</editType><file>src/cc/bcc_syms.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/bcc_syms.cc</affectedPath><commitId>6f693f59a178b9e7286bc05568ffdb396fedbb52</commitId><timestamp>1562962521000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Enter mount namespace before trying to open binary
</comment><date>2019-07-12 13:15:21 -0700</date><id>6f693f59a178b9e7286bc05568ffdb396fedbb52</id><msg>Enter mount namespace before trying to open binary</msg><path><editType>edit</editType><file>src/cc/bcc_syms.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/bcc_syms.cc</affectedPath><affectedPath>src/cc/bcc_syms.h</affectedPath><affectedPath>src/cc/syms.h</affectedPath><affectedPath>src/cc/bcc_elf.c</affectedPath><commitId>f20dca1626ae35c9744e68bb97529fc2b49c2d6d</commitId><timestamp>1562962521000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Address code review
</comment><date>2019-07-12 13:15:21 -0700</date><id>f20dca1626ae35c9744e68bb97529fc2b49c2d6d</id><msg>Address code review</msg><path><editType>edit</editType><file>src/cc/bcc_syms.h</file></path><path><editType>edit</editType><file>src/cc/bcc_syms.cc</file></path><path><editType>edit</editType><file>src/cc/syms.h</file></path><path><editType>edit</editType><file>src/cc/bcc_elf.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/cc/test_c_api.cc</affectedPath><commitId>50d0602219c97c51126c89534f29b594fd2dffaf</commitId><timestamp>1562962521000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Add tests
</comment><date>2019-07-12 13:15:21 -0700</date><id>50d0602219c97c51126c89534f29b594fd2dffaf</id><msg>Add tests</msg><path><editType>edit</editType><file>tests/cc/test_c_api.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>examples/cpp/pyperf/PyPerfUtil.cc</affectedPath><affectedPath>src/cc/bcc_syms.cc</affectedPath><affectedPath>src/cc/usdt/usdt_args.cc</affectedPath><affectedPath>src/lua/bcc/libbcc.lua</affectedPath><affectedPath>src/cc/api/BPFTable.cc</affectedPath><commitId>d413c95ce4476b18a179c541795a1248491a9584</commitId><timestamp>1562962521000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Fix designated initializers
</comment><date>2019-07-12 13:15:21 -0700</date><id>d413c95ce4476b18a179c541795a1248491a9584</id><msg>Fix designated initializers</msg><path><editType>edit</editType><file>src/lua/bcc/libbcc.lua</file></path><path><editType>edit</editType><file>src/cc/api/BPFTable.cc</file></path><path><editType>edit</editType><file>examples/cpp/pyperf/PyPerfUtil.cc</file></path><path><editType>edit</editType><file>src/cc/bcc_syms.cc</file></path><path><editType>edit</editType><file>src/cc/usdt/usdt_args.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/bcc_syms.cc</affectedPath><commitId>86633c44c9b1c0f6be21fc17658c3bd23da3d2c5</commitId><timestamp>1562962521000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Rebase and remove mount guards
</comment><date>2019-07-12 13:15:21 -0700</date><id>86633c44c9b1c0f6be21fc17658c3bd23da3d2c5</id><msg>Rebase and remove mount guards</msg><path><editType>edit</editType><file>src/cc/bcc_syms.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/inject_example.txt</affectedPath><affectedPath>man/man8/inject.8</affectedPath><commitId>5933839d154dc8efa02cd567ce93f36eb2a9cb71</commitId><timestamp>1562971947000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>tools/inject: Update documentation
</comment><date>2019-07-12 15:52:27 -0700</date><id>5933839d154dc8efa02cd567ce93f36eb2a9cb71</id><msg>tools/inject: Update documentation</msg><path><editType>edit</editType><file>tools/inject_example.txt</file></path><path><editType>edit</editType><file>man/man8/inject.8</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/bcc_syms.h</affectedPath><affectedPath>src/cc/usdt/usdt.cc</affectedPath><affectedPath>src/cc/libbpf.c</affectedPath><commitId>10dae9eac33287c1df9e6645933b608c2d2c5640</commitId><timestamp>1563215854000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>fix various compilation warnings

The following compilation warnings are fix:
...
/home/yhs/work/bcc/src/cc/libbpf.c:548:12: warning: comparison of distinct pointer types ('typeof (name_len - name_offset) *' (aka 'unsigned long *')
      and 'typeof (16U - 1) *' (aka 'unsigned int *')) [-Wcompare-distinct-pointer-types]
           min(name_len - name_offset, BPF_OBJ_NAME_LEN - 1));
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yhs/work/bcc/src/cc/libbpf/include/linux/kernel.h:28:17: note: expanded from macro 'min'
        (void) (&amp;_min1 == &amp;_min2);
...
/home/yhs/work/bcc/src/cc/bcc_syms.h:71:34: warning: declaration of 'struct mod_info' will not be visible outside of this function [-Wvisibility]
int _bcc_syms_find_module(struct mod_info *info, int enter_ns, void *p);
...
/home/yhs/work/bcc/src/cc/usdt/usdt.cc:486:14: warning: unused variable 'pid' [-Wunused-variable]
        auto pid = ctx-&gt;pid();
             ^
...

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-07-15 11:37:34 -0700</date><id>10dae9eac33287c1df9e6645933b608c2d2c5640</id><msg>fix various compilation warnings</msg><path><editType>edit</editType><file>src/cc/libbpf.c</file></path><path><editType>edit</editType><file>src/cc/bcc_syms.h</file></path><path><editType>edit</editType><file>src/cc/usdt/usdt.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/export/helpers.h</affectedPath><commitId>a74c0429396f3180ba5b20f4a4eefc233b681cb4</commitId><timestamp>1563236243000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>fix asm_volatile_goto issue again

In src/cc/export/helpers.h, we tried to
define asm_volatile_goto to something else
if it is defined through uapi bpf.h.
  #ifdef asm_volatile_goto
  #undef asm_volatile_goto
  #define asm_volatile_goto(x...) asm volatile("invalid use of asm_volatile_goto")
  #endif

It is possible that due to different kernel configurations,
asm_volatile_goto may not be defined after uapi bpf.h.
To prevent compilation errors, let us unconditionally
define asm_volatile_goto here.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-07-15 17:17:23 -0700</date><id>a74c0429396f3180ba5b20f4a4eefc233b681cb4</id><msg>fix asm_volatile_goto issue again</msg><path><editType>edit</editType><file>src/cc/export/helpers.h</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.travis.yml</affectedPath><commitId>60944a486a619556b64b7d385fe67e7be9d32fdf</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Travis CI: Lint for Python syntax errors and undefined names
</comment><date>2019-07-17 10:09:09 -0700</date><id>60944a486a619556b64b7d385fe67e7be9d32fdf</id><msg>Travis CI: Lint for Python syntax errors and undefined names</msg><path><editType>edit</editType><file>.travis.yml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/python/bcc/table.py</affectedPath><commitId>f84e55c51acb3e063b62ddcd39738ef8fa1b56e0</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Identity is not the same thing as equality in Python
</comment><date>2019-07-17 10:09:09 -0700</date><id>f84e55c51acb3e063b62ddcd39738ef8fa1b56e0</id><msg>Identity is not the same thing as equality in Python</msg><path><editType>edit</editType><file>src/python/bcc/table.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.travis.yml</affectedPath><commitId>851f58833f1b6985d75790a23c49d6b9970614ec</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Add missing colon (:)
</comment><date>2019-07-17 10:09:09 -0700</date><id>851f58833f1b6985d75790a23c49d6b9970614ec</id><msg>Add missing colon (:)</msg><path><editType>edit</editType><file>.travis.yml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.travis.yml</affectedPath><commitId>807772f5cb724a98535924b4cb474c2546c98b89</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Force a retest
</comment><date>2019-07-17 10:09:09 -0700</date><id>807772f5cb724a98535924b4cb474c2546c98b89</id><msg>Force a retest</msg><path><editType>edit</editType><file>.travis.yml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.travis.yml</affectedPath><commitId>1bbdc0987dae2ff48449d69553cae5f70409cfe2</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>This retest should work
</comment><date>2019-07-17 10:09:09 -0700</date><id>1bbdc0987dae2ff48449d69553cae5f70409cfe2</id><msg>This retest should work</msg><path><editType>edit</editType><file>.travis.yml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>examples/tracing/stack_buildid_example.py</affectedPath><commitId>fae282cba4f98138e31ad650d5bd149fbfc10414</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Undefined name: signal_ignore --&gt; signal.SIG_IGN
</comment><date>2019-07-17 10:09:09 -0700</date><id>fae282cba4f98138e31ad650d5bd149fbfc10414</id><msg>Undefined name: signal_ignore --&gt; signal.SIG_IGN</msg><path><editType>edit</editType><file>examples/tracing/stack_buildid_example.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/python/test_probe_count.py</affectedPath><commitId>37ac181e56fefe02ccc500d3512dda0a7536bbdd</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Undefined name: Don't forget "self" in "self.b"
</comment><date>2019-07-17 10:09:09 -0700</date><id>37ac181e56fefe02ccc500d3512dda0a7536bbdd</id><msg>Undefined name: Don't forget "self" in "self.b"</msg><path><editType>edit</editType><file>tests/python/test_probe_count.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/frontends/p4/compiler/ebpfDeparser.py</affectedPath><commitId>64ea990fef6a9a290c2aaa34386906b2335bf51e</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Undefined name: "headerInstance" --&gt; "p4header"
</comment><date>2019-07-17 10:09:09 -0700</date><id>64ea990fef6a9a290c2aaa34386906b2335bf51e</id><msg>Undefined name: "headerInstance" --&gt; "p4header"</msg><path><editType>edit</editType><file>src/cc/frontends/p4/compiler/ebpfDeparser.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/frontends/p4/compiler/target.py</affectedPath><commitId>887ff829e6add0e25944d9fb1c8716a1c1aabbdf</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Undefined name: "SocketConfig" -&gt; "TargetConfig"
</comment><date>2019-07-17 10:09:09 -0700</date><id>887ff829e6add0e25944d9fb1c8716a1c1aabbdf</id><msg>Undefined name: "SocketConfig" -&gt; "TargetConfig"</msg><path><editType>edit</editType><file>src/cc/frontends/p4/compiler/target.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/frontends/p4/compiler/ebpfDeparser.py</affectedPath><commitId>317fe14378a3bd9836be6ef5618595dc4dd0f19a</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Undefined name: from compilationException import CompilationException
</comment><date>2019-07-17 10:09:09 -0700</date><id>317fe14378a3bd9836be6ef5618595dc4dd0f19a</id><msg>Undefined name: from compilationException import CompilationException</msg><path><editType>edit</editType><file>src/cc/frontends/p4/compiler/ebpfDeparser.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/frontends/p4/test/endToEndTest.py</affectedPath><commitId>e52c41fecbcd0e750e08c494c35aa4fc4bc2c145</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>from __future__ import print_function
</comment><date>2019-07-17 10:09:09 -0700</date><id>e52c41fecbcd0e750e08c494c35aa4fc4bc2c145</id><msg>from __future__ import print_function</msg><path><editType>edit</editType><file>src/cc/frontends/p4/test/endToEndTest.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/frontends/p4/compiler/p4toEbpf.py</affectedPath><commitId>3e69639a89134575abda3696b41f6ac0d5e4887e</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Old style exceptions --&gt; new style for Python 3
</comment><date>2019-07-17 10:09:09 -0700</date><id>3e69639a89134575abda3696b41f6ac0d5e4887e</id><msg>Old style exceptions --&gt; new style for Python 3</msg><path><editType>edit</editType><file>src/cc/frontends/p4/compiler/p4toEbpf.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/frontends/p4/compiler/ebpfStructType.py</affectedPath><commitId>bfdb8171e91b0fdd583d42cc3b2788529af8383c</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Old style exceptions --&gt; new style for Python 3
</comment><date>2019-07-17 10:09:09 -0700</date><id>bfdb8171e91b0fdd583d42cc3b2788529af8383c</id><msg>Old style exceptions --&gt; new style for Python 3</msg><path><editType>edit</editType><file>src/cc/frontends/p4/compiler/ebpfStructType.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/python/bcc/__init__.py</affectedPath><commitId>2a2661c6a7fdc0ac72e7674ef108efb88cbff847</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Use feature detection instead of version detection

https://docs.python.org/3/howto/pyporting.html#use-feature-detection-instead-of-version-detection
</comment><date>2019-07-17 10:09:09 -0700</date><id>2a2661c6a7fdc0ac72e7674ef108efb88cbff847</id><msg>Use feature detection instead of version detection</msg><path><editType>edit</editType><file>src/python/bcc/__init__.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/python/test_lru.py</affectedPath><commitId>d2cd9d0a1be162ac3cfe28066e5c398ef296d3d4</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>long was removed in Python 3
</comment><date>2019-07-17 10:09:09 -0700</date><id>d2cd9d0a1be162ac3cfe28066e5c398ef296d3d4</id><msg>long was removed in Python 3</msg><path><editType>edit</editType><file>tests/python/test_lru.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.travis.yml</affectedPath><commitId>5c2b514227fe212c72afd8d6f5f584bd8658bc01</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Remove allow_failures on python: 3.7 tests
</comment><date>2019-07-17 10:09:09 -0700</date><id>5c2b514227fe212c72afd8d6f5f584bd8658bc01</id><msg>Remove allow_failures on python: 3.7 tests</msg><path><editType>edit</editType><file>.travis.yml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.travis.yml</affectedPath><commitId>f37279f75dc1828e6c4f2aee0b10c2ae40b189fa</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Swap test order
</comment><date>2019-07-17 10:09:09 -0700</date><id>f37279f75dc1828e6c4f2aee0b10c2ae40b189fa</id><msg>Swap test order</msg><path><editType>edit</editType><file>.travis.yml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.travis.yml</affectedPath><commitId>e25e75bcb33da16302f532b72299153ccb6999f4</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Move language: generic
</comment><date>2019-07-17 10:09:09 -0700</date><id>e25e75bcb33da16302f532b72299153ccb6999f4</id><msg>Move language: generic</msg><path><editType>edit</editType><file>.travis.yml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.travis.yml</affectedPath><commitId>6034b818a6f0d1d65292b9e6a146574ee55d83d4</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Try under language: python
</comment><date>2019-07-17 10:09:09 -0700</date><id>6034b818a6f0d1d65292b9e6a146574ee55d83d4</id><msg>Try under language: python</msg><path><editType>edit</editType><file>.travis.yml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.travis.yml</affectedPath><commitId>de34dab81fcae90d1db11f9191f4176e6ca40b92</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Echo
</comment><date>2019-07-17 10:09:09 -0700</date><id>de34dab81fcae90d1db11f9191f4176e6ca40b92</id><msg>Echo</msg><path><editType>edit</editType><file>.travis.yml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.travis.yml</affectedPath><commitId>f1c7b8effb7f805c032515657fe5426654930ac4</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Comment out the set -euo pipefail
</comment><date>2019-07-17 10:09:09 -0700</date><id>f1c7b8effb7f805c032515657fe5426654930ac4</id><msg>Comment out the set -euo pipefail</msg><path><editType>edit</editType><file>.travis.yml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.travis.yml</affectedPath><commitId>96f251e59f787e79444e2d761443300fcb10438d</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Update .travis.yml
</comment><date>2019-07-17 10:09:09 -0700</date><id>96f251e59f787e79444e2d761443300fcb10438d</id><msg>Update .travis.yml</msg><path><editType>edit</editType><file>.travis.yml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>scripts/py-style-check.sh</affectedPath><commitId>45fd2f727864c6690def73046ce4e102d77ca6e1</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Upgrade from pep8 --&gt; pycodestyle
</comment><date>2019-07-17 10:09:09 -0700</date><id>45fd2f727864c6690def73046ce4e102d77ca6e1</id><msg>Upgrade from pep8 --&gt; pycodestyle</msg><path><editType>edit</editType><file>scripts/py-style-check.sh</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.travis.yml</affectedPath><commitId>e7c422a8aa6c7787910df8679dc6c7d879df86d6</commitId><timestamp>1563383349000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Four parallel test runs
</comment><date>2019-07-17 10:09:09 -0700</date><id>e7c422a8aa6c7787910df8679dc6c7d879df86d6</id><msg>Four parallel test runs</msg><path><editType>edit</editType><file>.travis.yml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/lua/README.md</affectedPath><commitId>fb99f2fdc033be84ec0921d9ddd38058a7ecf83b</commitId><timestamp>1563491818000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Update lua Quickstart for Ubuntu 18.04 LTS
</comment><date>2019-07-18 16:16:58 -0700</date><id>fb99f2fdc033be84ec0921d9ddd38058a7ecf83b</id><msg>Update lua Quickstart for Ubuntu 18.04 LTS</msg><path><editType>edit</editType><file>src/lua/README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/bashreadline.py</affectedPath><commitId>4995db078b7c7f25a38c6bf5e628221e97709759</commitId><timestamp>1563493829000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Filter out non-bash COMMs

Prevents the output of non-bash readlines when bash is dynamically
linked. Refs #1851.
</comment><date>2019-07-18 16:50:29 -0700</date><id>4995db078b7c7f25a38c6bf5e628221e97709759</id><msg>Filter out non-bash COMMs</msg><path><editType>edit</editType><file>tools/bashreadline.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/lua/bpf/bpf.lua</affectedPath><commitId>36219753ee17fc0af37c20828eef02520e1602dc</commitId><timestamp>1563552475000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Use bpf_prog_load function from ljsyscall module in LuaJIT compiler

At various points in the compiler code, an attempt to load the BPF
program is made. In order to do this, a bpf() syscall needs to happen
with BPF_PROG_LOAD as the first argument (Consult the bpf man page,
under the 'eBPF programs' section). The module ljsyscall does
this via the bpf_prog_load function.

At the time of writing, this function is declared in the file:

syscall/linux/syscalls.lua

In the repo:

https://github.com/justincormack/ljsyscall.git
</comment><date>2019-07-19 09:07:55 -0700</date><id>36219753ee17fc0af37c20828eef02520e1602dc</id><msg>Use bpf_prog_load function from ljsyscall module in LuaJIT compiler</msg><path><editType>edit</editType><file>src/lua/bpf/bpf.lua</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/bcc_syms.cc</affectedPath><affectedPath>src/cc/bcc_proc.h</affectedPath><affectedPath>tests/cc/test_c_api.cc</affectedPath><affectedPath>src/cc/syms.h</affectedPath><affectedPath>src/cc/bcc_proc.c</affectedPath><commitId>50aeaed4d101f22027eaf07186418ec8dcbab019</commitId><timestamp>1563890274000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Report proper module on kernel backtrace

Raghavendra Rao reported that memleak does not display
proper name of the related kernel module, but just the
"kernel" string, like here for xfs module functions:

  131072 bytes in 4 allocations from stack
          ..
          bvec_alloc+0x92 [kernel]
          bio_alloc_bioset+0x13f [kernel]
          xfs_add_to_ioend+0x2df [kernel]
          xfs_do_writepage+0x148 [kernel]
          write_cache_pages+0x171 [kernel]
          xfs_vm_writepages+0x59 [kernel]
          do_writepages+0x43 [kernel]
          ...

The kernel resolver code is parsing /proc/kallsyms, which
already has the module information in.

This patch is adding support to parse the module info
from /proc/kallsyms and initialize the module with
proper value.

Above memleak backtrace now looks like:

  131072 bytes in 4 allocations from stack

          bvec_alloc+0x92 [kernel]
          bio_alloc_bioset+0x13f [kernel]
          xfs_add_to_ioend+0x2df [xfs]
          xfs_do_writepage+0x148 [xfs]
          write_cache_pages+0x171 [kernel]
          xfs_vm_writepages+0x59 [xfs]
          do_writepages+0x43 [kernel]
          ...

Reported-by: Raghavendra Rao &lt;ragrao@redhat.com&gt;
Signed-off-by: Jiri Olsa &lt;jolsa@kernel.org&gt;
</comment><date>2019-07-23 06:57:54 -0700</date><id>50aeaed4d101f22027eaf07186418ec8dcbab019</id><msg>Report proper module on kernel backtrace</msg><path><editType>edit</editType><file>src/cc/bcc_syms.cc</file></path><path><editType>edit</editType><file>src/cc/bcc_proc.c</file></path><path><editType>edit</editType><file>src/cc/syms.h</file></path><path><editType>edit</editType><file>src/cc/bcc_proc.h</file></path><path><editType>edit</editType><file>tests/cc/test_c_api.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/libbpf</affectedPath><commitId>1a47a9a5085188398dd5a03f5d3c438c1ddb0af5</commitId><timestamp>1563920715000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>sync with latest libbpf

sync with latest libbpf (v0.0.4 tag)

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-07-23 15:25:15 -0700</date><id>1a47a9a5085188398dd5a03f5d3c438c1ddb0af5</id><msg>sync with latest libbpf</msg><path><editType>edit</editType><file>src/cc/libbpf</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/solisten.py</affectedPath><commitId>6af649a9a1939b9bbda7f410dd115c06f89dcf14</commitId><timestamp>1564509655000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>tools: fix printb usage in solisten

Since its conversion to printb, solisten has suffers from yet another python2/3 bytes/str issue:

Traceback (most recent call last):
  File "_ctypes/callbacks.c", line 234, in 'calling callback function'
  File "/usr/lib/python3.6/site-packages/bcc/table.py", line 581, in raw_cb_
    callback(cpu, data, size)
  File "/usr/share/bcc/tools/solisten", line 176, in print_event
    event.lport, address,
TypeError: %b requires a bytes-like object, or an object that implements __bytes__, not 'str'

This patch fix the issue on python3. The tools still works on python2.
</comment><date>2019-07-30 11:00:55 -0700</date><id>6af649a9a1939b9bbda7f410dd115c06f89dcf14</id><msg>tools: fix printb usage in solisten</msg><path><editType>edit</editType><file>tools/solisten.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>examples/cpp/pyperf/PyPerfUtil.cc</affectedPath><affectedPath>src/cc/bcc_syms.cc</affectedPath><affectedPath>src/cc/usdt/usdt_args.cc</affectedPath><affectedPath>src/cc/api/BPFTable.cc</affectedPath><commitId>237a4b46567c75834476beadfb76b7c5d5b97877</commitId><timestamp>1564583243000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Turn on lazy symbolize by default

This turns on lazy symbolization by default. Symbol names will be
resolved the first time they're requested and then cached for future
access. This can reduce bcc memory usage by quite a bit in certain
workloads.
</comment><date>2019-07-31 07:27:23 -0700</date><id>237a4b46567c75834476beadfb76b7c5d5b97877</id><msg>Turn on lazy symbolize by default</msg><path><editType>edit</editType><file>src/cc/usdt/usdt_args.cc</file></path><path><editType>edit</editType><file>examples/cpp/pyperf/PyPerfUtil.cc</file></path><path><editType>edit</editType><file>src/cc/bcc_syms.cc</file></path><path><editType>edit</editType><file>src/cc/api/BPFTable.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>man/man8/tcpconnect.8</affectedPath><affectedPath>tools/tcpconnect_example.txt</affectedPath><affectedPath>tools/tcpconnect.py</affectedPath><commitId>9518a5b74105a16f5c3ad3d7e0f717b153965f6e</commitId><timestamp>1564702671000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>tools/tcpconnect: add option -c to count connects

Add -c to count all active connections per dest ip/port so we can
easily spot the heavy outbound connection attempts.

    # ./tcpconnect.py -c
    Tracing connect ... Hit Ctrl-C to end
    ^C
    LADDR                 RADDR                    RPORT              CONNECTS
    192.168.10.50         172.217.21.194           443                70
    192.168.10.50         172.213.11.195           443                34
    192.168.10.50         172.212.22.194           443                21
    [...]
</comment><date>2019-08-01 16:37:51 -0700</date><id>9518a5b74105a16f5c3ad3d7e0f717b153965f6e</id><msg>tools/tcpconnect: add option -c to count connects</msg><path><editType>edit</editType><file>man/man8/tcpconnect.8</file></path><path><editType>edit</editType><file>tools/tcpconnect_example.txt</file></path><path><editType>edit</editType><file>tools/tcpconnect.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/libbpf</affectedPath><commitId>56ba6fde05240e220b359d8e03ec7f97893440ee</commitId><timestamp>1564956311000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>sync to latest libbpf

The latest libbpf includes a few bug fixes since last time update.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-08-04 15:05:11 -0700</date><id>56ba6fde05240e220b359d8e03ec7f97893440ee</id><msg>sync to latest libbpf</msg><path><editType>edit</editType><file>src/cc/libbpf</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CMakeLists.txt</affectedPath><commitId>910ddaf1dbc25e1ba1006e7bdf8390042c717732</commitId><timestamp>1564957180000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>CMake: Allow to disable building man pages

Avoid building man pages when it's not necessary
(i.e when building for an embedded system).

Signed-off-by: Romain Naour &lt;romain.naour@gmail.com&gt;
</comment><date>2019-08-04 15:19:40 -0700</date><id>910ddaf1dbc25e1ba1006e7bdf8390042c717732</id><msg>CMake: Allow to disable building man pages</msg><path><editType>edit</editType><file>CMakeLists.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/vfscount.py</affectedPath><affectedPath>man/man8/vfscount.8</affectedPath><commitId>0206fc4e3568eab6cacfc1d5916258a9ba764f5d</commitId><timestamp>1565021180000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>tools: fix vfscount output when no duration is specified

Since commit a2e71a9eb71a ("vfscount.py: add args time (#2344)"),
vfscount does not show any output when it is interrupted by a key
press, which is the only way out when no time limit is specified. I
assume the exit() that has been added in the keyboard interrupt
handler is there so that no output is displayed when the program has
been interrupted early when a time limit has been specified. But since
the tool still invite the user to use Ctrl-C to end the tracing in
that case, it seems more consistent to show an output in that case
too.

This patch removes the exit() and the tools always show a result at
the end. It also adds the duration argument to the synopsis and the
option section in the man page.
</comment><date>2019-08-05 09:06:20 -0700</date><id>0206fc4e3568eab6cacfc1d5916258a9ba764f5d</id><msg>tools: fix vfscount output when no duration is specified</msg><path><editType>edit</editType><file>man/man8/vfscount.8</file></path><path><editType>edit</editType><file>tools/vfscount.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/bcc_elf.c</affectedPath><commitId>68b8d3017c296d3c266e540f27ea5cf04c6c0f72</commitId><timestamp>1565025985000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Support perf's symfs mechanism for debuginfo lookup.

Symfs is a file path prefix that needs to be prepended to full path of a library
to compute location of corresponding debuginfo. It will allow bcc users to
provide debug symbols if only they can write to at least one directory. Nothing
else needs to be assumed regarding the system bcc runs on.

My intention is to make debuginfo lookup work on Android in one form or another.
None of the gdb rules works out of the box:
- native libraries are often managed by Android apps themselves and uncompressed
  by apps into private directories. Sideloading debuginfo into those directories
  might be not feasible. What's more it's desirable to remove data like
  debuglink from release builds of mobile apps. At the same time those builds
  are the most interesting ones to investigate with bcc.
- there is no /usr directory on Android, so there is no /usr/lib/debug/. It
  could be created with some effort, but symfs is much more convenient and
  already used when profiling with simpleperf (fork of perf for Android).
</comment><date>2019-08-05 10:26:25 -0700</date><id>68b8d3017c296d3c266e540f27ea5cf04c6c0f72</id><msg>Support perf's symfs mechanism for debuginfo lookup.</msg><path><editType>edit</editType><file>src/cc/bcc_elf.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>man/man8/solisten.8</affectedPath><affectedPath>man/man8/sofdsnoop.8</affectedPath><affectedPath>man/man8/tcpdrop.8</affectedPath><affectedPath>man/man8/tcpstates.8</affectedPath><affectedPath>man/man8/tcplife.8</affectedPath><affectedPath>tools/solisten.py</affectedPath><affectedPath>tools/sofdsnoop_example.txt</affectedPath><affectedPath>tools/sofdsnoop.py</affectedPath><affectedPath>man/man8/deadlock_detector.8</affectedPath><affectedPath>tools/tcpdrop.py</affectedPath><affectedPath>man/man8/deadlock.8</affectedPath><commitId>33c9c571057b75ec979cc74121a0d3cb3a19be1b</commitId><timestamp>1565098030000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/jmarchan</absoluteUrl><fullName>jmarchan</fullName></author><authorEmail>jmarchan@redhat.com</authorEmail><comment>man: fixes some man pages

In the man pages of tcplife and tcpstates, the name of the field for
the remote port and address (DPORT, DADDR) differs from the tool
itself (RPORT, RADDR). This patch fix the man pages.

The man page of tcpdrop mentions options that do not exists. This
patch fix that. It also fix the comment at the head of the code that
too mentions inexistents options.

The man pages for solisten and sofdsnoop are missing. This patch adds
them.

The deadlock_detector tools has been rename simply deadlock, but its
manpage is still named deadlock_detector although its content has been
updated. This patch rename the manpage.
</comment><date>2019-08-06 15:27:10 +0200</date><id>33c9c571057b75ec979cc74121a0d3cb3a19be1b</id><msg>man: fixes some man pages</msg><path><editType>edit</editType><file>man/man8/tcpdrop.8</file></path><path><editType>edit</editType><file>man/man8/tcplife.8</file></path><path><editType>add</editType><file>man/man8/solisten.8</file></path><path><editType>add</editType><file>man/man8/deadlock.8</file></path><path><editType>edit</editType><file>tools/solisten.py</file></path><path><editType>edit</editType><file>tools/sofdsnoop_example.txt</file></path><path><editType>add</editType><file>man/man8/sofdsnoop.8</file></path><path><editType>edit</editType><file>tools/sofdsnoop.py</file></path><path><editType>edit</editType><file>man/man8/tcpstates.8</file></path><path><editType>edit</editType><file>tools/tcpdrop.py</file></path><path><editType>delete</editType><file>man/man8/deadlock_detector.8</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/offwaketime.py</affectedPath><commitId>89bb40a3d0773e4ea8bdebcf685d100d1ad102dd</commitId><timestamp>1565491026000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>offwaketime: Fix incorrect target and waker PIDs

offwaketime reports target and waker PIDs inversely.
This patch fixes this issue.

Signed-off-by: Yohei Ueda &lt;yohei@jp.ibm.com&gt;
</comment><date>2019-08-10 19:37:06 -0700</date><id>89bb40a3d0773e4ea8bdebcf685d100d1ad102dd</id><msg>offwaketime: Fix incorrect target and waker PIDs</msg><path><editType>edit</editType><file>tools/offwaketime.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/usdt/usdt.cc</affectedPath><commitId>5ce16e478a98442b7687e9f5139c1cdb27051ce6</commitId><timestamp>1565914379000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Don't prepend /proc/PID/root to user-supplied USDT binary paths starting with /proc already
</comment><date>2019-08-15 17:12:59 -0700</date><id>5ce16e478a98442b7687e9f5139c1cdb27051ce6</id><msg>Don't prepend /proc/PID/root to user-supplied USDT binary paths starting with /proc already</msg><path><editType>edit</editType><file>src/cc/usdt/usdt.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>docs/reference_guide.md</affectedPath><commitId>e102514589bfb2519dcd9345fd30868956f85275</commitId><timestamp>1565959196000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Update reference_guide.md

I think it should be attach_uretprobe rather than attach_uprobe.
</comment><date>2019-08-16 20:39:56 +0800</date><id>e102514589bfb2519dcd9345fd30868956f85275</id><msg>Update reference_guide.md</msg><path><editType>edit</editType><file>docs/reference_guide.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>examples/tracing/mysqld_query.py</affectedPath><commitId>2479fbf1d3bc62a3170b2b289a49fb19972078c3</commitId><timestamp>1565978513000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Update mysqld_query.py

store the query in query[128] and printk("%s\n",query) instead of printk("%s\n",addr)
</comment><date>2019-08-16 11:01:53 -0700</date><id>2479fbf1d3bc62a3170b2b289a49fb19972078c3</id><msg>Update mysqld_query.py</msg><path><editType>edit</editType><file>examples/tracing/mysqld_query.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>examples/tracing/mallocstacks.py</affectedPath><commitId>270d54ae18c589b352dad71f465cf7d439275e24</commitId><timestamp>1566574627000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>Make number of stack traces configurable from command line in example… (#2500)

Make number of stack traces configurable from command line in examples/tracing/mallocstacks.py
</comment><date>2019-08-23 08:37:07 -0700</date><id>270d54ae18c589b352dad71f465cf7d439275e24</id><msg>Make number of stack traces configurable from command line in example… (#2500)</msg><path><editType>edit</editType><file>examples/tracing/mallocstacks.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/tcptop.py</affectedPath><commitId>496a2b17627918c7b836e3b5eff175002efc9263</commitId><timestamp>1567187194000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>tcptop: Fix incorrect pid filter

Fix incorrect pid filter in tcptop
</comment><date>2019-08-30 10:46:34 -0700</date><id>496a2b17627918c7b836e3b5eff175002efc9263</id><msg>tcptop: Fix incorrect pid filter</msg><path><editType>edit</editType><file>tools/tcptop.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/cc/test_static.c</affectedPath><affectedPath>src/cc/bpf_module.cc</affectedPath><affectedPath>src/cc/bcc_common.h</affectedPath><affectedPath>src/cc/bcc_common.cc</affectedPath><affectedPath>src/cc/bpf_module.h</affectedPath><affectedPath>examples/networking/xdp/xdp_drop_count.py</affectedPath><affectedPath>src/python/bcc/__init__.py</affectedPath><affectedPath>src/python/bcc/libbcc.py</affectedPath><commitId>d147588ebe35b7cd2b4d253a7da18bef253ea78d</commitId><timestamp>1567526701000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>Support for hardware offload (#2502)

 Support for hardware offload
 Update XDP example to support HW offload

Signed-off-by: Paul Chaignon &lt;paul.chaignon@orange.com&gt;
</comment><date>2019-09-03 09:05:01 -0700</date><id>d147588ebe35b7cd2b4d253a7da18bef253ea78d</id><msg>Support for hardware offload (#2502)</msg><path><editType>edit</editType><file>examples/networking/xdp/xdp_drop_count.py</file></path><path><editType>edit</editType><file>src/cc/bcc_common.h</file></path><path><editType>edit</editType><file>tests/cc/test_static.c</file></path><path><editType>edit</editType><file>src/cc/bpf_module.cc</file></path><path><editType>edit</editType><file>src/cc/bpf_module.h</file></path><path><editType>edit</editType><file>src/python/bcc/__init__.py</file></path><path><editType>edit</editType><file>src/python/bcc/libbcc.py</file></path><path><editType>edit</editType><file>src/cc/bcc_common.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/python/bcc/__init__.py</affectedPath><commitId>44454d948b9fa4e0587fad7478b9383d51501c41</commitId><timestamp>1568192938000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/michal.wesolowski</absoluteUrl><fullName>michal.wesolowski</fullName></author><authorEmail>michal.wesolowski@horus.pl</authorEmail><comment>support gcc 8's cold subfunctions
</comment><date>2019-09-11 11:08:58 +0200</date><id>44454d948b9fa4e0587fad7478b9383d51501c41</id><msg>support gcc 8's cold subfunctions</msg><path><editType>edit</editType><file>src/python/bcc/__init__.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/stackcount.py</affectedPath><commitId>c99c7c4063213f4bb6e8347f9b4d36ed316aa8c9</commitId><timestamp>1568526861000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>stackcount: fix TypeError (#2514)

fix type error in stackcount.py
</comment><date>2019-09-15 06:54:21 +0100</date><id>c99c7c4063213f4bb6e8347f9b4d36ed316aa8c9</id><msg>stackcount: fix TypeError (#2514)</msg><path><editType>edit</editType><file>tools/stackcount.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/frontends/clang/b_frontend_action.cc</affectedPath><affectedPath>tools/old/profile.py</affectedPath><affectedPath>examples/tracing/task_switch.c</affectedPath><affectedPath>tools/lib/uflow.py</affectedPath><affectedPath>tools/old/softirqs.py</affectedPath><affectedPath>tests/wrapper.sh.in</affectedPath><affectedPath>examples/tracing/strlen_count.py</affectedPath><affectedPath>tools/syscount.py</affectedPath><affectedPath>tools/lib/uobjnew.py</affectedPath><affectedPath>examples/networking/vlan_learning/vlan_learning.c</affectedPath><affectedPath>src/python/bcc/libbcc.py</affectedPath><affectedPath>examples/networking/tunnel_monitor/monitor.c</affectedPath><affectedPath>examples/cpp/TCPSendStack.cc</affectedPath><affectedPath>tools/lib/ustat.py</affectedPath><affectedPath>tools/old/offcputime.py</affectedPath><affectedPath>examples/cpp/UseExternalMap.cc</affectedPath><affectedPath>examples/lua/task_switch.lua</affectedPath><affectedPath>tools/filetop.py</affectedPath><affectedPath>tests/python/test_percpu.py</affectedPath><affectedPath>tests/python/test_lru.py</affectedPath><affectedPath>tools/lib/ucalls.py</affectedPath><affectedPath>docs/reference_guide.md</affectedPath><affectedPath>tools/old/stackcount.py</affectedPath><affectedPath>tests/python/test_tracepoint.py</affectedPath><affectedPath>examples/networking/distributed_bridge/tunnel.c</affectedPath><affectedPath>tests/python/test_license.py</affectedPath><affectedPath>tools/biotop.py</affectedPath><affectedPath>tools/slabratetop.py</affectedPath><affectedPath>tests/python/test_trace2.c</affectedPath><affectedPath>tests/python/test_trace3.c</affectedPath><affectedPath>tests/python/test_clang.py</affectedPath><affectedPath>examples/cpp/LLCStat.cc</affectedPath><affectedPath>tools/old/wakeuptime.py</affectedPath><affectedPath>tests/python/test_trace4.py</affectedPath><affectedPath>tests/python/test_stat1.c</affectedPath><affectedPath>tests/python/test_trace2.py</affectedPath><affectedPath>tests/python/test_trace_maxactive.py</affectedPath><affectedPath>examples/tracing/mallocstacks.py</affectedPath><affectedPath>examples/lua/offcputime.lua</affectedPath><affectedPath>tests/cc/test_bpf_table.cc</affectedPath><affectedPath>tests/lua/test_clang.lua</affectedPath><affectedPath>docs/tutorial_bcc_python_developer.md</affectedPath><affectedPath>tools/old/offwaketime.py</affectedPath><commitId>ba64f031f2435aad5a85f8f37dbbe2a982cbbe6b</commitId><timestamp>1568956321000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>Fixes #2518 -- weird behaviour of lookup_or_init (#2520)

* Allow lookup_or_init to return NULL (rather than just returning from the current function)
* Fixed a couple of bad edits found when running tests. Also fixed a bug in the
test runner. Also fixed a bug in libbcc where the python signature did not match
the actual implementation.
</comment><date>2019-09-19 22:12:01 -0700</date><id>ba64f031f2435aad5a85f8f37dbbe2a982cbbe6b</id><msg>Fixes #2518 -- weird behaviour of lookup_or_init (#2520)</msg><path><editType>edit</editType><file>examples/networking/tunnel_monitor/monitor.c</file></path><path><editType>edit</editType><file>tools/syscount.py</file></path><path><editType>edit</editType><file>tests/lua/test_clang.lua</file></path><path><editType>edit</editType><file>tools/old/stackcount.py</file></path><path><editType>edit</editType><file>tests/python/test_trace4.py</file></path><path><editType>edit</editType><file>examples/cpp/TCPSendStack.cc</file></path><path><editType>edit</editType><file>tests/wrapper.sh.in</file></path><path><editType>edit</editType><file>tools/old/profile.py</file></path><path><editType>edit</editType><file>examples/networking/distributed_bridge/tunnel.c</file></path><path><editType>edit</editType><file>tools/biotop.py</file></path><path><editType>edit</editType><file>tools/old/softirqs.py</file></path><path><editType>edit</editType><file>tests/python/test_percpu.py</file></path><path><editType>edit</editType><file>examples/lua/offcputime.lua</file></path><path><editType>edit</editType><file>tools/old/wakeuptime.py</file></path><path><editType>edit</editType><file>tools/lib/ucalls.py</file></path><path><editType>edit</editType><file>examples/tracing/task_switch.c</file></path><path><editType>edit</editType><file>tools/lib/uobjnew.py</file></path><path><editType>edit</editType><file>tests/python/test_stat1.c</file></path><path><editType>edit</editType><file>tests/python/test_clang.py</file></path><path><editType>edit</editType><file>tests/python/test_license.py</file></path><path><editType>edit</editType><file>tools/lib/uflow.py</file></path><path><editType>edit</editType><file>tests/cc/test_bpf_table.cc</file></path><path><editType>edit</editType><file>docs/reference_guide.md</file></path><path><editType>edit</editType><file>docs/tutorial_bcc_python_developer.md</file></path><path><editType>edit</editType><file>examples/tracing/strlen_count.py</file></path><path><editType>edit</editType><file>examples/cpp/LLCStat.cc</file></path><path><editType>edit</editType><file>tests/python/test_trace2.c</file></path><path><editType>edit</editType><file>examples/networking/vlan_learning/vlan_learning.c</file></path><path><editType>edit</editType><file>src/cc/frontends/clang/b_frontend_action.cc</file></path><path><editType>edit</editType><file>tests/python/test_lru.py</file></path><path><editType>edit</editType><file>tests/python/test_trace3.c</file></path><path><editType>edit</editType><file>tests/python/test_trace_maxactive.py</file></path><path><editType>edit</editType><file>examples/cpp/UseExternalMap.cc</file></path><path><editType>edit</editType><file>tests/python/test_trace2.py</file></path><path><editType>edit</editType><file>tools/old/offwaketime.py</file></path><path><editType>edit</editType><file>tools/slabratetop.py</file></path><path><editType>edit</editType><file>tests/python/test_tracepoint.py</file></path><path><editType>edit</editType><file>examples/lua/task_switch.lua</file></path><path><editType>edit</editType><file>examples/tracing/mallocstacks.py</file></path><path><editType>edit</editType><file>tools/lib/ustat.py</file></path><path><editType>edit</editType><file>src/python/bcc/libbcc.py</file></path><path><editType>edit</editType><file>tools/filetop.py</file></path><path><editType>edit</editType><file>tools/old/offcputime.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>FAQ.txt</affectedPath><commitId>84d9798aec01bc8486f3fc88afcbe37988e3ee58</commitId><timestamp>1569240932000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>FAQ: fix error message

The package is called bcc, and not bpf:

    from bcc import BPF

If that is not available the error message reads

    ModuleNotFoundError: No module named 'bcc'

and not `No module named 'bpf'`
</comment><date>2019-09-23 14:15:32 +0200</date><id>84d9798aec01bc8486f3fc88afcbe37988e3ee58</id><msg>FAQ: fix error message</msg><path><editType>edit</editType><file>FAQ.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>INSTALL.md</affectedPath><commitId>f8c5654c01f7705017e8b7becee8907d949eb13c</commitId><timestamp>1569293288000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>INSTALL.md: add install instructions for Fedora 30+ (#2524)

add install instructions for Fedora 30+
</comment><date>2019-09-23 19:48:08 -0700</date><id>f8c5654c01f7705017e8b7becee8907d949eb13c</id><msg>INSTALL.md: add install instructions for Fedora 30+ (#2524)</msg><path><editType>edit</editType><file>INSTALL.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>docs/reference_guide.md</affectedPath><commitId>867c3e3f7cdbba014605cee1f994ea3d2a1e3d50</commitId><timestamp>1569366624000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>Fix BPF_PERCPU_ARRAY description (#2527)

Fixed the BPF_PERCPU_ARRAY description in reference_guide.md to include information about maximum element size. This is in regards to #2519 .
</comment><date>2019-09-24 16:10:24 -0700</date><id>867c3e3f7cdbba014605cee1f994ea3d2a1e3d50</id><msg>Fix BPF_PERCPU_ARRAY description (#2527)</msg><path><editType>edit</editType><file>docs/reference_guide.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/frontends/clang/loader.cc</affectedPath><commitId>c02e5eb13d154661af39a27f202ee64ad6be63a1</commitId><timestamp>1569370732000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>fix compilation errors with clang CreateFromArgs() change (#2528)

Upstream change https://reviews.llvm.org/D66797 (in llvm 10)
changed signature of CreateFromArgs(). Compiled with latest upstream,
we will have compilation error like:
    /home/yhs/work/bcc/src/cc/frontends/clang/loader.cc:343:57:
    error: ‘cargs’ was not declared in this scope; did you mean ‘ccargs’?
      343 |   if (!CompilerInvocation::CreateFromArgs( invocation0, cargs.  diags))
          |                                                         ^~~~~
          |                                                         ccargs

Adjust bcc codes to use the new func signature.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-09-24 17:18:52 -0700</date><id>c02e5eb13d154661af39a27f202ee64ad6be63a1</id><msg>fix compilation errors with clang CreateFromArgs() change (#2528)</msg><path><editType>edit</editType><file>src/cc/frontends/clang/loader.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CMakeLists.txt</affectedPath><commitId>903513e454c9847370f7e54797ff29f12e1de4d9</commitId><timestamp>1569380911000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>cmakefile change to require c++14 (#2529)

The latest llvm trunk (llvm 10) built require c++14.
Built with gcc and llvm 10 headers, the following
error will show up:
  ...
  /home/yhs/work/llvm-project/llvm/build/install/include/llvm/Support/RWMutex.h:
      At global scope:
  /home/yhs/work/llvm-project/llvm/build/install/include/llvm/Support/RWMutex.h:101:8:
      error: ‘shared_t$
  med_mutex’ in namespace ‘std’ does not name a type
     std::shared_timed_mutex impl;
  ...
  /home/yhs/work/llvm-project/llvm/build/install/include/llvm/Support/TrailingObjects.h:252:19:
      error: ‘is_final’ is not a member of ‘std’
       static_assert(std::is_final&lt;BaseTy&gt;(), "BaseTy must be final.");
  ...

std::shared_timed_mutex and std::is_final etc. are all c++14 features.
Most compilers should already support c++14. Let us require it in
Makefile now.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-09-24 20:08:31 -0700</date><id>903513e454c9847370f7e54797ff29f12e1de4d9</id><msg>cmakefile change to require c++14 (#2529)</msg><path><editType>edit</editType><file>CMakeLists.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/python/bcc/__init__.py</affectedPath><commitId>115b959d866159eecd09ca703197c809aa19ceda</commitId><timestamp>1569427664000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Fix a file descriptor leak when module is deleted (#2530)

Fix issue #989

When module is cleaned up, let us also close all bpf program
file descriptors to avoid fd leaking.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-09-25 09:07:44 -0700</date><id>115b959d866159eecd09ca703197c809aa19ceda</id><msg>Fix a file descriptor leak when module is deleted (#2530)</msg><path><editType>edit</editType><file>src/python/bcc/__init__.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>FAQ.txt</affectedPath><commitId>ac29d09a10b80c26fa1e5f8351e2dec29cfd4b9a</commitId><timestamp>1569516094000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>FAQ: Add Q&amp;A about kernel lockdown (#2532)

add kernel lockdown and solution to turn it off.
</comment><date>2019-09-26 09:41:34 -0700</date><id>ac29d09a10b80c26fa1e5f8351e2dec29cfd4b9a</id><msg>FAQ: Add Q&amp;A about kernel lockdown (#2532)</msg><path><editType>edit</editType><file>FAQ.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>examples/cpp/CGroupTest.cc</affectedPath><affectedPath>examples/cpp/CMakeLists.txt</affectedPath><commitId>c00d10d4552f647491395e326d2e4400f3a0b6c5</commitId><timestamp>1569534458000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>Add sampe code for cgoup test (#2522)

How to run this test:
0. Make sure you have cgroup2 mounted:
  $ mount -t cgroup2
  cgroup on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime)
1. Create a test cgroup in cgroup2 fs:
  $ sudo mkdir /sys/fs/cgroup/unified/test
2. Run this program in a bash:
  $ sudo CGroupTest /sys/fs/cgroup/unified/test
3. In another bash window, do the following:
  $ echo $$ &gt; /sys/fs/cgroup/unified/test/cgroup.procs
  $ run some other commands
4. You should be able to see lots of prints like:
  'file ... was opened!'
</comment><date>2019-09-26 14:47:38 -0700</date><id>c00d10d4552f647491395e326d2e4400f3a0b6c5</id><msg>Add sampe code for cgoup test (#2522)</msg><path><editType>add</editType><file>examples/cpp/CGroupTest.cc</file></path><path><editType>edit</editType><file>examples/cpp/CMakeLists.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>INSTALL.md</affectedPath><commitId>4c2cb869dc559af2bbd92dafbf769412e638093b</commitId><timestamp>1569863115000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>INSTALL.md: Fedora 30: note about kernel lockdown (#2536)

Add a note about the kernel lockdown challenge
to the "Fedora 30 and newer" section.

Motivation: Fedora 30 users are likely to follow
the instructions in the "Fedora 30 and newer"
section of INSTALL.md. They will run into the
kernel lockdown challenge.
</comment><date>2019-09-30 10:05:15 -0700</date><id>4c2cb869dc559af2bbd92dafbf769412e638093b</id><msg>INSTALL.md: Fedora 30: note about kernel lockdown (#2536)</msg><path><editType>edit</editType><file>INSTALL.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/libbpf</affectedPath><affectedPath>src/cc/libbpf.c</affectedPath><affectedPath>introspection/bps.c</affectedPath><affectedPath>src/cc/compat/linux/virtual_bpf.h</affectedPath><affectedPath>docs/kernel-versions.md</affectedPath><affectedPath>src/cc/export/helpers.h</affectedPath><commitId>eb018cf9e5df30c9748e4b31a33f0934a47cca6b</commitId><timestamp>1570059278000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>sync to latest libbpf (#2540)

sync to latest libpf with tag v0.0.5.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-10-02 16:34:38 -0700</date><id>eb018cf9e5df30c9748e4b31a33f0934a47cca6b</id><msg>sync to latest libbpf (#2540)</msg><path><editType>edit</editType><file>src/cc/libbpf</file></path><path><editType>edit</editType><file>docs/kernel-versions.md</file></path><path><editType>edit</editType><file>src/cc/export/helpers.h</file></path><path><editType>edit</editType><file>introspection/bps.c</file></path><path><editType>edit</editType><file>src/cc/compat/linux/virtual_bpf.h</file></path><path><editType>edit</editType><file>src/cc/libbpf.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>debian/changelog</affectedPath><commitId>0fa419a64e71984d42f107c210d3d3f0cc82d59a</commitId><timestamp>1570118520000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>debian changelog for v0.11.0 tag (#2541)

the main changes from v0.10.0 to v0.11.0 tag:
  * Support for kernel up to 5.3
  * Corresponding libbpf submodule release is v0.0.5
  * Fix USDT issue with multi-threaded applications
  * Fixed the early return behavior of lookup_or_init
  * Support for nic hardware offload
  * Fixed and Enabled Travis CI
  * A lot of tools change with added new options, etc.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-10-03 09:02:00 -0700</date><id>0fa419a64e71984d42f107c210d3d3f0cc82d59a</id><msg>debian changelog for v0.11.0 tag (#2541)</msg><path><editType>edit</editType><file>debian/changelog</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/compat/linux/virtual_bpf.h</affectedPath><affectedPath>src/cc/libbpf</affectedPath><commitId>76f31edfdbac03b02a4fc0bcd07fcd25c6dd5d03</commitId><timestamp>1570724642000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>sync with latest libbpf repo (#2545)

libbpf repo has a big sync from kernel side.
Let us bring in to ensure bcc working fine and
indeed it works fine.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-10-10 09:24:02 -0700</date><id>76f31edfdbac03b02a4fc0bcd07fcd25c6dd5d03</id><msg>sync with latest libbpf repo (#2545)</msg><path><editType>edit</editType><file>src/cc/libbpf</file></path><path><editType>edit</editType><file>src/cc/compat/linux/virtual_bpf.h</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/export/helpers.h</affectedPath><commitId>2d1497cde1cc9835f759a707b42dea83bee378b8</commitId><timestamp>1570764261000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>Redefine asm_inline for Linux 5.4+, Fixes #2546 (#2547)

Here's the upstream commit that introduced `asm_inline`:

* https://github.com/torvalds/linux/commit/eb111869301e15b737315a46c913ae82bd19eb9d

Without this patch BCC fails with the following:

```
$ sudo /usr/share/bcc/tools/opensnoop
In file included from /virtual/main.c:2:
In file included from include/uapi/linux/ptrace.h:142:
In file included from ./arch/x86/include/asm/ptrace.h:5:
./arch/x86/include/asm/segment.h:254:2: error: expected '(' after 'asm'
        alternative_io ("lsl %[seg],%[p]",
        ^
./arch/x86/include/asm/alternative.h:240:2: note: expanded from macro 'alternative_io'
        asm_inline volatile (ALTERNATIVE(oldinstr, newinstr, feature)   \
        ^
include/linux/compiler_types.h:210:24: note: expanded from macro 'asm_inline'
                       ^
```
</comment><date>2019-10-10 20:24:21 -0700</date><id>2d1497cde1cc9835f759a707b42dea83bee378b8</id><msg>Redefine asm_inline for Linux 5.4+, Fixes #2546 (#2547)</msg><path><editType>edit</editType><file>src/cc/export/helpers.h</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/gethostlatency_example.txt</affectedPath><affectedPath>tools/gethostlatency.py</affectedPath><commitId>6b989dba8dbd8db6bb7a2f75810f2b979d58a955</commitId><timestamp>1570947464000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>Fix Erroneous "gethostlatency" Comments (#2549)

* Fix erroneous comment in gethostlatency.py
* Fix erroneous comment in gethostlatency_example
</comment><date>2019-10-12 23:17:44 -0700</date><id>6b989dba8dbd8db6bb7a2f75810f2b979d58a955</id><msg>Fix Erroneous "gethostlatency" Comments (#2549)</msg><path><editType>edit</editType><file>tools/gethostlatency.py</file></path><path><editType>edit</editType><file>tools/gethostlatency_example.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>README.md</affectedPath><commitId>183be9a470035f1916349a29f31070400e9d3a70</commitId><timestamp>1571108091000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>Changed Link to HTTPS (#2551)

Changed Link to HTTPS
</comment><date>2019-10-14 19:54:51 -0700</date><id>183be9a470035f1916349a29f31070400e9d3a70</id><msg>Changed Link to HTTPS (#2551)</msg><path><editType>edit</editType><file>README.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/runqslower_example.txt</affectedPath><commitId>56aa780c3fc0149df400e90007b5ba5b9608182a</commitId><timestamp>1571208723000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/591596081</absoluteUrl><fullName>591596081</fullName></author><authorEmail>591596081@qq.com</authorEmail><comment>Mod: the 'min_us' is in us, mot ms
</comment><date>2019-10-16 14:52:03 +0800</date><id>56aa780c3fc0149df400e90007b5ba5b9608182a</id><msg>Mod: the 'min_us' is in us, mot ms</msg><path><editType>edit</editType><file>tools/runqslower_example.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/drsnoop_example.txt</affectedPath><commitId>e3668b991dd4147437bcb11400020b3e4f4cbe7d</commitId><timestamp>1571210004000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/591596081</absoluteUrl><fullName>591596081</fullName></author><authorEmail>591596081@qq.com</authorEmail><comment>Mod: fix two errors in examples
</comment><date>2019-10-16 15:13:24 +0800</date><id>e3668b991dd4147437bcb11400020b3e4f4cbe7d</id><msg>Mod: fix two errors in examples</msg><path><editType>edit</editType><file>tools/drsnoop_example.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>man/man8/tcpretrans.8</affectedPath><commitId>930846dc2c49281c693c2e39a0a2d21c650c61de</commitId><timestamp>1571314012000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/jmarchan</absoluteUrl><fullName>jmarchan</fullName></author><authorEmail>jmarchan@redhat.com</authorEmail><comment>man: add missing -c option to tcpretrans synopsis
</comment><date>2019-10-17 14:06:52 +0200</date><id>930846dc2c49281c693c2e39a0a2d21c650c61de</id><msg>man: add missing -c option to tcpretrans synopsis</msg><path><editType>edit</editType><file>man/man8/tcpretrans.8</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/python/bcc/__init__.py</affectedPath><commitId>54aa25763e87cd0c4e0298bcfca0094df87d2be7</commitId><timestamp>1571447605000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>Fix a typo, tracepint -&gt; tracepoint (#2559)

Fix a typo, tracepint -&gt; tracepoint
</comment><date>2019-10-18 18:13:25 -0700</date><id>54aa25763e87cd0c4e0298bcfca0094df87d2be7</id><msg>Fix a typo, tracepint -&gt; tracepoint (#2559)</msg><path><editType>edit</editType><file>src/python/bcc/__init__.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>INSTALL.md</affectedPath><commitId>708f786e3784dc32570a079f2ed74c35731664ea</commitId><timestamp>1571512434000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>document the release info related to libbpf submodule (#2561)

Fix issue #2261.
In INSTALL.md document that source code with libbpf submodule
will be released as well for each bcc release in the future.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-10-19 12:13:54 -0700</date><id>708f786e3784dc32570a079f2ed74c35731664ea</id><msg>document the release info related to libbpf submodule (#2561)</msg><path><editType>edit</editType><file>INSTALL.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/bcc_btf.cc</affectedPath><commitId>f04c6de5bfaa9137be09af0e6aaad040936bb148</commitId><timestamp>1571512456000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>assign offset properly for btf DataSec (#2560)

The following test case failed:
  -bash-4.4$ cat test.py
  #!/usr/bin/python
  from bcc import BPF
  prog="""
  BPF_ARRAY(array1, u64, 1);
  BPF_ARRAY(array2, u64, 1);
  """
  b=BPF(text=prog, debug=0x20)
  -bash-4.4$ sudo ./test.py
  libbpf: Error loading BTF: Invalid argument(22)
  libbpf: magic: 0xeb9f
  version: 1
  flags: 0x0
  hdr_len: 24
  ...
  [57] DATASEC array size=176 vlen=2
           type_id=47 offset=0 size=88
           type_id=49 offset=0 size=88 Invalid offset

  Loading .BTF section failed
  -bash-4.4$

The reason is the data offset in DataSec VarInfo
(e.g., type_id=47 offset=0 size=88) always have
offset=0 since JIT won't do a final relocation
for the record. Assign offset properly
in bcc_btf before loading btf to the kernel.
With this patch, test case can load btf properly.
  -bash-4.4$ cat test.py
  #!/usr/bin/python
  from bcc import BPF
  prog="""
  BPF_ARRAY(array1, u64, 1);
  BPF_ARRAY(array2, u64, 1);
  """
  b=BPF(text=prog, debug=0x20)
  -bash-4.4$ sudo ./test.py
  -bash-4.4$

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-10-19 12:14:16 -0700</date><id>f04c6de5bfaa9137be09af0e6aaad040936bb148</id><msg>assign offset properly for btf DataSec (#2560)</msg><path><editType>edit</editType><file>src/cc/bcc_btf.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>man/man8/trace.8</affectedPath><affectedPath>tools/trace.py</affectedPath><affectedPath>tools/trace_example.txt</affectedPath><commitId>c2a530b3adf91e5fe5886277e0f2abed4a77b8ea</commitId><timestamp>1571589355000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>support cgroup level tracing in trace.py (#2562)

This patch added cgroup based filtering in trace.py.

If a cgroup path is specified by the user, one cgroup
array map will be added to the program:
  BPF_CGROUP_ARRAY(__cgroup, 1);

Each probe will have a filter like below:
  if (__cgroup.check_current_task(0) &lt;= 0) { return 0; }
to filter out any events not happening in the cgroup
hierarchy as specified by the user.

The trace.py updated the `__cgroup` map with user provided
cgroup path information before attaching bpf functions
to events for probe function(s).

An example like below:
  $ trace.py -v -c /sys/fs/cgroup/system.slice/workload.service \
    '__x64_sys_nanosleep' '__x64_sys_clone'
     PID     TID     COMM            FUNC
     3191578 3191583 BaseAgentEvents __x64_sys_nanosleep
     3191578 3191579 FutureTimekeepr __x64_sys_clone
     3191578 3191583 BaseAgentEvents __x64_sys_nanosleep
     3191578 3191583 BaseAgentEvents __x64_sys_nanosleep
since workload.service only contains one process 3191578.

Going up the hierarchy to system.slice will have more processes
and hence more results:
  $ trace.py -v -c /sys/fs/cgroup/system.slice \
    '__x64_sys_nanosleep' '__x64_sys_clone'
     PID     TID     COMM            FUNC
     591542  591677  dynoScribe      __x64_sys_nanosleep
     591610  591613  mcreplay2       __x64_sys_nanosleep
     553252  553252  sleeperagent    __x64_sys_nanosleep
     591610  591613  mcreplay2       __x64_sys_nanosleep
     553252  553252  sleeperagent    __x64_sys_nanosleep

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-10-20 09:35:55 -0700</date><id>c2a530b3adf91e5fe5886277e0f2abed4a77b8ea</id><msg>support cgroup level tracing in trace.py (#2562)</msg><path><editType>edit</editType><file>tools/trace_example.txt</file></path><path><editType>edit</editType><file>man/man8/trace.8</file></path><path><editType>edit</editType><file>tools/trace.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>man/man8/shmsnoop.8</affectedPath><commitId>93479699176c613e2caa0bd6c8b731d0b7257746</commitId><timestamp>1571589404000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>man: COMM describes the process name, not the parent process name (#2563)

For shmsnoop, COMM describes the process name, not the parent process name.
</comment><date>2019-10-20 09:36:44 -0700</date><id>93479699176c613e2caa0bd6c8b731d0b7257746</id><msg>man: COMM describes the process name, not the parent process name (#2563)</msg><path><editType>edit</editType><file>man/man8/shmsnoop.8</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/cpudist.py</affectedPath><commitId>9b433f20ea0b5832c151e577268df66046c4bfe1</commitId><timestamp>1571842923000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/tdecacqu</absoluteUrl><fullName>tdecacqu</fullName></author><authorEmail>tdecacqu@redhat.com</authorEmail><comment>cpudist: create sufficiently large hash table to avoid missing tasks

This change fixes the cpudist tool to avoid issue when too many tasks
are running.

Fixes #2567 -- cpudist stop working when there are too many fork
</comment><date>2019-10-23 15:02:03 +0000</date><id>9b433f20ea0b5832c151e577268df66046c4bfe1</id><msg>cpudist: create sufficiently large hash table to avoid missing tasks</msg><path><editType>edit</editType><file>tools/cpudist.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/bcc_debug.cc</affectedPath><commitId>2dad4759a850bac6a0e3e1dd5fe35fc4c29419f0</commitId><timestamp>1572282469000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>fix compilation errors with latest llvm trunk (#2575)

llvm commit https://reviews.llvm.org/D66795
changed the signature of function createMCAsmInfo().
  -  MCAsmInfo *createMCAsmInfo(const MCRegisterInfo &amp;MRI,
  -                             StringRef TheTriple) const {
  +  MCAsmInfo *createMCAsmInfo(const MCRegisterInfo &amp;MRI, StringRef TheTriple,
  +                             const MCTargetOptions &amp;Options) const {

Did similar adjustment in bcc to ensure compilation success.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-10-28 10:07:49 -0700</date><id>2dad4759a850bac6a0e3e1dd5fe35fc4c29419f0</id><msg>fix compilation errors with latest llvm trunk (#2575)</msg><path><editType>edit</editType><file>src/cc/bcc_debug.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/libbpf</affectedPath><commitId>eb1a2f64a47030728ac8e190adf1fe27466dda7a</commitId><timestamp>1572301327000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>sync with latest libbpf (#2576)

This should fix the ARM build issue reported
in issue #83.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-10-28 15:22:07 -0700</date><id>eb1a2f64a47030728ac8e190adf1fe27466dda7a</id><msg>sync with latest libbpf (#2576)</msg><path><editType>edit</editType><file>src/cc/libbpf</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/frontends/clang/b_frontend_action.cc</affectedPath><affectedPath>examples/tracing/task_switch.c</affectedPath><affectedPath>tools/lib/uflow.py</affectedPath><affectedPath>examples/tracing/strlen_count.py</affectedPath><affectedPath>tools/deadlock.c</affectedPath><affectedPath>src/cc/export/helpers.h</affectedPath><affectedPath>tools/syscount.py</affectedPath><affectedPath>tools/lib/uobjnew.py</affectedPath><affectedPath>examples/networking/vlan_learning/vlan_learning.c</affectedPath><affectedPath>examples/cpp/TCPSendStack.cc</affectedPath><affectedPath>examples/networking/tunnel_monitor/monitor.c</affectedPath><affectedPath>tools/lib/ustat.py</affectedPath><affectedPath>examples/cpp/UseExternalMap.cc</affectedPath><affectedPath>examples/lua/task_switch.lua</affectedPath><affectedPath>tools/filetop.py</affectedPath><affectedPath>tests/python/test_percpu.py</affectedPath><affectedPath>tests/python/test_lru.py</affectedPath><affectedPath>examples/usdt_sample/scripts/lat_avg.py</affectedPath><affectedPath>tools/lib/ucalls.py</affectedPath><affectedPath>docs/reference_guide.md</affectedPath><affectedPath>tests/python/test_tracepoint.py</affectedPath><affectedPath>examples/networking/distributed_bridge/tunnel.c</affectedPath><affectedPath>tests/python/test_license.py</affectedPath><affectedPath>tools/slabratetop.py</affectedPath><affectedPath>tools/biotop.py</affectedPath><affectedPath>tests/python/test_trace2.c</affectedPath><affectedPath>tests/python/test_trace3.c</affectedPath><affectedPath>tests/python/test_clang.py</affectedPath><affectedPath>examples/cpp/LLCStat.cc</affectedPath><affectedPath>tests/python/test_trace4.py</affectedPath><affectedPath>tests/python/test_trace2.py</affectedPath><affectedPath>tests/python/test_stat1.c</affectedPath><affectedPath>examples/networking/http_filter/http-parse-complete.c</affectedPath><affectedPath>examples/tracing/mallocstacks.py</affectedPath><affectedPath>tests/python/test_trace_maxactive.py</affectedPath><affectedPath>examples/lua/offcputime.lua</affectedPath><affectedPath>tests/cc/test_bpf_table.cc</affectedPath><affectedPath>docs/tutorial_bcc_python_developer.md</affectedPath><affectedPath>tests/lua/test_clang.lua</affectedPath><commitId>82f4302a651a6b46b0b090733d34af8201ecacb5</commitId><timestamp>1572534972000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>introduce map.lookup_or_try_init() (#2577)

Previously, map.lookup_or_init() may cause unexpected
return from the function when lookup finds no element and
init failed e.g. due to unlikely racy update or
sometimes hash table full.
This has caught surprise from many users. So, the commit
  https://github.com/iovisor/bcc/commit/ba64f031f2435aad5a85f8f37dbbe2a982cbbe6b
attempts to remove the early return in map.lookup_or_init().
But then since NULL pointer could be returned,
user will need to change their bpf program to check return value,
otherwise, verifier will reject the program.

As described in the above, such an API behavior change may cause
verifier failure and reject previously loadable bpf programs.
bcc should try to maintain API stability, esp. to avoid subtle
API behavior change.

This patch propose to restore the behavior of map.lookup_or_init()
and introduce a new one map.lookup_or_try_init(), which will
avoid unexpected return. The name is suggested by Alexei
to reflect that init may fail. map.lookup_or_try_init() will be formally
documented and used in bcc. A warning will be generated if
map.lookup_or_init() is used. Documentation will make it clear
that map.lookup_or_try_init() is preferred over map.lookup_or_init().

```
-bash-4.4$ sudo ./syscount.py
/virtual/main.c:71:11: warning: lookup_or_init() may return from the function, use loopup_or_try_init() instead.
    val = data.lookup_or_init(&amp;key, &amp;zero);
          ^
1 warning generated.
Tracing syscalls, printing top 10... Ctrl+C to quit.
...
```

All uses in examples and tools are converted to use
lookup_or_try_init(). Most tests are converted to use
lookup_or_try_init() too except test_trace_maxactive.py
and test_tracepoint.py to test lookup_or_init()
functionality.
</comment><date>2019-10-31 08:16:12 -0700</date><id>82f4302a651a6b46b0b090733d34af8201ecacb5</id><msg>introduce map.lookup_or_try_init() (#2577)</msg><path><editType>edit</editType><file>tests/python/test_trace2.py</file></path><path><editType>edit</editType><file>examples/cpp/TCPSendStack.cc</file></path><path><editType>edit</editType><file>tools/lib/ucalls.py</file></path><path><editType>edit</editType><file>tests/python/test_tracepoint.py</file></path><path><editType>edit</editType><file>examples/networking/distributed_bridge/tunnel.c</file></path><path><editType>edit</editType><file>examples/lua/task_switch.lua</file></path><path><editType>edit</editType><file>examples/cpp/UseExternalMap.cc</file></path><path><editType>edit</editType><file>examples/tracing/mallocstacks.py</file></path><path><editType>edit</editType><file>tests/python/test_stat1.c</file></path><path><editType>edit</editType><file>tools/lib/uobjnew.py</file></path><path><editType>edit</editType><file>tests/python/test_percpu.py</file></path><path><editType>edit</editType><file>tools/slabratetop.py</file></path><path><editType>edit</editType><file>examples/networking/http_filter/http-parse-complete.c</file></path><path><editType>edit</editType><file>examples/networking/vlan_learning/vlan_learning.c</file></path><path><editType>edit</editType><file>tests/python/test_trace3.c</file></path><path><editType>edit</editType><file>tests/cc/test_bpf_table.cc</file></path><path><editType>edit</editType><file>examples/tracing/task_switch.c</file></path><path><editType>edit</editType><file>tests/python/test_clang.py</file></path><path><editType>edit</editType><file>docs/tutorial_bcc_python_developer.md</file></path><path><editType>edit</editType><file>tests/python/test_license.py</file></path><path><editType>edit</editType><file>tools/biotop.py</file></path><path><editType>edit</editType><file>examples/usdt_sample/scripts/lat_avg.py</file></path><path><editType>edit</editType><file>examples/networking/tunnel_monitor/monitor.c</file></path><path><editType>edit</editType><file>tools/filetop.py</file></path><path><editType>edit</editType><file>tests/python/test_trace4.py</file></path><path><editType>edit</editType><file>tests/lua/test_clang.lua</file></path><path><editType>edit</editType><file>examples/lua/offcputime.lua</file></path><path><editType>edit</editType><file>examples/tracing/strlen_count.py</file></path><path><editType>edit</editType><file>docs/reference_guide.md</file></path><path><editType>edit</editType><file>tests/python/test_trace2.c</file></path><path><editType>edit</editType><file>src/cc/frontends/clang/b_frontend_action.cc</file></path><path><editType>edit</editType><file>tests/python/test_trace_maxactive.py</file></path><path><editType>edit</editType><file>tools/deadlock.c</file></path><path><editType>edit</editType><file>tools/syscount.py</file></path><path><editType>edit</editType><file>tests/python/test_lru.py</file></path><path><editType>edit</editType><file>src/cc/export/helpers.h</file></path><path><editType>edit</editType><file>tools/lib/ustat.py</file></path><path><editType>edit</editType><file>tools/lib/uflow.py</file></path><path><editType>edit</editType><file>examples/cpp/LLCStat.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/frontends/clang/b_frontend_action.cc</affectedPath><commitId>58ff1b3647024bad1da4d20e9d0e99afa61fde51</commitId><timestamp>1572579029000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>remove the warning for map.lookup_or_init() (#2581)

Commit 82f4302a651a ("introduce map.lookup_or_try_init()")
introduced new API map.lookup_or_try_init(). A compile time
warning is introduced if old map.lookup_or_init() is used
to discourage the usage.

The API is still supported and documentation already
recommends using the new one. So let us drop the
warning.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-10-31 20:30:29 -0700</date><id>58ff1b3647024bad1da4d20e9d0e99afa61fde51</id><msg>remove the warning for map.lookup_or_init() (#2581)</msg><path><editType>edit</editType><file>src/cc/frontends/clang/b_frontend_action.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>docs/tutorial.md</affectedPath><commitId>77fe428579b27773f9bdc2cb2a880b1c2d274b67</commitId><timestamp>1572798068000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>fix typos in tutorial.md (#2584)

fix typos in tutorial.md
</comment><date>2019-11-03 08:21:08 -0800</date><id>77fe428579b27773f9bdc2cb2a880b1c2d274b67</id><msg>fix typos in tutorial.md (#2584)</msg><path><editType>edit</editType><file>docs/tutorial.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>docs/reference_guide.md</affectedPath><affectedPath>src/cc/api/BPF.cc</affectedPath><affectedPath>src/lua/bcc/sym.lua</affectedPath><affectedPath>src/lua/bcc/bpf.lua</affectedPath><affectedPath>src/cc/api/BPF.h</affectedPath><affectedPath>src/python/bcc/__init__.py</affectedPath><commitId>0429040559f9f324b0e1d3ed78b26e678499887f</commitId><timestamp>1573235522000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>Support attaching uprobe to offset (#2585)

* Support attaching uprobe to offset
* C++ API support of attaching uprobe to offset
* Update document of attach_uprobe()
   The document is taken from src/python/bcc/__init__.py:attach_upobe()
</comment><date>2019-11-08 09:52:02 -0800</date><id>0429040559f9f324b0e1d3ed78b26e678499887f</id><msg>Support attaching uprobe to offset (#2585)</msg><path><editType>edit</editType><file>src/cc/api/BPF.cc</file></path><path><editType>edit</editType><file>docs/reference_guide.md</file></path><path><editType>edit</editType><file>src/lua/bcc/sym.lua</file></path><path><editType>edit</editType><file>src/lua/bcc/bpf.lua</file></path><path><editType>edit</editType><file>src/python/bcc/__init__.py</file></path><path><editType>edit</editType><file>src/cc/api/BPF.h</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/tcpretrans.py</affectedPath><commitId>9cede20f9ff19784bba4ef5473b396fa58b5302c</commitId><timestamp>1573259685000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>tools/tcpretrans: add tracepoint support (#2574)

If tracepoint tcp:tcp_retransmit_skb exists (kernel version &gt;= 4.15)
we use tracepoint instead of kprobe for efficiency.

Co-authored-by: Runlong Lin &lt;linrunlong@bytedance.com&gt;
</comment><date>2019-11-08 16:34:45 -0800</date><id>9cede20f9ff19784bba4ef5473b396fa58b5302c</id><msg>tools/tcpretrans: add tracepoint support (#2574)</msg><path><editType>edit</editType><file>tools/tcpretrans.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>CMakeLists.txt</affectedPath><affectedPath>cmake/FindLibBpf.cmake</affectedPath><affectedPath>src/cc/CMakeLists.txt</affectedPath><commitId>d4b3bf03d9c67324ff85f9d3c74b201b7e427615</commitId><timestamp>1573595385000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/jolsa</absoluteUrl><fullName>jolsa</fullName></author><authorEmail>jolsa@kernel.org</authorEmail><comment>Add libbcc-no-libbpf.so library

Which links libbpf.so dynamicaly, instead of its current
static inclusion in libbcc.so.

The compilation needs to define CMAKE_USE_LIBBPF_PACKAGE
variable to enable search for libbpf package. If the package
is found it is used to build all the bcc libs.

The libbcc.so and libbcc_bpf.so (and their static versions)
remain the same.

The new library libbcc-no-libbpf.so is built from all libcc.so
sources including libbpf_bcc.so's sources: libbpf.c perf_reader.c
and dynamically linked to libbpf.so library.

With libbcc-no-libbpf.so symbols are versioned, so there's
no chance of being mixed:

Symbols exported from libbpf.so:

  $ objdump -T /usr/lib64/libbpf.so | grep bpf_map_lookup_elem
  0000000000006df0 g    DF .text  000000000000006e  LIBBPF_0.0.1 bpf_map_lookup_elem
  0000000000006e60 g    DF .text  0000000000000076  LIBBPF_0.0.2 bpf_map_lookup_elem_flags

Symbol needed by libbcc-no-libbpf.so:

  $ objdump -T /opt/bcc/lib64/libbcc-no-libbpf.so | grep bpf_map_lookup_elem
  0000000000000000      DF *UND*  0000000000000000  LIBBPF_0.0.1 bpf_map_lookup_elem

Symbols exported by current libbcc.so:

  $ objdump -T /opt/bcc/lib64/libbcc.so | grep bpf_map_lookup_elem
  00000000023ad843 g    DF .text  0000000000000082  Base        bpf_map_lookup_elem_flags
  00000000023ad7d3 g    DF .text  0000000000000070  Base        bpf_map_lookup_elem

Besides that it's better to share common source of libbpf code,
it also prevents issues when having application that links to
libbpf and libbcc, where you could end up conflicting functions
and segfaults if those 2 libbpf libs are not on the same version.

All installed libraries now:

  total 259096
  lrwxrwxrwx. 1 root root        15 Nov  8 15:24 libbcc_bpf.so -&gt; libbcc_bpf.so.0
  lrwxrwxrwx. 1 root root        20 Nov  8 15:24 libbcc_bpf.so.0 -&gt; libbcc_bpf.so.0.11.0
  -rwxr-xr-x. 1 root root    453416 Nov 11 17:03 libbcc_bpf.so.0.11.0
  lrwxrwxrwx. 1 root root        21 Nov  8 15:24 libbcc-no-libbpf.so -&gt; libbcc-no-libbpf.so.0
  lrwxrwxrwx. 1 root root        26 Nov  8 15:24 libbcc-no-libbpf.so.0 -&gt; libbcc-no-libbpf.so.0.11.0
  -rwxr-xr-x. 1 root root 132276312 Nov 11 17:04 libbcc-no-libbpf.so.0.11.0
  lrwxrwxrwx. 1 root root        11 Nov  8 15:24 libbcc.so -&gt; libbcc.so.0
  lrwxrwxrwx. 1 root root        16 Nov  8 15:24 libbcc.so.0 -&gt; libbcc.so.0.11.0
  -rwxr-xr-x. 1 root root 132579280 Nov 11 17:04 libbcc.so.0.11.0
  drwxr-xr-x. 2 root root        23 Nov 11 21:49 pkgconfig

Signed-off-by: Jiri Olsa jolsa@kernel.org
</comment><date>2019-11-12 22:49:45 +0100</date><id>d4b3bf03d9c67324ff85f9d3c74b201b7e427615</id><msg>Add libbcc-no-libbpf.so library</msg><path><editType>add</editType><file>cmake/FindLibBpf.cmake</file></path><path><editType>edit</editType><file>src/cc/CMakeLists.txt</file></path><path><editType>edit</editType><file>CMakeLists.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/cc/CMakeLists.txt</affectedPath><commitId>19c625e65f6726913ef435b1882d50da49bf43e0</commitId><timestamp>1573595388000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/jolsa</absoluteUrl><fullName>jolsa</fullName></author><authorEmail>jolsa@kernel.org</authorEmail><comment>Link test_libbcc directly with libbcc.so

Linking with bcc-shared will use all the libraries in bcc-shared
which compose libbcc, instead of libbcc.so dynamic link.

Signed-off-by: Jiri Olsa jolsa@kernel.org
</comment><date>2019-11-12 22:49:48 +0100</date><id>19c625e65f6726913ef435b1882d50da49bf43e0</id><msg>Link test_libbcc directly with libbcc.so</msg><path><editType>edit</editType><file>tests/cc/CMakeLists.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/cc/CMakeLists.txt</affectedPath><affectedPath>tests/cc/test_c_api.cc</affectedPath><commitId>7ec8bde336af400fc691dba864b62e5733e82bb3</commitId><timestamp>1573595388000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/jolsa</absoluteUrl><fullName>jolsa</fullName></author><authorEmail>jolsa@kernel.org</authorEmail><comment>Add test_libbcc_no_libbpf test

It's the same code as for test_libbcc test,
but linked with libbcc-no-libbpf.so library.

Added LIBBCC_NAME macro to be used in dynamic loader
test where we need to provide the library name.

Signed-off-by: Jiri Olsa jolsa@kernel.org
</comment><date>2019-11-12 22:49:48 +0100</date><id>7ec8bde336af400fc691dba864b62e5733e82bb3</id><msg>Add test_libbcc_no_libbpf test</msg><path><editType>edit</editType><file>tests/cc/CMakeLists.txt</file></path><path><editType>edit</editType><file>tests/cc/test_c_api.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>docs/reference_guide.md</affectedPath><commitId>a6f658dfd3a74ce770f62972d16cda1fd8db35d9</commitId><timestamp>1573662715000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>Add a supplementary explanation to function `get_syscall_fnname` (#2593)

* add a supplementary explanation to function `get_syscall_fnname`.
* fix the contents
</comment><date>2019-11-13 08:31:55 -0800</date><id>a6f658dfd3a74ce770f62972d16cda1fd8db35d9</id><msg>Add a supplementary explanation to function `get_syscall_fnname` (#2593)</msg><path><editType>edit</editType><file>docs/reference_guide.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/libbpf</affectedPath><affectedPath>src/cc/libbpf.c</affectedPath><affectedPath>introspection/bps.c</affectedPath><affectedPath>src/cc/compat/linux/virtual_bpf.h</affectedPath><affectedPath>src/cc/export/helpers.h</affectedPath><affectedPath>docs/kernel-versions.md</affectedPath><commitId>992e482b5d06c58888b3821a96a41e48aff678d0</commitId><timestamp>1573681078000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>sync with latest libbpf (#2594)

The following helpers are sync'ed into bcc and will
be available in linux 5.5.
  bpf_probe_read_kernel
  bpf_probe_read_kernel_str
  bpf_probe_read_user
  bpf_probe_read_user_str

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-11-13 13:37:58 -0800</date><id>992e482b5d06c58888b3821a96a41e48aff678d0</id><msg>sync with latest libbpf (#2594)</msg><path><editType>edit</editType><file>introspection/bps.c</file></path><path><editType>edit</editType><file>src/cc/compat/linux/virtual_bpf.h</file></path><path><editType>edit</editType><file>src/cc/libbpf</file></path><path><editType>edit</editType><file>src/cc/libbpf.c</file></path><path><editType>edit</editType><file>src/cc/export/helpers.h</file></path><path><editType>edit</editType><file>docs/kernel-versions.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>docs/reference_guide.md</affectedPath><affectedPath>src/cc/api/BPF.cc</affectedPath><affectedPath>src/cc/api/BPF.h</affectedPath><affectedPath>tests/cc/test_usdt_probes.cc</affectedPath><commitId>ccf8261e89eede7b6c9c949c1913610fe1bd9a5c</commitId><timestamp>1573758748000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>add BPF::init_usdt function to init a single USDT so folks can handle partial init failure of list of USDTs.

modify BPF::init so that failure doesn't leave the BPF object in a broken state such that subsequent inits will also fail
</comment><date>2019-11-14 11:12:28 -0800</date><id>ccf8261e89eede7b6c9c949c1913610fe1bd9a5c</id><msg>add BPF::init_usdt function to init a single USDT so folks can handle partial init failure of list of USDTs.</msg><path><editType>edit</editType><file>docs/reference_guide.md</file></path><path><editType>edit</editType><file>src/cc/api/BPF.h</file></path><path><editType>edit</editType><file>src/cc/api/BPF.cc</file></path><path><editType>edit</editType><file>tests/cc/test_usdt_probes.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/python/test_tools_smoke.py</affectedPath><affectedPath>tools/compactsnoop.py</affectedPath><affectedPath>tools/compactsnoop_example.txt</affectedPath><affectedPath>tools/old/compactsnoop.py</affectedPath><affectedPath>snapcraft/snapcraft.yaml</affectedPath><affectedPath>man/man8/compactsnoop.8</affectedPath><affectedPath>README.md</affectedPath><commitId>15fbd7cd24e37bfda80326ecdb713be3cc063641</commitId><timestamp>1573807647000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/ethercflow</absoluteUrl><fullName>Zwb</fullName></author><authorEmail>ethercflow@gmail.com</authorEmail><comment>add tool: compactsnoop
</comment><date>2019-11-15 03:47:27 -0500</date><id>15fbd7cd24e37bfda80326ecdb713be3cc063641</id><msg>add tool: compactsnoop</msg><path><editType>edit</editType><file>README.md</file></path><path><editType>add</editType><file>man/man8/compactsnoop.8</file></path><path><editType>add</editType><file>tools/old/compactsnoop.py</file></path><path><editType>add</editType><file>tools/compactsnoop.py</file></path><path><editType>edit</editType><file>snapcraft/snapcraft.yaml</file></path><path><editType>edit</editType><file>tests/python/test_tools_smoke.py</file></path><path><editType>add</editType><file>tools/compactsnoop_example.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>docs/reference_guide.md</affectedPath><commitId>10c1a8303aba778707cd6875d2de1dd7e0a4eda3</commitId><timestamp>1573970746000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>docs/reference_guide.md: update doc

virtual_bpf.h instead of bpf.h
src/cc/compat/linux/bpf.h -&gt; src/cc/compat/linux/virtual_bpf.h
</comment><date>2019-11-16 22:05:46 -0800</date><id>10c1a8303aba778707cd6875d2de1dd7e0a4eda3</id><msg>docs/reference_guide.md: update doc</msg><path><editType>edit</editType><file>docs/reference_guide.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>docs/kernel-versions.md</affectedPath><commitId>98b8d0c833b51ca595b257d2c1afd3a6c53c4437</commitId><timestamp>1573970776000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>docs: update XDP driver list

There are a few more drivers supporting XDP now.

Signed-off-by: Gary Lin &lt;glin@suse.com&gt;
</comment><date>2019-11-16 22:06:16 -0800</date><id>98b8d0c833b51ca595b257d2c1afd3a6c53c4437</id><msg>docs: update XDP driver list</msg><path><editType>edit</editType><file>docs/kernel-versions.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/mountsnoop.py</affectedPath><commitId>6ee245bd9d2d548bb82437a7a32740e7570737b8</commitId><timestamp>1574051315000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>fix a bug in mountsnoop.py with 4.17+ kernels

in 4.17+ kernels, syscall parameters are wrapped in the first
parammeter in pt_regs. So put the 5th parameter in the
syscall__ parameter list so it can be handled properly
by the rewriter.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-11-17 20:28:35 -0800</date><id>6ee245bd9d2d548bb82437a7a32740e7570737b8</id><msg>fix a bug in mountsnoop.py with 4.17+ kernels</msg><path><editType>edit</editType><file>tools/mountsnoop.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/bcc_elf.h</affectedPath><commitId>b8ab98b272bc205108d777eb311610b22f1af133</commitId><timestamp>1574052644000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Include stddef.h for size_t in bcc_elf.h

Signed-off-by: Masanori Misono &lt;m.misono760@gmail.com&gt;
</comment><date>2019-11-17 20:50:44 -0800</date><id>b8ab98b272bc205108d777eb311610b22f1af133</id><msg>Include stddef.h for size_t in bcc_elf.h</msg><path><editType>edit</editType><file>src/cc/bcc_elf.h</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/python/test_tools_smoke.py</affectedPath><affectedPath>man/man8/lockstat.8</affectedPath><affectedPath>tools/offwaketime.py</affectedPath><affectedPath>tools/lockstat_example.txt</affectedPath><affectedPath>snapcraft/snapcraft.yaml</affectedPath><affectedPath>tools/lockstat.py</affectedPath><affectedPath>README.md</affectedPath><commitId>ac00ac5d7fec86524ff815360d0cda2ec583cf24</commitId><timestamp>1574094503000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Add lockstat tool

Adding lockstat tool to trace kernel mutex lock events and
display locks statistics and displays following data:

                                  Caller   Avg Spin  Count   Max spin Total spin
                      psi_avgs_work+0x2e       3675      5       5468      18379
                     flush_to_ldisc+0x22       2833      2       4210       5667
                       n_tty_write+0x30c       3914      1       3914       3914
                               isig+0x5d       2390      1       2390       2390
                   tty_buffer_flush+0x2a       1604      1       1604       1604
                      commit_echoes+0x22       1400      1       1400       1400
          n_tty_receive_buf_common+0x3b9       1399      1       1399       1399

                                  Caller   Avg Hold  Count   Max hold Total hold
                     flush_to_ldisc+0x22      42558      2      76135      85116
                      psi_avgs_work+0x2e      14821      5      20446      74106
          n_tty_receive_buf_common+0x3b9      12300      1      12300      12300
                       n_tty_write+0x30c      10712      1      10712      10712
                               isig+0x5d       3362      1       3362       3362
                   tty_buffer_flush+0x2a       3078      1       3078       3078
                      commit_echoes+0x22       3017      1       3017       3017

Every caller to using kernel's mutex is displayed on every line.

First portion of lines show the lock acquiring data, showing the amount
of time it took to acquired given lock.

  'Caller'       - symbol acquiring the mutex
  'Average Spin' - average time to acquire the mutex
  'Count'        - number of times mutex was acquired
  'Max spin'     - maximum time to acquire the mutex
  'Total spin'   - total time spent in acquiring the mutex

Second portion of lines show the lock holding data, showing the amount
of time it took to hold given lock.

  'Caller'       - symbol holding the mutex
  'Average Hold' - average time mutex was held
  'Count'        - number of times mutex was held
  'Max hold'     - maximum time mutex was held
  'Total hold'   - total time spent in holding the mutex

This works by tracing mutex_lock/unlock kprobes, udating the lock stats
in maps and processing them in the python part.

Examples:
    lockstats                           # trace system wide
    lockstats -d 5                      # trace for 5 seconds only
    lockstats -i 5                      # display stats every 5 seconds
    lockstats -p 123                    # trace locks for PID 123
    lockstats -t 321                    # trace locks for PID 321
    lockstats -c pipe_                  # display stats only for lock callers with 'pipe_' substring
    lockstats -S acq_count              # sort lock acquired results on acquired count
    lockstats -S hld_total              # sort lock held results on total held time
    lockstats -S acq_count,hld_total    # combination of above
    lockstats -n 3                      # display 3 locks
    lockstats -s 3                      # display 3 levels of stack

Signed-off-by: Jiri Olsa &lt;jolsa@kernel.org&gt;
</comment><date>2019-11-18 08:28:23 -0800</date><id>ac00ac5d7fec86524ff815360d0cda2ec583cf24</id><msg>Add lockstat tool</msg><path><editType>add</editType><file>man/man8/lockstat.8</file></path><path><editType>edit</editType><file>snapcraft/snapcraft.yaml</file></path><path><editType>add</editType><file>tools/lockstat.py</file></path><path><editType>add</editType><file>tools/lockstat_example.txt</file></path><path><editType>edit</editType><file>README.md</file></path><path><editType>edit</editType><file>tests/python/test_tools_smoke.py</file></path><path><editType>edit</editType><file>tools/offwaketime.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/bcc_exception.h</affectedPath><commitId>f0f19dbcc34f6246e75094457a268b35dea79149</commitId><timestamp>1574094634000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>make TRY2 macro work outside of ebpf namespace (#2604)

make TRY2 macro work outside of ebpf namespace
</comment><date>2019-11-18 08:30:34 -0800</date><id>f0f19dbcc34f6246e75094457a268b35dea79149</id><msg>make TRY2 macro work outside of ebpf namespace (#2604)</msg><path><editType>edit</editType><file>src/cc/bcc_exception.h</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/bcc_exception.h</affectedPath><commitId>3032347541d8b121598e220ec782aceb642ebf55</commitId><timestamp>1574094679000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>Make StatusTuple code and msg methods const (#2603)

I ran into this while trying to write a method that takes a const StatusTuple reference, these methods should be marked const. I also fixed an unnecessary string copy in msg.
</comment><date>2019-11-18 08:31:19 -0800</date><id>3032347541d8b121598e220ec782aceb642ebf55</id><msg>Make StatusTuple code and msg methods const (#2603)</msg><path><editType>edit</editType><file>src/cc/bcc_exception.h</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>INSTALL.md</affectedPath><commitId>f68d818085c2c26a88606d4976474a08cfe7c9ee</commitId><timestamp>1574098483000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>update INSTALL.md for new llvm source compilation

clang/llvm has moved from old svn with git mirror to
github based source control. The new github address is
  https://github.com/llvm/llvm-project
which includes clang, llvm and other related projects.

This patch updated instruction how to build clang/llvm library
with new llvm-project setup.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-11-18 09:34:43 -0800</date><id>f68d818085c2c26a88606d4976474a08cfe7c9ee</id><msg>update INSTALL.md for new llvm source compilation</msg><path><editType>edit</editType><file>INSTALL.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/runqslower.py</affectedPath><commitId>65885f34d5ea1acb6a014615f1eea08fc6c5514d</commitId><timestamp>1574114459000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>tools/runqslower.py: Fix raw tracepoint code

Closes: #2588

It is was observed that many unrelated process names
were reported for the same pid.

The cause of the bug was the use of bpf_get_current_comm()
which operates on the current process which might already be
different than the 'next' task we captured.
The fix is to use bpf_probe_read_str() instead.

Also removing dead code related to tgid extraction which is not
used at all.
</comment><date>2019-11-18 14:00:59 -0800</date><id>65885f34d5ea1acb6a014615f1eea08fc6c5514d</id><msg>tools/runqslower.py: Fix raw tracepoint code</msg><path><editType>edit</editType><file>tools/runqslower.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>docs/kernel-versions.md</affectedPath><commitId>0272a3d5f3bc87e63aefe1078349be79c5afc651</commitId><timestamp>1574667661000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>docs: update helper functions of BPF_PROG_TYPE_SOCKET_FILTER

Signed-off-by: Masanori Misono &lt;m.misono760@gmail.com&gt;
</comment><date>2019-11-24 23:41:01 -0800</date><id>0272a3d5f3bc87e63aefe1078349be79c5afc651</id><msg>docs: update helper functions of BPF_PROG_TYPE_SOCKET_FILTER</msg><path><editType>edit</editType><file>docs/kernel-versions.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>docs/reference_guide.md</affectedPath><affectedPath>tests/cc/CMakeLists.txt</affectedPath><affectedPath>src/cc/frontends/clang/b_frontend_action.cc</affectedPath><affectedPath>src/cc/table_storage.h</affectedPath><affectedPath>tests/python/test_map_in_map.py</affectedPath><affectedPath>src/cc/export/helpers.h</affectedPath><affectedPath>src/cc/bpf_module.h</affectedPath><affectedPath>tests/cc/test_map_in_map.cc</affectedPath><affectedPath>src/python/bcc/table.py</affectedPath><affectedPath>src/cc/api/BPFTable.cc</affectedPath><affectedPath>src/cc/api/BPFTable.h</affectedPath><affectedPath>src/cc/bpf_module.cc</affectedPath><affectedPath>src/cc/api/BPF.cc</affectedPath><affectedPath>src/cc/api/BPF.h</affectedPath><affectedPath>src/cc/frontends/clang/b_frontend_action.h</affectedPath><commitId>149c1c8857652997622fc2a30747a60e0c9c17dc</commitId><timestamp>1574782653000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Add map-in-map support

Add BPF_MAP_TYPE_HASH_OF_MAPS and BPF_MAP_TYPE_HASH_OF_MAPS
supports in bcc. Two new constructs below are introduced
to bpf program:
  BPF_HASH_OF_MAPS(map_name, "inner_map_name", max_entries)
  BPF_ARRAY_OF_MAPS(map_name, "inner_map_name", max_entries)
In the above, "inner_map_name" is for metadata purpose and there
must be a map defined in bpf program with map name "inner_map_name".

Both python and C++ APIs are added.

For python, a new Table API get_fd() is introduced to get
the fd of a map so that the fd can be used by a map-in-map
do update. The get_fd() is already exposed as API function
in C++. For C++, without get_fd(), we will need to
templatize basic functions like update_value etc, which
I feed too heavy weight. Because of C++ using get_fd()
mechanism, so I exposed similar API on python side
for parity reason.

For map-in-map, the inner map lookup/update/delete won't have
explicit map names. Considering map-in-map is not
used very frequently, I feel looking primitive
bpf_map_{lookup,update,delete}_elem() probably okay,
so I did not create any new bcc specific
constructs for this purpose.

Added both C++ and python test cases to show how to
use the above two new map type in bcc.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-11-26 07:37:33 -0800</date><id>149c1c8857652997622fc2a30747a60e0c9c17dc</id><msg>Add map-in-map support</msg><path><editType>edit</editType><file>docs/reference_guide.md</file></path><path><editType>add</editType><file>tests/python/test_map_in_map.py</file></path><path><editType>edit</editType><file>src/cc/frontends/clang/b_frontend_action.h</file></path><path><editType>edit</editType><file>src/cc/api/BPFTable.h</file></path><path><editType>edit</editType><file>src/cc/api/BPFTable.cc</file></path><path><editType>edit</editType><file>src/cc/table_storage.h</file></path><path><editType>edit</editType><file>src/cc/api/BPF.h</file></path><path><editType>edit</editType><file>src/cc/bpf_module.cc</file></path><path><editType>edit</editType><file>src/cc/api/BPF.cc</file></path><path><editType>add</editType><file>tests/cc/test_map_in_map.cc</file></path><path><editType>edit</editType><file>src/cc/export/helpers.h</file></path><path><editType>edit</editType><file>src/python/bcc/table.py</file></path><path><editType>edit</editType><file>tests/cc/CMakeLists.txt</file></path><path><editType>edit</editType><file>src/cc/frontends/clang/b_frontend_action.cc</file></path><path><editType>edit</editType><file>src/cc/bpf_module.h</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/json_map_decl_visitor.cc</affectedPath><commitId>a1a04f49ac736bc0ddd341258b8a56f2a25d30c5</commitId><timestamp>1574788036000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Do not traverse attributes during JSON generation (Fixes #2605)

Previously, __attribute__((aligned(sizeof(...)))) would cause the type
inside sizeof() to be appended after the JSON type information for the
struct in some clang versions, generating invalid JSON. Inhibit
attribute traversal, since we only want to visit the fields.
</comment><date>2019-11-26 09:07:16 -0800</date><id>a1a04f49ac736bc0ddd341258b8a56f2a25d30c5</id><msg>Do not traverse attributes during JSON generation (Fixes #2605)</msg><path><editType>edit</editType><file>src/cc/json_map_decl_visitor.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/trace.py</affectedPath><affectedPath>tools/old/profile.py</affectedPath><affectedPath>tools/deadlock.c</affectedPath><affectedPath>tools/wakeuptime.py</affectedPath><affectedPath>tools/stackcount.py</affectedPath><affectedPath>tools/stacksnoop.lua</affectedPath><affectedPath>tools/memleak.py</affectedPath><commitId>90f2086c8dd073792b0be382944440e3d0f1977f</commitId><timestamp>1574878194000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>do not use BPF_F_REUSE_STACKID incorrectly

Do not use BPF_F_REUSE_STACKID if the stack id is used
together with process specific info like
pid/tgid/comm. Using BPF_F_REUSE_STACKID may cause
stack id pointing to a different stack later on.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-11-27 10:09:54 -0800</date><id>90f2086c8dd073792b0be382944440e3d0f1977f</id><msg>do not use BPF_F_REUSE_STACKID incorrectly</msg><path><editType>edit</editType><file>tools/deadlock.c</file></path><path><editType>edit</editType><file>tools/memleak.py</file></path><path><editType>edit</editType><file>tools/old/profile.py</file></path><path><editType>edit</editType><file>tools/wakeuptime.py</file></path><path><editType>edit</editType><file>tools/stackcount.py</file></path><path><editType>edit</editType><file>tools/stacksnoop.lua</file></path><path><editType>edit</editType><file>tools/trace.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/lockstat.py</affectedPath><commitId>ea8bbbf942a1a4275d434c62db7adc6136fc72f4</commitId><timestamp>1575012824000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>fix bug for lockstat.py #347 (#2618)

fix bug for lockstat.py with map keys in stack instead of map value in
order to run in older kernels.
</comment><date>2019-11-28 23:33:44 -0800</date><id>ea8bbbf942a1a4275d434c62db7adc6136fc72f4</id><msg>fix bug for lockstat.py #347 (#2618)</msg><path><editType>edit</editType><file>tools/lockstat.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/libbpf.c</affectedPath><commitId>feadea6d789f54e304e9c2f570ed87299e6f4e5e</commitId><timestamp>1575178014000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Support a BPF program larger than BPF_MAXINSNS

A privileged user can load bpf program whose size is at most
BPF_COMPLEXITY_LIMIT_INSNS (which is larger than BPF_MAXINSNS) in Linux 5.3
(https://github.com/torvalds/linux/commit/c04c0d2b968ac45d6ef020316808ef6c82325a82).
Currently, however, `bcc_prog_load_xattr()` return error if  a bpf
program size is larger than BPF_MAXINSNS before loading the program. To
cope with this, change the function so that first trying to load a bpf
program and print an error message if bpf_program_load_xattr() fails
with -E2BIG.  This strategy is the same as libbpf's `load_program`
(https://github.com/libbpf/libbpf/blob/9ef191ea7dca6815e75dab341f2f7a346d979c66/src/libbpf.c#L3792)
The Error message should use BPF_COMPLEXITY_LIMIT_INSNS when
appropriate, but it is not defined in uapi headers yet.

Signed-off-by: Masanori Misono &lt;m.misono760@gmail.com&gt;
</comment><date>2019-11-30 21:26:54 -0800</date><id>feadea6d789f54e304e9c2f570ed87299e6f4e5e</id><msg>Support a BPF program larger than BPF_MAXINSNS</msg><path><editType>edit</editType><file>src/cc/libbpf.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/json_map_decl_visitor.cc</affectedPath><affectedPath>tests/python/test_clang.py</affectedPath><commitId>556d9ec9ca0c142d38b08c5d93420ab06df4e6e0</commitId><timestamp>1575182053000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Use integer types for enums in JSON (Fixes #2615)

The JSON generated for enums wasn't being handled, and caused
exceptions. Since the enum values aren't needed (and would've been
useless without the associated numerical values, anyway), just use the
matching integer type instead.
</comment><date>2019-11-30 22:34:13 -0800</date><id>556d9ec9ca0c142d38b08c5d93420ab06df4e6e0</id><msg>Use integer types for enums in JSON (Fixes #2615)</msg><path><editType>edit</editType><file>src/cc/json_map_decl_visitor.cc</file></path><path><editType>edit</editType><file>tests/python/test_clang.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>cmake/FindLibBpf.cmake</affectedPath><affectedPath>src/cc/CMakeLists.txt</affectedPath><commitId>e09116d3e777782cfdf1a129f8ca8f2981505fb2</commitId><timestamp>1575264670000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Use libbpf-static instead of libbpf-debugsource for CMAKE_USE_LIBBPF_PACKAGE

Currently when building with CMAKE_USE_LIBBPF_PACKAGE we assume
that 'source' package is available to build libbcc_bpf libraries.

However It turned on that using debugsource (in Fedora) package is
not suitable or even possible, so we are switching to use the
libbpf-static package instead.

Adding libbpf-static package detection and removing source
package detection.

Using ar to extract objects from archive and linking them
with both libbcc_bpf.so and libbcc_bpf.a.

Using always uapi headers from the latest libbpf Github repo,
because there are not packaged, but they are backwards compatible,
so it's no problem to have older libbpf package with newer
uapi headers.

Signed-off-by: Jiri Olsa &lt;jolsa@kernel.org&gt;
</comment><date>2019-12-01 21:31:10 -0800</date><id>e09116d3e777782cfdf1a129f8ca8f2981505fb2</id><msg>Use libbpf-static instead of libbpf-debugsource for CMAKE_USE_LIBBPF_PACKAGE</msg><path><editType>edit</editType><file>cmake/FindLibBpf.cmake</file></path><path><editType>edit</editType><file>src/cc/CMakeLists.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>man/man8/filetop.8</affectedPath><commitId>744b644e0d2677e0ffc774d8fefe63715670c455</commitId><timestamp>1575355171000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>man: fix the field of filetop

In the man pages of filetop, the field of FILE is missing

Signed-off-by: Kenta Tada &lt;Kenta.Tada@sony.com&gt;
</comment><date>2019-12-02 22:39:31 -0800</date><id>744b644e0d2677e0ffc774d8fefe63715670c455</id><msg>man: fix the field of filetop</msg><path><editType>edit</editType><file>man/man8/filetop.8</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>man/man8/xfsslower.8</affectedPath><affectedPath>man/man8/nfsslower.8</affectedPath><affectedPath>man/man8/fileslower.8</affectedPath><affectedPath>man/man8/btrfsslower.8</affectedPath><affectedPath>man/man8/ext4slower.8</affectedPath><affectedPath>man/man8/zfsslower.8</affectedPath><commitId>0bca64555ab30b37d23f6898f2eec4528d4d4ec7</commitId><timestamp>1575355278000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>man: fix the explanation of filename

Below filenames currently come from dentry-&gt;d_name.name
* btrfsslower
* ext4slower
* fileslower
* nfsslower
* xfsslower
* zfsslower

Signed-off-by: Kenta Tada &lt;Kenta.Tada@sony.com&gt;
</comment><date>2019-12-02 22:41:18 -0800</date><id>0bca64555ab30b37d23f6898f2eec4528d4d4ec7</id><msg>man: fix the explanation of filename</msg><path><editType>edit</editType><file>man/man8/btrfsslower.8</file></path><path><editType>edit</editType><file>man/man8/ext4slower.8</file></path><path><editType>edit</editType><file>man/man8/zfsslower.8</file></path><path><editType>edit</editType><file>man/man8/nfsslower.8</file></path><path><editType>edit</editType><file>man/man8/xfsslower.8</file></path><path><editType>edit</editType><file>man/man8/fileslower.8</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/mysqld_qslower.py</affectedPath><commitId>1f7b6cd3fdaec9a49b3534539044f31f6694ebe9</commitId><timestamp>1575410934000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Correction to Usage text.
</comment><date>2019-12-03 14:08:54 -0800</date><id>1f7b6cd3fdaec9a49b3534539044f31f6694ebe9</id><msg>Correction to Usage text.</msg><path><editType>edit</editType><file>tools/mysqld_qslower.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>man/man8/runqslower.8</affectedPath><commitId>b040635d86fa7eba195ec3f43f91a6f72806fb05</commitId><timestamp>1575475679000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>man: fix a reference to runqlat in runqslower man page

The runqslower man page obviously derived from the man page of
runqlat. It seems that a reference to runqlat in the NAME section has
been overlooked.
</comment><date>2019-12-04 08:07:59 -0800</date><id>b040635d86fa7eba195ec3f43f91a6f72806fb05</id><msg>man: fix a reference to runqlat in runqslower man page</msg><path><editType>edit</editType><file>man/man8/runqslower.8</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/python/test_tools_smoke.py</affectedPath><affectedPath>man/man8/lockstat.8</affectedPath><affectedPath>tools/klockstat.py</affectedPath><affectedPath>tools/lockstat_example.txt</affectedPath><affectedPath>snapcraft/snapcraft.yaml</affectedPath><affectedPath>man/man8/klockstat.8</affectedPath><affectedPath>tools/lockstat.py</affectedPath><affectedPath>tools/klockstat_example.txt</affectedPath><affectedPath>README.md</affectedPath><commitId>71f9c2a7469cc73bdba4b3b9f49991930ac572f9</commitId><timestamp>1575562303000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>rename tool lockstat.py to klockstat.py

The current lockstat.py is tracing three kernel functions
  mutex_lock_enter(), mutex_unlock_enter(), mutex_lock_return()
for kernel locking statistics.

There are some other efforts trying to get user lock stats by
tracing e.g. pthread locking primitives. For example,
Sasha Goldshtein's linux-tracing-workshop
   https://github.com/goldshtn/linux-tracing-workshop
is referenced in bcc/docs/tutorial_bcc_python_developer.md.
It has a tool called lockstat.py which traces pthread_mutex_init
to collect some lock statistics for userspace locks.

In bcc, in the past, we also had an effort to gather userspace
lock statistics with the same name lockstat.py.
   https://github.com/iovisor/bcc/pull/1268

In the future, bcc could have a lockstat tool tracing userspace
locks. So let us rename the current lockstat.py to klockstat.py
to clearly express its scope.
</comment><date>2019-12-05 08:11:43 -0800</date><id>71f9c2a7469cc73bdba4b3b9f49991930ac572f9</id><msg>rename tool lockstat.py to klockstat.py</msg><path><editType>add</editType><file>tools/klockstat_example.txt</file></path><path><editType>add</editType><file>tools/klockstat.py</file></path><path><editType>edit</editType><file>tests/python/test_tools_smoke.py</file></path><path><editType>delete</editType><file>tools/lockstat.py</file></path><path><editType>edit</editType><file>snapcraft/snapcraft.yaml</file></path><path><editType>edit</editType><file>README.md</file></path><path><editType>add</editType><file>man/man8/klockstat.8</file></path><path><editType>delete</editType><file>man/man8/lockstat.8</file></path><path><editType>delete</editType><file>tools/lockstat_example.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>examples/tracing/stacksnoop.py</affectedPath><affectedPath>examples/lua/memleak.lua</affectedPath><affectedPath>examples/tracing/mallocstacks.py</affectedPath><affectedPath>examples/lua/offcputime.lua</affectedPath><commitId>e7ddcbcc5e939ac91e16b42fca303c31816590a5</commitId><timestamp>1575653332000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>remove inproper usage of BPF_F_REUSE_STACKID in examples

When the application bundles stack id with process specific
info (like pid, comm, etc.), BPF_F_REUSE_STACKID should not
be used as it may associate wrong stack with processes.

This patch corrected several such uses in examples/
directory.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-12-06 09:28:52 -0800</date><id>e7ddcbcc5e939ac91e16b42fca303c31816590a5</id><msg>remove inproper usage of BPF_F_REUSE_STACKID in examples</msg><path><editType>edit</editType><file>examples/tracing/stacksnoop.py</file></path><path><editType>edit</editType><file>examples/tracing/mallocstacks.py</file></path><path><editType>edit</editType><file>examples/lua/offcputime.lua</file></path><path><editType>edit</editType><file>examples/lua/memleak.lua</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/trace.py</affectedPath><affectedPath>man/man8/trace.8</affectedPath><affectedPath>tools/trace_example.txt</affectedPath><commitId>9ce7b7e9ff3c8f00950f15ed0f0c73b6fa4e1dcd</commitId><timestamp>1575660427000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>tools/trace.py: add process name filtering

porting from opensnoop

Signed-off-by: tty5 &lt;tty.fqq@gmail.com&gt;
</comment><date>2019-12-06 11:27:07 -0800</date><id>9ce7b7e9ff3c8f00950f15ed0f0c73b6fa4e1dcd</id><msg>tools/trace.py: add process name filtering</msg><path><editType>edit</editType><file>tools/trace.py</file></path><path><editType>edit</editType><file>man/man8/trace.8</file></path><path><editType>edit</editType><file>tools/trace_example.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/trace.py</affectedPath><affectedPath>man/man8/trace.8</affectedPath><affectedPath>tools/trace_example.txt</affectedPath><commitId>5cf529eeb448fa5422f305727ee4be7d01ebf391</commitId><timestamp>1575660427000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>tools/trace.py: add msg filter of event

In the normal develop, will produce many event on the same tracepoint,
like do_sys_open, a executable program will open many files but
developer only has interesting on the specific file. So this filter
will
help developer to get their interesting msg

Signed-off-by: tty5 &lt;tty.fqq@gmail.com&gt;
</comment><date>2019-12-06 11:27:07 -0800</date><id>5cf529eeb448fa5422f305727ee4be7d01ebf391</id><msg>tools/trace.py: add msg filter of event</msg><path><editType>edit</editType><file>tools/trace.py</file></path><path><editType>edit</editType><file>tools/trace_example.txt</file></path><path><editType>edit</editType><file>man/man8/trace.8</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>cmake/clang_libs.cmake</affectedPath><affectedPath>src/cc/frontends/b/codegen_llvm.cc</affectedPath><commitId>f9f1050f0d61e56ed43df0f1338a30389bfcc2ba</commitId><timestamp>1576000660000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>fix a compilation error with latest llvm 10

Two issues:
First, the recent llvm commit "[Alignment][NFC] CreateMemSet use MaybeAlign"
(https://reviews.llvm.org/D71213) changed IR/IRBuilder.h
CreateMemSet() signature which caused the following compilation error:
  [ 16%] Building CXX object src/cc/frontends/b/CMakeFiles/b_frontend.dir/codegen_llvm.cc.o
  /home/yhs/work/bcc/src/cc/frontends/b/codegen_llvm.cc: In member function
  ‘virtual ebpf::StatusTuple ebpf::cc::CodegenLLVM::visit_table_index_expr_node(ebpf::cc::TableIndexExprNode*)’:
  /home/yhs/work/bcc/src/cc/frontends/b/codegen_llvm.cc:824:96: error: no matching function for call to
  ‘llvm::IRBuilder&lt;&gt;::CreateMemSet(llvm::Value*&amp;, llvm::ConstantInt*, llvm::ConstantInt*, int)’
       B.CreateMemSet(leaf_ptr, B.getInt8(0), B.getInt64(n-&gt;table_-&gt;leaf_id()-&gt;bit_width_ &gt;&gt; 3), 1);
                                                                                                ^
  ....
  /home/yhs/work/llvm-project/llvm/build/install/include/llvm/IR/IRBuilder.h:460:13: note: candidate:
  llvm::CallInst* llvm::IRBuilderBase::CreateMemSet(llvm::Value*, llvm::Value*, llvm::Value*,
  llvm::MaybeAlign, bool, llvm::MDNode*, llvm::MDNode*, llvm::MDNode*)
     CallInst *CreateMemSet(Value *Ptr, Value *Val, Value *Size, MaybeAlign Align,
               ^~~~~~~~~~~~
  /home/yhs/work/llvm-project/llvm/build/install/include/llvm/IR/IRBuilder.h:460:13: note:
  no known conversion for argument 4 from ‘int’ to ‘llvm::MaybeAlign’

Second, the commit "[OpenMP][NFCI] Introduce llvm/IR/OpenMPConstants.h"
(https://reviews.llvm.org/D69853) introduced a new library "FrontendOpenMP"
which is used by clang Parser, and caused the following errors:
  [ 99%] Building CXX object tests/cc/CMakeFiles/test_libbcc.dir/test_hash_table.cc.o
  /home/yhs/work/llvm-project/llvm/build/install/lib/libclangParse.a(ParseOpenMP.cpp.o): In function
  `clang::Parser::ParseOpenMPDeclareReductionDirective(clang::AccessSpecifier)':
  ParseOpenMP.cpp:(.text._ZN5clang6Parser36ParseOpenMPDeclareReductionDirectiveENS_15AccessSpecifierE+0x86):
  undefined reference to `llvm::omp::getOpenMPDirectiveName(llvm::omp::Directive)'

This patch fixed both issues and bcc can compile with latest llvm 10.
</comment><date>2019-12-10 09:57:40 -0800</date><id>f9f1050f0d61e56ed43df0f1338a30389bfcc2ba</id><msg>fix a compilation error with latest llvm 10</msg><path><editType>edit</editType><file>cmake/clang_libs.cmake</file></path><path><editType>edit</editType><file>src/cc/frontends/b/codegen_llvm.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/compat/linux/virtual_bpf.h</affectedPath><affectedPath>src/cc/libbpf</affectedPath><affectedPath>introspection/CMakeLists.txt</affectedPath><commitId>e6bd4edc389aa7876ba89dae48eb27d4e59687a2</commitId><timestamp>1576002254000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>sync with latest libbpf

sync with latest upstream libbpf version 0.0.6.
</comment><date>2019-12-10 10:24:14 -0800</date><id>e6bd4edc389aa7876ba89dae48eb27d4e59687a2</id><msg>sync with latest libbpf</msg><path><editType>edit</editType><file>src/cc/libbpf</file></path><path><editType>edit</editType><file>introspection/CMakeLists.txt</file></path><path><editType>edit</editType><file>src/cc/compat/linux/virtual_bpf.h</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>debian/changelog</affectedPath><commitId>368a5b0714961953f3e3f61607fa16cb71449c1b</commitId><timestamp>1576027176000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>debian changelog for v0.12.0 tag

the main changes from v0.11.0 to v0.12.0 tag:
  * Support for kernel up to 5.4
  * klockstat tool to track kernel mutex lock statistics
  * cmake option CMAKE_USE_LIBBPF_PACKAGE to build a bcc shared library
    linking with distro libbpf_static.a
  * new map.lookup_or_try_init() API to remove hidden return in
    map.lookup_or_init()
  * BPF_ARRAY_OF_MAPS and BPF_HASH_OF_MAPS support
  * support symbol offset for uprobe in both C++ and python API,
    kprobe already has the support
  * bug fixes for trace.py, tcpretrans.py, runqslower.py, etc.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-12-10 17:19:36 -0800</date><id>368a5b0714961953f3e3f61607fa16cb71449c1b</id><msg>debian changelog for v0.12.0 tag</msg><path><editType>edit</editType><file>debian/changelog</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/python/bcc/__init__.py</affectedPath><commitId>2283996f0acd80c304541540570825da7fae77d9</commitId><timestamp>1576082596000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Fix s390 kprobes support

Ever since Linux kernel commit aa0d6e70d, kprobes on s390 could no longer
be found due to a change in symbol names.
Symptom:
  $ ./tools/execsnoop.py
  cannot attach kprobe, probe entry may not exist
  [...]

Signed-off-by: Stefan Raspl &lt;raspl@linux.ibm.com&gt;
</comment><date>2019-12-11 08:43:16 -0800</date><id>2283996f0acd80c304541540570825da7fae77d9</id><msg>Fix s390 kprobes support</msg><path><editType>edit</editType><file>src/python/bcc/__init__.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/filetop.py</affectedPath><commitId>3106a82f2cbce9be7c31da44cd173c2ac88c7e21</commitId><timestamp>1576167171000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>fix -h output for --sort option

This fixes a regression from c2b371d56b8bbaf9c7d01b88830193ecd1ee4e12 where the author forgot to update the help output.
</comment><date>2019-12-12 08:12:51 -0800</date><id>3106a82f2cbce9be7c31da44cd173c2ac88c7e21</id><msg>fix -h output for --sort option</msg><path><editType>edit</editType><file>tools/filetop.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>man/man8/biolatency.8</affectedPath><commitId>05a09ea981cc5ed5021b194c3b2e2ea32c55e4b5</commitId><timestamp>1576167196000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Improve wording on how latency is measured
</comment><date>2019-12-12 08:13:16 -0800</date><id>05a09ea981cc5ed5021b194c3b2e2ea32c55e4b5</id><msg>Improve wording on how latency is measured</msg><path><editType>edit</editType><file>man/man8/biolatency.8</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/klockstat.py</affectedPath><affectedPath>man/man8/klockstat.8</affectedPath><commitId>c71394a9b6a5f6e98aef854ca5aa018a4ed733bf</commitId><timestamp>1576680243000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>klockstat: fix caller filter

- args.caller needs to be bytes not string
- clarify man page a bit
</comment><date>2019-12-18 06:44:03 -0800</date><id>c71394a9b6a5f6e98aef854ca5aa018a4ed733bf</id><msg>klockstat: fix caller filter</msg><path><editType>edit</editType><file>tools/klockstat.py</file></path><path><editType>edit</editType><file>man/man8/klockstat.8</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/libbpf.c</affectedPath><commitId>0aca2c71c9b9e6b3d3335b6df288ad01a09c3ed6</commitId><timestamp>1576810659000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Remove kretprobe__ prefix from program names

Such prefixes are currently removed for kprobes, tracepoints, and raw
tracepoints, but not for kretprobes.  This commit removes it for
kretprobe as well, for consistency.

Signed-off-by: Paul Chaignon &lt;paul.chaignon@orange.com&gt;
</comment><date>2019-12-19 18:57:39 -0800</date><id>0aca2c71c9b9e6b3d3335b6df288ad01a09c3ed6</id><msg>Remove kretprobe__ prefix from program names</msg><path><editType>edit</editType><file>src/cc/libbpf.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>examples/cgroupid/cgroupid.c</affectedPath><affectedPath>tools/opensnoop_example.txt</affectedPath><affectedPath>.gitignore</affectedPath><affectedPath>docs/filtering_by_cgroups.md</affectedPath><affectedPath>tools/opensnoop.py</affectedPath><affectedPath>tools/execsnoop_example.txt</affectedPath><affectedPath>tools/execsnoop.py</affectedPath><affectedPath>examples/cgroupid/Makefile</affectedPath><affectedPath>examples/cgroupid/Dockerfile</affectedPath><commitId>b2aa29fa3269ec54b2c4d95a55559deb4c32b7b6</commitId><timestamp>1576896776000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>tools: cgroup filtering in execsnoop/opensnoop

Add a new option --cgroupmap in execsnoop and opensnoop to only display
results from processes that belong to one of the cgroups whose id,
returned by bpf_get_current_cgroup_id(), is in a pinned BPF hash map.

Examples of commands:
    # opensnoop --cgroupmap /sys/fs/bpf/test01
    # execsnoop --cgroupmap /sys/fs/bpf/test01

Cgroup ids can be discovered in userspace by the system call
name_to_handle_at(); an example of C program doing that is available in
examples/cgroupid/cgroupid.c.

More complete documentation is added in docs/filtering_by_cgroups.md

The documentation is independent from Kubernetes. However, my goal is to
use this feature in Kubernetes: I am preparing to use this in Inspektor
Gadget to select specific Kubernetes pods, depending on a Kubernetes
label selector. Kubernetes pods matching the label selector can come and
go during the execution of the bcc tools; Inspektor Gadget is updating
the BPF hash map used by the bcc tools accordingly.
</comment><date>2019-12-20 18:52:56 -0800</date><id>b2aa29fa3269ec54b2c4d95a55559deb4c32b7b6</id><msg>tools: cgroup filtering in execsnoop/opensnoop</msg><path><editType>add</editType><file>examples/cgroupid/Dockerfile</file></path><path><editType>add</editType><file>examples/cgroupid/Makefile</file></path><path><editType>edit</editType><file>tools/opensnoop.py</file></path><path><editType>edit</editType><file>tools/execsnoop.py</file></path><path><editType>edit</editType><file>tools/opensnoop_example.txt</file></path><path><editType>add</editType><file>docs/filtering_by_cgroups.md</file></path><path><editType>edit</editType><file>tools/execsnoop_example.txt</file></path><path><editType>add</editType><file>examples/cgroupid/cgroupid.c</file></path><path><editType>edit</editType><file>.gitignore</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/libbpf</affectedPath><affectedPath>introspection/CMakeLists.txt</affectedPath><affectedPath>src/cc/CMakeLists.txt</affectedPath><commitId>8174c0ae5541d4c9b2b3a4d407d7ea527946b641</commitId><timestamp>1576910369000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>sync with latest libbpf

also add dependency of zlib in a couple of places
as libbpf starts to use zlib directly.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-12-20 22:39:29 -0800</date><id>8174c0ae5541d4c9b2b3a4d407d7ea527946b641</id><msg>sync with latest libbpf</msg><path><editType>edit</editType><file>src/cc/libbpf</file></path><path><editType>edit</editType><file>src/cc/CMakeLists.txt</file></path><path><editType>edit</editType><file>introspection/CMakeLists.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/trace.py</affectedPath><commitId>8bb4e473bac87e65c9aaa51c9e90e2f98bb25acc</commitId><timestamp>1576951560000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>tools/trace.py: flush stdout for each event
</comment><date>2019-12-21 10:06:00 -0800</date><id>8bb4e473bac87e65c9aaa51c9e90e2f98bb25acc</id><msg>tools/trace.py: flush stdout for each event</msg><path><editType>edit</editType><file>tools/trace.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>cmake/version.cmake</affectedPath><commitId>977a7e3a568c4c929fabeb4a025528d9b6f1e84c</commitId><timestamp>1577385586000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>change version.cmake to check all tags

Fix issue #2666

Currently, in master where latest tag is v0.12.0,
the build still says is it v0.11.0.

  [ben@centos bcc]$ cd build/
  [ben@centos build]$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr
  -- Latest recognized Git tag is v0.11.0

The reason is the git_describe by default only checks
annotated tag while tag v0.12.0 is tagged through
github release process which just tags whatever the
top of the master.

Making git_describe to check all tags fixed the issue.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2019-12-26 10:39:46 -0800</date><id>977a7e3a568c4c929fabeb4a025528d9b6f1e84c</id><msg>change version.cmake to check all tags</msg><path><editType>edit</editType><file>cmake/version.cmake</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>man/man8/gethostlatency.8</affectedPath><affectedPath>man/man8/filelife.8</affectedPath><affectedPath>man/man8/syncsnoop.8</affectedPath><affectedPath>man/man8/mountsnoop.8</affectedPath><affectedPath>man/man8/biosnoop.8</affectedPath><affectedPath>man/man8/drsnoop.8</affectedPath><affectedPath>man/man8/statsnoop.8</affectedPath><affectedPath>man/man8/killsnoop.8</affectedPath><affectedPath>man/man8/bashreadline.8</affectedPath><affectedPath>man/man8/opensnoop.8</affectedPath><commitId>4f0a887a1530c716190454b824a7f003fde8b9e8</commitId><timestamp>1577482586000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>man: fix required kernel version in man pages

Several man pages state that Linux 4.5 is required because the tool
relies on the bpf_perf_event_output helper.  However,
bpf_perf_event_output was introduced in Linux 4.4.

In addition, mountsnoop requires Linux 4.8 because it now uses
the bpf_get_current_task helper.

Signed-off-by: Paul Chaignon &lt;paul.chaignon@orange.com&gt;
</comment><date>2019-12-27 13:36:26 -0800</date><id>4f0a887a1530c716190454b824a7f003fde8b9e8</id><msg>man: fix required kernel version in man pages</msg><path><editType>edit</editType><file>man/man8/statsnoop.8</file></path><path><editType>edit</editType><file>man/man8/syncsnoop.8</file></path><path><editType>edit</editType><file>man/man8/gethostlatency.8</file></path><path><editType>edit</editType><file>man/man8/mountsnoop.8</file></path><path><editType>edit</editType><file>man/man8/bashreadline.8</file></path><path><editType>edit</editType><file>man/man8/biosnoop.8</file></path><path><editType>edit</editType><file>man/man8/drsnoop.8</file></path><path><editType>edit</editType><file>man/man8/opensnoop.8</file></path><path><editType>edit</editType><file>man/man8/filelife.8</file></path><path><editType>edit</editType><file>man/man8/killsnoop.8</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/CMakeLists.txt</affectedPath><commitId>df591fb5970392359b860945b754d6c7cfce1d2e</commitId><timestamp>1577677853000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/casparant</absoluteUrl><fullName>Caspar Zhang</fullName></author><authorEmail>caspar@linux.alibaba.com</authorEmail><comment>fix libbpf_uapi path typo

A typo occured in libbpf_uapi path from src/cc/CMakeLists.txt which
made compat linux uapi headers failed to copy.

Signed-off-by: Caspar Zhang &lt;caspar@linux.alibaba.com&gt;
</comment><date>2019-12-30 11:50:53 +0800</date><id>df591fb5970392359b860945b754d6c7cfce1d2e</id><msg>fix libbpf_uapi path typo</msg><path><editType>edit</editType><file>src/cc/CMakeLists.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/CMakeLists.txt</affectedPath><commitId>dc336aa42dee99e3b38b8c760c39cc8fafe9deca</commitId><timestamp>1577996597000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Package static archives, closes #1938

This should help embed libbcc into bpftrace:

* https://github.com/iovisor/bpftrace/issues/342

As well as other tools like ebpf_exporter, so that there is no longer
a requirement to have a particular version libbcc installed.
</comment><date>2020-01-02 12:23:17 -0800</date><id>dc336aa42dee99e3b38b8c760c39cc8fafe9deca</id><msg>Package static archives, closes #1938</msg><path><editType>edit</editType><file>src/cc/CMakeLists.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/cc/test_map_in_map.cc</affectedPath><commitId>5098c9dd2538d6256a10f1a67a36ebc867549e7f</commitId><timestamp>1577996619000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>fix test_map_in_map.cc compilation error

fix issue #2679 where test_map_in_map.cc has a
compilation error on ppc64le due to conflicting
type __u64. Let us just remove the typedef.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2020-01-02 12:23:39 -0800</date><id>5098c9dd2538d6256a10f1a67a36ebc867549e7f</id><msg>fix test_map_in_map.cc compilation error</msg><path><editType>edit</editType><file>tests/cc/test_map_in_map.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/bcc_btf.cc</affectedPath><commitId>e47f9d0294a23fe125e577a5649c936ea7d6f814</commitId><timestamp>1578009926000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>sanitize btf VAR and DATASEC types

bcc does not use these types yet. Let us sanitize them
with int/void-pointer types so old kernels can continue
to work with latest llvm compiler.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2020-01-02 16:05:26 -0800</date><id>e47f9d0294a23fe125e577a5649c936ea7d6f814</id><msg>sanitize btf VAR and DATASEC types</msg><path><editType>edit</editType><file>src/cc/bcc_btf.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>man/man8/runqslower.8</affectedPath><affectedPath>tools/runqslower.py</affectedPath><affectedPath>tools/runqslower_example.txt</affectedPath><commitId>db8264413135c808bd5d530537e9cccabf6186a3</commitId><timestamp>1578029844000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>tools/runqslower.py: Option for --pid or --tid (#2635)

* tools/runqslower.py: Option for --pid or --tid

Closes: #2607

Option for --pid or --tid tracing.
Enable group leader level tracing.
* --pid &lt;pid&gt;:
    will trace every task that has &lt;pid&gt; as group leader.
    Meaning it will trace the parent and its direct children.
* --tid &lt;tid&gt;:
    will trace the given thread
* Reporting TID instead of PID in the report column.
* Update the example file to reflect the TID/PID change
</comment><date>2020-01-02 21:37:24 -0800</date><id>db8264413135c808bd5d530537e9cccabf6186a3</id><msg>tools/runqslower.py: Option for --pid or --tid (#2635)</msg><path><editType>edit</editType><file>tools/runqslower.py</file></path><path><editType>edit</editType><file>tools/runqslower_example.txt</file></path><path><editType>edit</editType><file>man/man8/runqslower.8</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/frontends/clang/b_frontend_action.cc</affectedPath><affectedPath>tests/cc/CMakeLists.txt</affectedPath><affectedPath>src/cc/api/BPFTable.h</affectedPath><affectedPath>tests/cc/test_sk_storage.cc</affectedPath><affectedPath>src/cc/api/BPF.h</affectedPath><affectedPath>src/cc/export/helpers.h</affectedPath><commitId>c6b287ca4ca30de94d1082ebed0a7330796b717a</commitId><timestamp>1578029878000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>support BPF_MAP_TYPE_SK_STORAGE map

kernel sk local storage is introduced at 5.2.
  https://github.com/torvalds/linux/commit/6ac99e8f23d4b10258406ca0dd7bffca5f31da9d
this patch supports BPF_MAP_TYPE_SK_STORAGE in bcc.
tested C++ user space APIs and loading of the bpf programs
using helpers map.sk_storage_get() and map.sk_storage_delete().

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2020-01-02 21:37:58 -0800</date><id>c6b287ca4ca30de94d1082ebed0a7330796b717a</id><msg>support BPF_MAP_TYPE_SK_STORAGE map</msg><path><editType>edit</editType><file>src/cc/export/helpers.h</file></path><path><editType>add</editType><file>tests/cc/test_sk_storage.cc</file></path><path><editType>edit</editType><file>src/cc/frontends/clang/b_frontend_action.cc</file></path><path><editType>edit</editType><file>src/cc/api/BPF.h</file></path><path><editType>edit</editType><file>tests/cc/CMakeLists.txt</file></path><path><editType>edit</editType><file>src/cc/api/BPFTable.h</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/offcputime.py</affectedPath><commitId>909ada95ce59530cb205a96413167bb0c5074739</commitId><timestamp>1578034214000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>tools/offcputime.py: Redundatn arg check

pid/tid is already set to be mutually exclusive in
python's arg parser so no need for this check manually.
</comment><date>2020-01-02 22:50:14 -0800</date><id>909ada95ce59530cb205a96413167bb0c5074739</id><msg>tools/offcputime.py: Redundatn arg check</msg><path><editType>edit</editType><file>tools/offcputime.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>LINKS.md</affectedPath><commitId>d79628569b039f3efe8bdb09505005bb388b4eb7</commitId><timestamp>1578070961000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Links to 3 articles on Linux tracing using bcc
</comment><date>2020-01-03 09:02:41 -0800</date><id>d79628569b039f3efe8bdb09505005bb388b4eb7</id><msg>Links to 3 articles on Linux tracing using bcc</msg><path><editType>edit</editType><file>LINKS.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/frontends/clang/b_frontend_action.cc</affectedPath><affectedPath>tests/python/test_clang.py</affectedPath><commitId>1a780e97ff6678583c5398230c579cc81cfbf2bb</commitId><timestamp>1578291313000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>rewriter: Fix tracking of pointers with several indirections

The rewriter tracks, with nb_derefs, the number of indirections of
external pointers, to rewrite only the appropriate dereference into a call
to bpf_probe_read.

In ProbeChecker, however, nb_derefs has a different meaning: it counts
the number of dereferences encountered.  This difference resulted in an
error when ProbeChecker is traversing the right-hand side of an
assignment.  This commit fixes the error and adds tests for the two
cases of assignments: when the right-hand side is an external pointer
with several indirection levels and when it is a call to a function
returning an external pointer with several indirection levels.

This commit also changes ProbeSetter and assignsExtPtr to count
dereferences instead of addrof in an effort to use nb_derefs more
consistently across the code to mean "number of dereferences needed to get
to the external pointer".

Signed-off-by: Paul Chaignon &lt;paul.chaignon@orange.com&gt;
</comment><date>2020-01-05 22:15:13 -0800</date><id>1a780e97ff6678583c5398230c579cc81cfbf2bb</id><msg>rewriter: Fix tracking of pointers with several indirections</msg><path><editType>edit</editType><file>src/cc/frontends/clang/b_frontend_action.cc</file></path><path><editType>edit</editType><file>tests/python/test_clang.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>INSTALL.md</affectedPath><commitId>1b2be41a090cb66e049911de47ea02b78bf85caf</commitId><timestamp>1578327944000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Add Ubuntu Eon incompatibility note

Packages are currently broken on Ubuntu Eon. See #2676 and #2678.
</comment><date>2020-01-06 08:25:44 -0800</date><id>1b2be41a090cb66e049911de47ea02b78bf85caf</id><msg>Add Ubuntu Eon incompatibility note</msg><path><editType>edit</editType><file>INSTALL.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>INSTALL.md</affectedPath><commitId>590ac9dcb67aff673b38855b76eaf45b5269fd41</commitId><timestamp>1578350795000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Ubuntu Eon build dependencies and version numbers

- Add updated list of dependencies to build on Ubuntu Eon (19.10)
- Add Ubuntu version numbers for increased clarity
- Capitalize release names to match official branding
</comment><date>2020-01-06 14:46:35 -0800</date><id>590ac9dcb67aff673b38855b76eaf45b5269fd41</id><msg>Ubuntu Eon build dependencies and version numbers</msg><path><editType>edit</editType><file>INSTALL.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/api/BPFTable.cc</affectedPath><commitId>c707a55ef164f9072688fd4cf9e7ca7ac20b8fc4</commitId><timestamp>1578377889000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>avoid complex expression in struct member initializer

Some old compiler may complain about this. Let us only use simple expression.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2020-01-06 22:18:09 -0800</date><id>c707a55ef164f9072688fd4cf9e7ca7ac20b8fc4</id><msg>avoid complex expression in struct member initializer</msg><path><editType>edit</editType><file>src/cc/api/BPFTable.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/solisten_example.txt</affectedPath><affectedPath>tools/old/profile.py</affectedPath><affectedPath>src/cc/export/helpers.h</affectedPath><affectedPath>tools/offcputime.py</affectedPath><affectedPath>tools/runqlen_example.txt</affectedPath><affectedPath>man/man8/filetop.8</affectedPath><affectedPath>tests/lua/luaunit.lua</affectedPath><affectedPath>src/cc/libbpf.c</affectedPath><affectedPath>tools/tcplife.lua</affectedPath><affectedPath>examples/cpp/TCPSendStack.cc</affectedPath><affectedPath>tools/compactsnoop.py</affectedPath><affectedPath>tools/offwaketime.py</affectedPath><affectedPath>tools/compactsnoop_example.txt</affectedPath><affectedPath>tools/klockstat.py</affectedPath><affectedPath>src/cc/libbpf.h</affectedPath><affectedPath>man/man8/dbslower.8</affectedPath><affectedPath>tools/capable.py</affectedPath><affectedPath>examples/networking/http_filter/http-parse-complete.py</affectedPath><affectedPath>src/cc/frontends/b/parser.yy</affectedPath><affectedPath>man/man8/runqlen.8</affectedPath><affectedPath>src/cc/frontends/b/codegen_llvm.cc</affectedPath><affectedPath>tools/profile.py</affectedPath><affectedPath>docs/reference_guide.md</affectedPath><affectedPath>examples/tracing/dddos.py</affectedPath><affectedPath>tools/reset-trace.sh</affectedPath><affectedPath>tools/cachetop.py</affectedPath><affectedPath>tools/tcpstates.py</affectedPath><affectedPath>src/cc/bcc_elf.h</affectedPath><affectedPath>tests/cc/test_perf_event.cc</affectedPath><affectedPath>tools/tcplife_example.txt</affectedPath><affectedPath>tools/inject.py</affectedPath><affectedPath>tools/tcpstates_example.txt</affectedPath><affectedPath>src/cc/frontends/p4/compiler/ebpfTable.py</affectedPath><affectedPath>src/cc/api/BPF.cc</affectedPath><affectedPath>examples/networking/http_filter/http-parse-complete.c</affectedPath><affectedPath>tests/python/include/folly/tracing/StaticTracepoint-ELF.h</affectedPath><affectedPath>man/man8/criticalstat.8</affectedPath><affectedPath>tools/tcpaccept.py</affectedPath><affectedPath>tools/criticalstat_example.txt</affectedPath><affectedPath>tools/nfsslower.py</affectedPath><affectedPath>tools/tcpsubnet_example.txt</affectedPath><affectedPath>tools/tcplife.py</affectedPath><affectedPath>tools/tcptracer_example.txt</affectedPath><affectedPath>tools/reset-trace_example.txt</affectedPath><affectedPath>man/man8/compactsnoop.8</affectedPath><commitId>c14d02a521cdeddc54a1189cd66a90cbd632a9a5</commitId><timestamp>1578533358000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>yhs@fb.com</authorEmail><comment>Fix a bunch of typos (#2693)

fix a bunch of types in man pages, docs, tools, tests, src and examples.
</comment><date>2020-01-08 17:29:18 -0800</date><id>c14d02a521cdeddc54a1189cd66a90cbd632a9a5</id><msg>Fix a bunch of typos (#2693)</msg><path><editType>edit</editType><file>src/cc/frontends/p4/compiler/ebpfTable.py</file></path><path><editType>edit</editType><file>examples/cpp/TCPSendStack.cc</file></path><path><editType>edit</editType><file>src/cc/frontends/b/codegen_llvm.cc</file></path><path><editType>edit</editType><file>tools/old/profile.py</file></path><path><editType>edit</editType><file>tools/tcplife_example.txt</file></path><path><editType>edit</editType><file>tools/tcptracer_example.txt</file></path><path><editType>edit</editType><file>tools/tcpaccept.py</file></path><path><editType>edit</editType><file>examples/networking/http_filter/http-parse-complete.c</file></path><path><editType>edit</editType><file>examples/tracing/dddos.py</file></path><path><editType>edit</editType><file>src/cc/libbpf.h</file></path><path><editType>edit</editType><file>tools/offcputime.py</file></path><path><editType>edit</editType><file>tools/reset-trace.sh</file></path><path><editType>edit</editType><file>tools/tcpstates_example.txt</file></path><path><editType>edit</editType><file>tools/klockstat.py</file></path><path><editType>edit</editType><file>man/man8/dbslower.8</file></path><path><editType>edit</editType><file>tools/tcpstates.py</file></path><path><editType>edit</editType><file>tools/nfsslower.py</file></path><path><editType>edit</editType><file>tools/solisten_example.txt</file></path><path><editType>edit</editType><file>tools/compactsnoop.py</file></path><path><editType>edit</editType><file>src/cc/libbpf.c</file></path><path><editType>edit</editType><file>tools/tcpsubnet_example.txt</file></path><path><editType>edit</editType><file>src/cc/api/BPF.cc</file></path><path><editType>edit</editType><file>tests/cc/test_perf_event.cc</file></path><path><editType>edit</editType><file>tools/tcplife.lua</file></path><path><editType>edit</editType><file>src/cc/bcc_elf.h</file></path><path><editType>edit</editType><file>man/man8/filetop.8</file></path><path><editType>edit</editType><file>tests/python/include/folly/tracing/StaticTracepoint-ELF.h</file></path><path><editType>edit</editType><file>tools/cachetop.py</file></path><path><editType>edit</editType><file>tools/tcplife.py</file></path><path><editType>edit</editType><file>docs/reference_guide.md</file></path><path><editType>edit</editType><file>examples/networking/http_filter/http-parse-complete.py</file></path><path><editType>edit</editType><file>src/cc/frontends/b/parser.yy</file></path><path><editType>edit</editType><file>tools/offwaketime.py</file></path><path><editType>edit</editType><file>src/cc/export/helpers.h</file></path><path><editType>edit</editType><file>tools/runqlen_example.txt</file></path><path><editType>edit</editType><file>man/man8/criticalstat.8</file></path><path><editType>edit</editType><file>tools/capable.py</file></path><path><editType>edit</editType><file>tools/criticalstat_example.txt</file></path><path><editType>edit</editType><file>tools/compactsnoop_example.txt</file></path><path><editType>edit</editType><file>tools/inject.py</file></path><path><editType>edit</editType><file>tools/profile.py</file></path><path><editType>edit</editType><file>man/man8/runqlen.8</file></path><path><editType>edit</editType><file>tests/lua/luaunit.lua</file></path><path><editType>edit</editType><file>tools/reset-trace_example.txt</file></path><path><editType>edit</editType><file>man/man8/compactsnoop.8</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/bcc_debug.cc</affectedPath><commitId>9c32c359637df243269ae871f50a6837aee0ceb0</commitId><timestamp>1578609091000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>update usage of MCInstPrinter printInst() for llvm10 (#2696)

</comment><date>2020-01-09 14:31:31 -0800</date><id>9c32c359637df243269ae871f50a6837aee0ceb0</id><msg>update usage of MCInstPrinter printInst() for llvm10 (#2696)</msg><path><editType>edit</editType><file>src/cc/bcc_debug.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>docs/kernel-versions.md</affectedPath><commitId>03e0d26483e6165227b1150a0418664e8bbcdb80</commitId><timestamp>1578609122000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>docs: add BPF trampoline to the kernel features

Signed-off-by: Gary Lin &lt;glin@suse.com&gt;
</comment><date>2020-01-09 14:32:02 -0800</date><id>03e0d26483e6165227b1150a0418664e8bbcdb80</id><msg>docs: add BPF trampoline to the kernel features</msg><path><editType>edit</editType><file>docs/kernel-versions.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>FAQ.txt</affectedPath><commitId>18e0991f7057922b4735de013e1dc06f6260f8f3</commitId><timestamp>1578639231000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Secure Boot:  physical keypress to disable lockdown

Ubuntu 19.10 with secure boot enabled doesn't allow the kernel lockdown to be lifted by echo, even from root:
```
# echo 1 &gt; /proc/sys/kernel/sysrq
# echo x &gt; /proc/sysrq-trigger
```
dmesg says:
```
This sysrq operation is disabled from userspace.
```

I pressed Alt-PrtScr-x and that worked:
```
sysrq: Disabling Secure Boot restrictions
Lifting lockdown
```

I can now run eBPF tools, such as execsnoop-bpfcc.
</comment><date>2020-01-09 22:53:51 -0800</date><id>18e0991f7057922b4735de013e1dc06f6260f8f3</id><msg>Secure Boot:  physical keypress to disable lockdown</msg><path><editType>edit</editType><file>FAQ.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/bcc_btf.cc</affectedPath><affectedPath>src/cc/bcc_btf.h</affectedPath><commitId>670aad2e7fd9e8f21db56ee188cbb4ab010f91c0</commitId><timestamp>1578688061000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>sanitize BTF_KIND_FUNC

The llvm patch https://reviews.llvm.org/D71638 extends
BTF_KIND_FUNC to include scope of the function,
static, global and extern, with btf_type-&gt;info vlen
encoding since vlen is always 0 before the extension.

This patch did the sanitization so that the
bcc with latest llvm can still work on older kernels.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2020-01-10 12:27:41 -0800</date><id>670aad2e7fd9e8f21db56ee188cbb4ab010f91c0</id><msg>sanitize BTF_KIND_FUNC</msg><path><editType>edit</editType><file>src/cc/bcc_btf.h</file></path><path><editType>edit</editType><file>src/cc/bcc_btf.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/libbpf</affectedPath><affectedPath>src/cc/libbpf.c</affectedPath><affectedPath>src/cc/compat/linux/virtual_bpf.h</affectedPath><affectedPath>introspection/bps.c</affectedPath><affectedPath>docs/kernel-versions.md</affectedPath><commitId>071eef6b1571f23be6f0fc03787523cb06b70659</commitId><timestamp>1578691964000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>sync with latest libbpf repo

sync with latest libbpf repo upto the following commit:
  https://github.com/libbpf/libbpf/commit/868739519894fbf2cdb81f1f9222f1b665670096

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2020-01-10 13:32:44 -0800</date><id>071eef6b1571f23be6f0fc03787523cb06b70659</id><msg>sync with latest libbpf repo</msg><path><editType>edit</editType><file>src/cc/libbpf.c</file></path><path><editType>edit</editType><file>src/cc/compat/linux/virtual_bpf.h</file></path><path><editType>edit</editType><file>docs/kernel-versions.md</file></path><path><editType>edit</editType><file>src/cc/libbpf</file></path><path><editType>edit</editType><file>introspection/bps.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>introspection/CMakeLists.txt</affectedPath><commitId>bbafe998921792839d5c09f76705dd30849140ba</commitId><timestamp>1579070098000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Fix CentOS 6 support.

CentOS 6 support was added in #1504 and inadvertently reverted in #1763
leading to builds failing due to undefined reference to "clock_gettime".

To re-add support for building on CentOS 6 and keep binary size down,
only add librt to the list of target_link_libraries to allow
"clock_gettime" to be resolved.
</comment><date>2020-01-14 22:34:58 -0800</date><id>bbafe998921792839d5c09f76705dd30849140ba</id><msg>Fix CentOS 6 support.</msg><path><editType>edit</editType><file>introspection/CMakeLists.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/bpflist.py</affectedPath><commitId>304d95cf48c256cbf5bb27d68193db4f01afb9e8</commitId><timestamp>1579147156000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>bpflist: list only real bpf objects

The regular expression '.*bpf-(\\w+)' used to grep for bpf objects would also
list regular files. For example, a process like `vim /tmp/bpf-woo` would be
listed in the output and the type of the BPF object will be 'woo'. Fix this
by correcting the regular expression.

Signed-off-by: Anton Protopopov &lt;a.s.protopopov@gmail.com&gt;
</comment><date>2020-01-15 19:59:16 -0800</date><id>304d95cf48c256cbf5bb27d68193db4f01afb9e8</id><msg>bpflist: list only real bpf objects</msg><path><editType>edit</editType><file>tools/bpflist.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tools/bpflist.py</affectedPath><commitId>90937ce0237f72ccf18142296a6d5c97cc823791</commitId><timestamp>1579147156000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>bpflist: use smarter print format

BPF object type can be wider than 8 characters, e.g., for the "raw-tracepoint"
type.  Compute the printing format automatically based on the maximum length of
BPF objects to be listed.

Signed-off-by: Anton Protopopov &lt;a.s.protopopov@gmail.com&gt;
</comment><date>2020-01-15 19:59:16 -0800</date><id>90937ce0237f72ccf18142296a6d5c97cc823791</id><msg>bpflist: use smarter print format</msg><path><editType>edit</editType><file>tools/bpflist.py</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/bcc_debug.cc</affectedPath><commitId>4f0c29ea2c072c29e9ed064a1494f333e2378cf3</commitId><timestamp>1579152851000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>fix llvm compilation error

The following changes from llvm 10
  https://github.com/llvm/llvm-project/commit/6fdd6a7b3f696972edc244488f59532d05136a27#diff-37c83c70858df19cb097e36b13b7c112
changed MCDisassembler::getInstruction() signature.
Do the corresponding change in bcc_debug.cc to fix the issue.

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2020-01-15 21:34:11 -0800</date><id>4f0c29ea2c072c29e9ed064a1494f333e2378cf3</id><msg>fix llvm compilation error</msg><path><editType>edit</editType><file>src/cc/bcc_debug.cc</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>docs/kernel-versions.md</affectedPath><commitId>efbed3b678c4ab2e32b41978fc9e4a2c758bce5e</commitId><timestamp>1579246641000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>docs: Remove a redundant space

Signed-off-by: Masanori Misono &lt;m.misono760@gmail.com&gt;
</comment><date>2020-01-16 23:37:21 -0800</date><id>efbed3b678c4ab2e32b41978fc9e4a2c758bce5e</id><msg>docs: Remove a redundant space</msg><path><editType>edit</editType><file>docs/kernel-versions.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/cc/libbpf</affectedPath><affectedPath>src/cc/libbpf.c</affectedPath><affectedPath>src/cc/compat/linux/virtual_bpf.h</affectedPath><affectedPath>docs/kernel-versions.md</affectedPath><commitId>dce8e9daf59f44dec4e3500d39a82a8ce59e43ba</commitId><timestamp>1579331310000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>sync with latest libbpf repo

sync libbpf submodule upto the following commit:
    commit 033ad7ee78e8f266fdd27ee2675090ccf4402f3f
    Author: Andrii Nakryiko &lt;andriin@fb.com&gt;
    Date:   Fri Jan 17 16:22:23 2020 -0800

        sync: latest libbpf changes from kernel

Signed-off-by: Yonghong Song &lt;yhs@fb.com&gt;
</comment><date>2020-01-17 23:08:30 -0800</date><id>dce8e9daf59f44dec4e3500d39a82a8ce59e43ba</id><msg>sync with latest libbpf repo</msg><path><editType>edit</editType><file>src/cc/libbpf</file></path><path><editType>edit</editType><file>src/cc/libbpf.c</file></path><path><editType>edit</editType><file>src/cc/compat/linux/virtual_bpf.h</file></path><path><editType>edit</editType><file>docs/kernel-versions.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>INSTALL.md</affectedPath><commitId>da59f37f14320c0a20300f2c516336ae9ebe8a30</commitId><timestamp>1579492869000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></author><authorEmail>ys114321@gmail.com</authorEmail><comment>Remove  from list of AUR packages
</comment><date>2020-01-19 20:01:09 -0800</date><id>da59f37f14320c0a20300f2c516336ae9ebe8a30</id><msg>Remove  from list of AUR packages</msg><path><editType>edit</editType><file>INSTALL.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/cc/test_c_api.cc</affectedPath><affectedPath>.github/workflows/bcc-test.yml</affectedPath><affectedPath>Dockerfile.tests</affectedPath><affectedPath>tests/cc/test_usdt_probes.cc</affectedPath><commitId>201928af91840304bb8d79383dd98cef140587b2</commitId><timestamp>1579586378000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/dalehamel</absoluteUrl><fullName>Dale Hamel</fullName></author><authorEmail>dale.hamel@srvthe.net</authorEmail><comment>Initial support for using github actions

This uses Github's new Actions framework to build and test bcc
</comment><date>2020-01-21 00:59:38 -0500</date><id>201928af91840304bb8d79383dd98cef140587b2</id><msg>Initial support for using github actions</msg><path><editType>add</editType><file>.github/workflows/bcc-test.yml</file></path><path><editType>edit</editType><file>tests/cc/test_c_api.cc</file></path><path><editType>edit</editType><file>tests/cc/test_usdt_probes.cc</file></path><path><editType>add</editType><file>Dockerfile.tests</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.github/workflows/bcc-test.yml</affectedPath><commitId>7a343d4b1df60417ba97dd29b7ce675b1e3222e5</commitId><timestamp>1579628895000</timestamp><author><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/dalehamel</absoluteUrl><fullName>Dale Hamel</fullName></author><authorEmail>dale.hamel@shopify.com</authorEmail><comment>Debug with tmate
</comment><date>2020-01-21 12:48:15 -0500</date><id>7a343d4b1df60417ba97dd29b7ce675b1e3222e5</id><msg>Debug with tmate</msg><path><editType>edit</editType><file>.github/workflows/bcc-test.yml</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/michal.wesolowski</absoluteUrl><fullName>michal.wesolowski</fullName></culprit><culprit><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit><culprit><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/tdecacqu</absoluteUrl><fullName>tdecacqu</fullName></culprit><culprit><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/yonghong-song</absoluteUrl><fullName>yonghong-song</fullName></culprit><culprit><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/591596081</absoluteUrl><fullName>591596081</fullName></culprit><culprit><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/jmarchan</absoluteUrl><fullName>jmarchan</fullName></culprit><culprit><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/dalehamel</absoluteUrl><fullName>Dale Hamel</fullName></culprit><culprit><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/casparant</absoluteUrl><fullName>Caspar Zhang</fullName></culprit><culprit><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/ethercflow</absoluteUrl><fullName>Zwb</fullName></culprit><culprit><absoluteUrl>https://buildbot.iovisor.org/jenkins/user/jolsa</absoluteUrl><fullName>jolsa</fullName></culprit></matrixRun>