diff options
author | jsbell@chromium.org <jsbell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-12 23:50:36 +0000 |
---|---|---|
committer | jsbell@chromium.org <jsbell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-12 23:50:36 +0000 |
commit | 5dfc996c51552de609ce25b18ed7305d070a9d51 (patch) | |
tree | 0af2322b056ad527526b437108c6ffae192c0e66 /third_party/leveldatabase | |
parent | 51e05a85adc15d89600017ffabab649e179fd726 (diff) | |
download | chromium_src-5dfc996c51552de609ce25b18ed7305d070a9d51.zip chromium_src-5dfc996c51552de609ce25b18ed7305d070a9d51.tar.gz chromium_src-5dfc996c51552de609ce25b18ed7305d070a9d51.tar.bz2 |
Add chrome://tracing entries for leveldb background threads
R=dgrogan@chromium.org
Review URL: https://codereview.chromium.org/13956014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194052 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/leveldatabase')
-rw-r--r-- | third_party/leveldatabase/README.chromium | 1 | ||||
-rw-r--r-- | third_party/leveldatabase/env_chromium.cc | 14 |
2 files changed, 12 insertions, 3 deletions
diff --git a/third_party/leveldatabase/README.chromium b/third_party/leveldatabase/README.chromium index fef5789..80f0e1f 100644 --- a/third_party/leveldatabase/README.chromium +++ b/third_party/leveldatabase/README.chromium @@ -20,3 +20,4 @@ Local Additions: other LevelDB consumers. * ChromiumEnv wraps low-level I/O calls that may be interrupted with a HANDLE_EINTR macro that retries the call. +* TRACE macros/thread name for chrome://tracing diagnostics diff --git a/third_party/leveldatabase/env_chromium.cc b/third_party/leveldatabase/env_chromium.cc index 6ecdfb1..d50fe9e 100644 --- a/third_party/leveldatabase/env_chromium.cc +++ b/third_party/leveldatabase/env_chromium.cc @@ -8,6 +8,7 @@ #include <deque> #include "base/at_exit.h" +#include "base/debug/trace_event.h" #include "base/file_util.h" #include "base/files/file_path.h" #include "base/lazy_instance.h" @@ -671,6 +672,8 @@ class ChromiumEnv : public Env, public UMALogger { MethodID method, int limit); + std::string name_; + private: const int kMaxRenameTimeMillis; // BGThread() is the body of the background thread @@ -699,11 +702,12 @@ class ChromiumEnv : public Env, public UMALogger { }; ChromiumEnv::ChromiumEnv() - : page_size_(::base::SysInfo::VMAllocationGranularity()), + : name_("LevelDBEnv"), + page_size_(::base::SysInfo::VMAllocationGranularity()), bgsignal_(&mu_), started_bgthread_(false), kMaxRenameTimeMillis(1000) { - InitHistograms("LevelDBEnv"); + InitHistograms(name_); } void ChromiumEnv::MakePlatformFileErrorHistogram( @@ -803,6 +807,8 @@ void ChromiumEnv::Schedule(void (*function)(void*), void* arg) { } void ChromiumEnv::BGThread() { + base::PlatformThread::SetName(name_.c_str()); + while (true) { // Wait until there is an item that is ready to run mu_.Acquire(); @@ -815,6 +821,7 @@ void ChromiumEnv::BGThread() { queue_.pop_front(); mu_.Release(); + TRACE_EVENT0("leveldb", "ChromiumEnv::BGThread-Task"); (*function)(arg); } } @@ -826,7 +833,8 @@ void ChromiumEnv::StartThread(void (*function)(void* arg), void* arg) { class IDBEnv : public ChromiumEnv { public: IDBEnv() : ChromiumEnv() { - InitHistograms("LevelDBEnv.IDB"); + name_ = "LevelDBEnv.IDB"; + InitHistograms(name_); } }; |