[Lldb-commits] [PATCH] D27289: Return "thread-pcs" in jstopinfo on Linux/Android.

2017-01-19 Thread Pavel Labath via Phabricator via lldb-commits
labath abandoned this revision.
labath marked 2 inline comments as done.
labath added a comment.

The new version of this patch is in https://reviews.llvm.org/D28880.


https://reviews.llvm.org/D27289



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] r292488 - Avoid unused variable warning when assert is disabled.

2017-01-19 Thread Hafiz Abid Qadeer via lldb-commits
Author: abidh
Date: Thu Jan 19 09:11:01 2017
New Revision: 292488

URL: http://llvm.org/viewvc/llvm-project?rev=292488&view=rev
Log:
Avoid unused variable warning when assert is disabled.


Modified:
lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp

Modified: lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp?rev=292488&r1=292487&r2=292488&view=diff
==
--- lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp (original)
+++ lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp Thu Jan 
19 09:11:01 2017
@@ -576,7 +576,7 @@ void ProcessGDBRemote::BuildDynamicRegis
 uint32_t ret_val =
 opcode_extractor.GetHexBytesAvail(dwarf_opcode_bytes);
 assert(dwarf_opcode_len == ret_val);
-
+UNUSED_IF_ASSERT_DISABLED(ret_val);
 reg_info.dynamic_size_dwarf_expr_bytes = dwarf_opcode_bytes.data();
   }
 }
@@ -4213,7 +4213,7 @@ bool ParseRegisters(XMLNode feature_node
 uint32_t ret_val =
 opcode_extractor.GetHexBytesAvail(dwarf_opcode_bytes);
 assert(dwarf_opcode_len == ret_val);
-
+UNUSED_IF_ASSERT_DISABLED(ret_val);
 reg_info.dynamic_size_dwarf_expr_bytes = dwarf_opcode_bytes.data();
   } else {
 printf("unhandled attribute %s = %s\n", name.data(), value.data());


___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] r292489 - Refactor logging in NativeProcessLinux

2017-01-19 Thread Pavel Labath via lldb-commits
Author: labath
Date: Thu Jan 19 09:26:04 2017
New Revision: 292489

URL: http://llvm.org/viewvc/llvm-project?rev=292489&view=rev
Log:
Refactor logging in NativeProcessLinux

Use the LLDB_LOG macro instead of the more verbose if(log) ... syntax.

I have also consolidated the log channels (everything now goes to the posix
channel, instead of a mixture of posix and lldb), and cleaned up some of the
more convoluted log statements.

Modified:
lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp

Modified: lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp?rev=292489&r1=292488&r2=292489&view=diff
==
--- lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Linux/NativeProcessLinux.cpp Thu Jan 19 
09:26:04 2017
@@ -78,7 +78,7 @@ static bool ProcessVmReadvSupported() {
   static std::once_flag flag;
 
   std::call_once(flag, [] {
-Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
+Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
 
 uint32_t source = 0x47424742;
 uint32_t dest = 0;
@@ -92,16 +92,15 @@ static bool ProcessVmReadvSupported() {
 // value from our own process.
 ssize_t res = process_vm_readv(getpid(), &local, 1, &remote, 1, 0);
 is_supported = (res == sizeof(source) && source == dest);
-if (log) {
-  if (is_supported)
-log->Printf("%s: Detected kernel support for process_vm_readv syscall. 
"
-"Fast memory reads enabled.",
-__FUNCTION__);
-  else
-log->Printf("%s: syscall process_vm_readv failed (error: %s). Fast "
-"memory reads disabled.",
-__FUNCTION__, strerror(errno));
-}
+if (is_supported)
+  LLDB_LOG(log,
+   "Detected kernel support for process_vm_readv syscall. "
+   "Fast memory reads enabled.");
+else
+  LLDB_LOG(log,
+   "syscall process_vm_readv failed (error: {0}). Fast memory "
+   "reads disabled.",
+   strerror(errno));
   });
 
   return is_supported;
@@ -109,33 +108,29 @@ static bool ProcessVmReadvSupported() {
 
 namespace {
 void MaybeLogLaunchInfo(const ProcessLaunchInfo &info) {
-  Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
+  Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PROCESS));
   if (!log)
 return;
 
   if (const FileAction *action = info.GetFileActionForFD(STDIN_FILENO))
-log->Printf("%s: setting STDIN to '%s'", __FUNCTION__,
-action->GetFileSpec().GetCString());
+LLDB_LOG(log, "setting STDIN to '{0}'", action->GetFileSpec());
   else
-log->Printf("%s leaving STDIN as is", __FUNCTION__);
+LLDB_LOG(log, "leaving STDIN as is");
 
   if (const FileAction *action = info.GetFileActionForFD(STDOUT_FILENO))
-log->Printf("%s setting STDOUT to '%s'", __FUNCTION__,
-action->GetFileSpec().GetCString());
+LLDB_LOG(log, "setting STDOUT to '{0}'", action->GetFileSpec());
   else
-log->Printf("%s leaving STDOUT as is", __FUNCTION__);
+LLDB_LOG(log, "leaving STDOUT as is");
 
   if (const FileAction *action = info.GetFileActionForFD(STDERR_FILENO))
-log->Printf("%s setting STDERR to '%s'", __FUNCTION__,
-action->GetFileSpec().GetCString());
+LLDB_LOG(log, "setting STDERR to '{0}'", action->GetFileSpec());
   else
-log->Printf("%s leaving STDERR as is", __FUNCTION__);
+LLDB_LOG(log, "leaving STDERR as is");
 
   int i = 0;
   for (const char **args = info.GetArguments().GetConstArgumentVector(); *args;
++args, ++i)
-log->Printf("%s arg %d: \"%s\"", __FUNCTION__, i,
-*args ? *args : "nullptr");
+LLDB_LOG(log, "arg {0}: '{1}'", i, *args);
 }
 
 void DisplayBytes(StreamString &s, void *bytes, uint32_t count) {
@@ -148,50 +143,50 @@ void DisplayBytes(StreamString &s, void
 }
 
 void PtraceDisplayBytes(int &req, void *data, size_t data_size) {
+  Log *log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(POSIX_LOG_PTRACE |
+ POSIX_LOG_VERBOSE));
+  if (!log)
+return;
   StreamString buf;
-  Log *verbose_log(ProcessPOSIXLog::GetLogIfAllCategoriesSet(
-  POSIX_LOG_PTRACE | POSIX_LOG_VERBOSE));
 
-  if (verbose_log) {
-switch (req) {
-case PTRACE_POKETEXT: {
-  DisplayBytes(buf, &data, 8);
-  verbose_log->Printf("PTRACE_POKETEXT %s", buf.GetData());
-  break;
-}
-case PTRACE_POKEDATA: {
-  DisplayBytes(buf, &data, 8);
-  verbose_log->Printf("PTRACE_POKEDATA %s", buf.GetData());
-  break;
-}
-case PTRACE_POKEUSER: {
-  DisplayBytes(buf, &data, 8);
-  verbose_log->Printf("PTRACE_POKEUSER %s", buf.GetData());
-  break;
-}
-ca

[Lldb-commits] [PATCH] D28804: Provide a substitute to load command of gdb

2017-01-19 Thread Hafiz Abid Qadeer via Phabricator via lldb-commits
abidh updated this revision to Diff 84979.
abidh added a comment.

Changed the name of the option. Added LoadInMemory function to Module and 
ObjectFile class and moved the functionality of writing to memory there. 
Removed part which set the pc.


https://reviews.llvm.org/D28804

Files:
  include/lldb/Core/Module.h
  include/lldb/Symbol/ObjectFile.h
  source/Commands/CommandObjectTarget.cpp
  source/Core/Module.cpp
  source/Symbol/ObjectFile.cpp

Index: source/Symbol/ObjectFile.cpp
===
--- source/Symbol/ObjectFile.cpp
+++ source/Symbol/ObjectFile.cpp
@@ -20,6 +20,9 @@
 #include "lldb/Core/Timer.h"
 #include "lldb/Symbol/ObjectContainer.h"
 #include "lldb/Symbol/SymbolFile.h"
+#include "lldb/Target/Target.h"
+#include "lldb/Target/RegisterContext.h"
+#include "lldb/Target/SectionLoadList.h"
 #include "lldb/Target/Process.h"
 #include "lldb/lldb-private.h"
 
@@ -648,3 +651,31 @@
 file_name.GetCString());
   return ConstString(ss.GetString());
 }
+
+Error ObjectFile::LoadInMemory(Target &target) {
+  Error error;
+  ProcessSP process = target.CalculateProcess();
+  if (!process)
+return Error("No Process");
+
+  SectionList *section_list = GetSectionList();
+  if (!section_list)
+  return Error("No section in object file");
+  size_t section_count = section_list->GetNumSections(0);
+  for (size_t i = 0; i < section_count; ++i) {
+SectionSP section_sp = section_list->GetSectionAtIndex(i);
+addr_t addr = target.GetSectionLoadList().GetSectionLoadAddress(section_sp);
+if (addr != LLDB_INVALID_ADDRESS) {
+  DataExtractor section_data;
+  // We can skip sections like bss
+  if (section_sp->GetFileSize() == 0)
+continue;
+  section_sp->GetSectionData(section_data);
+  lldb::offset_t written = process->WriteMemory(
+  addr, section_data.GetDataStart(), section_data.GetByteSize(), error);
+  if (written != section_data.GetByteSize())
+return error;
+}
+  }
+  return error;
+}
Index: source/Core/Module.cpp
===
--- source/Core/Module.cpp
+++ source/Core/Module.cpp
@@ -1664,3 +1664,7 @@
 
   return false;
 }
+
+Error Module::LoadInMemory(Target &target) {
+  return m_objfile_sp->LoadInMemory(target);
+}
Index: source/Commands/CommandObjectTarget.cpp
===
--- source/Commands/CommandObjectTarget.cpp
+++ source/Commands/CommandObjectTarget.cpp
@@ -2567,13 +2567,18 @@
 m_option_group(),
 m_file_option(LLDB_OPT_SET_1, false, "file", 'f', 0, eArgTypeName,
   "Fullpath or basename for module to load.", ""),
+m_load_option(LLDB_OPT_SET_1, false, "load", 'l',
+  "Write file contents to the memory and set PC to its"
+  "entry address.",
+  false, true),
 m_slide_option(LLDB_OPT_SET_1, false, "slide", 's', 0, eArgTypeOffset,
"Set the load address for all sections to be the "
"virtual address in the file plus the offset.",
0) {
 m_option_group.Append(&m_uuid_option_group, LLDB_OPT_SET_ALL,
   LLDB_OPT_SET_1);
 m_option_group.Append(&m_file_option, LLDB_OPT_SET_ALL, LLDB_OPT_SET_1);
+m_option_group.Append(&m_load_option, LLDB_OPT_SET_ALL, LLDB_OPT_SET_1);
 m_option_group.Append(&m_slide_option, LLDB_OPT_SET_ALL, LLDB_OPT_SET_1);
 m_option_group.Finalize();
   }
@@ -2585,6 +2590,7 @@
 protected:
   bool DoExecute(Args &args, CommandReturnObject &result) override {
 Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
+const bool load = m_load_option.GetOptionValue().GetCurrentValue();
 if (target == nullptr) {
   result.AppendError("invalid target, create a debug target using the "
  "'target create' command");
@@ -2594,6 +2600,21 @@
   const size_t argc = args.GetArgumentCount();
   ModuleSpec module_spec;
   bool search_using_module_spec = false;
+
+  // Allow "load" option to work without --file or --uuid
+  // option.
+  if (load) {
+if (!m_file_option.GetOptionValue().OptionWasSet() &&
+!m_uuid_option_group.GetOptionValue().OptionWasSet()) {
+  ModuleList &module_list = target->GetImages();
+  if (module_list.GetSize() == 1) {
+search_using_module_spec = true;
+module_spec.GetFileSpec() =
+module_list.GetModuleAtIndex(0)->GetFileSpec();
+  }
+}
+  }
+
   if (m_file_option.GetOptionValue().OptionWasSet()) {
 search_using_module_spec = true;
 const char *arg_cstr = m_file_option.GetOptionValue().GetCurrentValue();
@@ -2721,6 +2742,13 @@
   if (process)
 process->Flush();
 }
+   

[Lldb-commits] [PATCH] D28804: Provide a substitute to load command of gdb

2017-01-19 Thread Greg Clayton via Phabricator via lldb-commits
clayborg accepted this revision.
clayborg added a comment.
This revision is now accepted and ready to land.

Very nice!


https://reviews.llvm.org/D28804



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] r292499 - Provide a substitute to load command of gdb.

2017-01-19 Thread Hafiz Abid Qadeer via lldb-commits
Author: abidh
Date: Thu Jan 19 11:32:50 2017
New Revision: 292499

URL: http://llvm.org/viewvc/llvm-project?rev=292499&view=rev
Log:
Provide a substitute to load command of gdb.

For bare-metal targets, lldb was missing a command like 'load' in gdb
which can be used to create executable image on the target. This was
discussed in
http://lists.llvm.org/pipermail/lldb-dev/2016-December/011752.html

This commits adds an option to "target module load" command to provide
that functionality. It does not set the PC to entry address which will
be done separately.

Reviewed in https://reviews.llvm.org/D28804


Modified:
lldb/trunk/include/lldb/Core/Module.h
lldb/trunk/include/lldb/Symbol/ObjectFile.h
lldb/trunk/source/Commands/CommandObjectTarget.cpp
lldb/trunk/source/Core/Module.cpp
lldb/trunk/source/Symbol/ObjectFile.cpp

Modified: lldb/trunk/include/lldb/Core/Module.h
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/Module.h?rev=292499&r1=292498&r2=292499&view=diff
==
--- lldb/trunk/include/lldb/Core/Module.h (original)
+++ lldb/trunk/include/lldb/Core/Module.h Thu Jan 19 11:32:50 2017
@@ -962,6 +962,20 @@ public:
   bool RemapSourceFile(llvm::StringRef path, std::string &new_path) const;
   bool RemapSourceFile(const char *, std::string &) const = delete;
 
+  //--
+  /// Loads this module to memory.
+  ///
+  /// Loads the bits needed to create an executable image to the memory.
+  /// It is useful with bare-metal targets where target does not have the
+  /// ability to start a process itself.
+  ///
+  /// @param[in] target
+  /// Target where to load the module.
+  ///
+  /// @return
+  //--
+  Error LoadInMemory(Target &target);
+
   //--
   /// @class LookupInfo Module.h "lldb/Core/Module.h"
   /// @brief A class that encapsulates name lookup information.

Modified: lldb/trunk/include/lldb/Symbol/ObjectFile.h
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Symbol/ObjectFile.h?rev=292499&r1=292498&r2=292499&view=diff
==
--- lldb/trunk/include/lldb/Symbol/ObjectFile.h (original)
+++ lldb/trunk/include/lldb/Symbol/ObjectFile.h Thu Jan 19 11:32:50 2017
@@ -774,6 +774,20 @@ public:
   llvm::StringRef name,
   lldb::SymbolType symbol_type_hint = lldb::eSymbolTypeUndefined);
 
+  //--
+  /// Loads this objfile to memory.
+  ///
+  /// Loads the bits needed to create an executable image to the memory.
+  /// It is useful with bare-metal targets where target does not have the
+  /// ability to start a process itself.
+  ///
+  /// @param[in] target
+  /// Target where to load.
+  ///
+  /// @return
+  //--
+  virtual Error LoadInMemory(Target &target);
+
 protected:
   //--
   // Member variables.

Modified: lldb/trunk/source/Commands/CommandObjectTarget.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectTarget.cpp?rev=292499&r1=292498&r2=292499&view=diff
==
--- lldb/trunk/source/Commands/CommandObjectTarget.cpp (original)
+++ lldb/trunk/source/Commands/CommandObjectTarget.cpp Thu Jan 19 11:32:50 2017
@@ -2567,6 +2567,9 @@ public:
 m_option_group(),
 m_file_option(LLDB_OPT_SET_1, false, "file", 'f', 0, eArgTypeName,
   "Fullpath or basename for module to load.", ""),
+m_load_option(LLDB_OPT_SET_1, false, "load", 'l',
+  "Write file contents to the memory.",
+  false, true),
 m_slide_option(LLDB_OPT_SET_1, false, "slide", 's', 0, eArgTypeOffset,
"Set the load address for all sections to be the "
"virtual address in the file plus the offset.",
@@ -2574,6 +2577,7 @@ public:
 m_option_group.Append(&m_uuid_option_group, LLDB_OPT_SET_ALL,
   LLDB_OPT_SET_1);
 m_option_group.Append(&m_file_option, LLDB_OPT_SET_ALL, LLDB_OPT_SET_1);
+m_option_group.Append(&m_load_option, LLDB_OPT_SET_ALL, LLDB_OPT_SET_1);
 m_option_group.Append(&m_slide_option, LLDB_OPT_SET_ALL, LLDB_OPT_SET_1);
 m_option_group.Finalize();
   }
@@ -2585,6 +2589,7 @@ public:
 protected:
   bool DoExecute(Args &args, CommandReturnObject &result) override {
 Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
+const bool load = m_load_option.GetOptionValue().GetCurrentValue();
 if (target == nullptr) {
   result.AppendError("invali

[Lldb-commits] [PATCH] D28804: Provide a substitute to load command of gdb

2017-01-19 Thread Hafiz Abid Qadeer via Phabricator via lldb-commits
abidh closed this revision.
abidh added a comment.

Committed in 292499. Removed this bit "set PC to its entry address." before 
committing as it is not being done now.


https://reviews.llvm.org/D28804



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] Buildbot numbers for the week of 01/01/2017 - 01/07/2017

2017-01-19 Thread Galina Kistanova via lldb-commits
Hello everyone,

Below are some buildbot numbers for the week of 01/01/2017 - 01/07/2017.

Please see the same data in attached csv files:

The longest time each builder was red during the last week;
"Status change ratio" by active builder (percent of builds that changed the
builder status from greed to red or from red to green);
Count of commits by project;
Number of completed builds, failed builds and average build time for
successful builds per active builder;
Average waiting time for a revision to get build result per active builder
(response time).

Thanks

Galina


The longest time each builder was red during the last week:

buildername | was_red
+-
 clang-x86-windows-msvc2015 | 25:35:03
 libcxx-libcxxabi-x86_64-linux-debian   | 22:42:33
 sanitizer-x86_64-linux-fast| 20:33:50
 sanitizer-x86_64-linux-bootstrap   | 18:10:29
 lldb-x86_64-ubuntu-14.04-buildserver   | 13:05:04
 perf-x86_64-penryn-O3-polly-before-vectorizer-detect-only  | 12:47:45
 lldb-x86_64-ubuntu-14.04-android   | 12:29:26
 lldb-x86_64-ubuntu-14.04-cmake | 12:13:06
 lldb-amd64-ninja-freebsd11 | 12:05:28
 sanitizer-x86_64-linux | 10:15:39
 perf-x86_64-penryn-O3-polly-fast   | 08:39:44
 perf-x86_64-penryn-O3-polly-unprofitable   | 08:25:30
 clang-cmake-armv7-a15-selfhost-neon| 08:24:46
 clang-native-arm-lnt   | 08:21:09
 clang-ppc64le-linux-lnt| 08:20:56
 perf-x86_64-penryn-O3  | 08:20:16
 perf-x86_64-penryn-O3-polly-parallel-fast  | 08:16:14
 sanitizer-ppc64be-linux| 08:09:31
 clang-ppc64be-linux-lnt| 07:47:31
 perf-x86_64-penryn-O3-polly-before-vectorizer-unprofitable | 07:37:23
 clang-cmake-aarch64-quick  | 07:31:34
 clang-cmake-aarch64-full   | 07:21:20
 clang-cmake-aarch64-lld| 06:58:21
 clang-ppc64le-linux-multistage | 06:04:07
 perf-x86_64-penryn-O3-polly| 05:50:18
 clang-cuda-build   | 05:42:18
 clang-cmake-thumbv7-a15-full-sh| 04:43:57
 clang-x64-ninja-win7   | 04:37:48
 lld-x86_64-win7| 04:18:03
 clang-bpf-build| 04:16:21
 clang-x86_64-linux-selfhost-modules-2  | 04:08:21
 clang-x86_64-linux-selfhost-modules| 04:03:47
 sanitizer-ppc64le-linux| 03:43:46
 sanitizer-windows  | 03:39:27
 lldb-windows7-android  | 03:32:00
 clang-lld-x86_64-2stage| 03:30:16
 clang-cmake-armv7-a15-selfhost | 03:27:20
 clang-3stage-ubuntu| 03:14:45
 clang-with-lto-ubuntu  | 03:13:44
 lldb-amd64-ninja-netbsd7   | 03:09:37
 sanitizer-x86_64-linux-fuzzer  | 02:53:36
 clang-cmake-armv7-a15-full | 02:47:23
 clang-s390x-linux  | 02:38:53
 clang-x86_64-debian-fast   | 02:22:52
 sanitizer-x86_64-linux-autoconf| 02:21:46
 clang-cmake-armv7-a15  | 02:21:34
 libcxx-libcxxabi-singlethreaded-x86_64-linux-debian| 02:17:37
 libcxx-libcxxabi-libunwind-x86_64-linux-debian | 02:17:24
 llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast   | 02:06:15
 clang-ppc64be-linux-multistage | 02:05:41
 polly-amd64-linux  | 02:01:35
 clang-cmake-aarch64-39vma  | 01:59:50
 clang-cmake-thumbv7-a15| 01:59:47
 clang-x86_64-linux-abi-test| 01:57:30
 libcxx-libcxxabi-x86_64-linux-ubuntu-gcc49-cxx11   | 01:53:02
 clang-ppc64le-linux| 01:43:38
 clang-ppc64be-linux| 01:43:05
 clang-cmake-aarch64-42vma  | 01:42:44
 llvm-avr-linux | 01:35:32
 libcxx-libcxxabi-libunwind-ar

[Lldb-commits] Buildbot numbers for the week of 01/08/2017 - 01/14/2017

2017-01-19 Thread Galina Kistanova via lldb-commits
Hello everyone,

Below are some buildbot numbers for the last week of 01/08/2017 -
01/14/2017.

Please see the same data in attached csv files:

The longest time each builder was red during the last week;
"Status change ratio" by active builder (percent of builds that changed the
builder status from greed to red or from red to green);
Count of commits by project;
Number of completed builds, failed builds and average build time for
successful builds per active builder;
Average waiting time for a revision to get build result per active builder
(response time).

Thanks

Galina


The longest time each builder was red during the last week:

buildername | was_red
+-
 clang-ppc64le-linux-multistage | 95:35:45
 libcxx-libcxxabi-libunwind-x86_64-linux-debian | 57:47:59
 libcxx-libcxxabi-x86_64-linux-debian   | 54:04:34
 libcxx-libcxxabi-singlethreaded-x86_64-linux-debian| 53:50:01
 libcxx-libcxxabi-x86_64-linux-debian-noexceptions  | 53:07:16
 polly-arm-linux| 52:52:43
 llvm-mips-linux| 45:18:31
 sanitizer-windows  | 41:58:29
 sanitizer-ppc64be-linux| 24:58:09
 clang-ppc64be-linux| 24:56:43
 clang-ppc64le-linux| 24:06:06
 sanitizer-x86_64-linux | 24:00:52
 clang-cuda-build   | 22:28:10
 sanitizer-x86_64-linux-fast| 20:48:03
 sanitizer-x86_64-linux-autoconf| 19:01:54
 sanitizer-x86_64-linux-bootstrap   | 16:33:09
 lldb-windows7-android  | 14:30:25
 perf-x86_64-penryn-O3-polly-before-vectorizer  | 14:27:40
 clang-native-aarch64-full  | 12:55:24
 clang-lld-x86_64-2stage| 10:34:57
 clang-cmake-aarch64-42vma  | 09:21:42
 clang-with-lto-ubuntu  | 08:47:14
 clang-with-thin-lto-ubuntu | 08:45:48
 clang-cmake-aarch64-full   | 07:12:49
 perf-x86_64-penryn-O3-polly| 07:05:43
 perf-x86_64-penryn-O3-polly-fast   | 07:05:11
 perf-x86_64-penryn-O3  | 07:01:52
 clang-3stage-ubuntu| 06:40:51
 clang-cmake-armv7-a15-full | 06:06:37
 lld-x86_64-win7| 05:45:50
 lld-x86_64-freebsd | 05:39:43
 lld-x86_64-darwin13| 05:39:39
 clang-x86-windows-msvc2015 | 04:28:04
 clang-x64-ninja-win7   | 04:27:58
 libomp-clang-ppc64le-linux-debian  | 04:26:10
 perf-x86_64-penryn-O3-polly-before-vectorizer-unprofitable | 04:12:51
 perf-x86_64-penryn-O3-polly-parallel-fast  | 04:04:10
 clang-hexagon-elf  | 03:57:47
 lldb-x86_64-ubuntu-14.04-android   | 03:44:24
 llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast   | 03:40:48
 sanitizer-ppc64le-linux| 03:38:42
 clang-cmake-armv7-a15-selfhost-neon| 03:03:49
 clang-x86_64-debian-fast   | 02:47:49
 perf-x86_64-penryn-O3-polly-unprofitable   | 02:45:19
 lldb-x86_64-ubuntu-14.04-buildserver   | 02:23:53
 clang-x86_64-linux-abi-test| 02:21:18
 clang-ppc64le-linux-lnt| 02:20:23
 libcxx-libcxxabi-x86_64-linux-ubuntu-cxx03 | 02:07:34
 lldb-amd64-ninja-netbsd7   | 02:05:15
 lldb-x86_64-ubuntu-14.04-cmake | 01:44:11
 llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast | 01:42:15
 lldb-x86_64-darwin-13.4| 01:40:07
 llvm-avr-linux | 01:37:49
 clang-s390x-linux  | 01:35:04
 polly-amd64-linux  | 01:23:08
 libcxx-libcxxabi-libunwind-arm-linux   | 01:21:15
 libcxx-libcxxabi-libunwind-arm-linux-noexceptions  | 01:21:11
 lldb-amd64-ninja-freebsd11 | 01:19:58
 clang-cmake-armv7-a15-selfhost | 01:19:09
 clang-cmake-armv7-a15