From 9499a8e80a57a63359d7db667445c387e36fc4c6 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 5 Nov 2008 14:09:04 -0800 Subject: [PATCH] rewrite debug macros, infrastructure --- src/Makefile.am | 1 + src/client/Client.cc | 4 +- src/client/SyntheticClient.cc | 5 +- src/cmon.cc | 2 +- src/common/Mutex.cc | 2 + src/common/Timer.cc | 5 +- src/common/debug.cc | 101 ++++++++++++++++++++++++++++++++ src/common/debug.h | 86 +++++++++++++++++++++++++++ src/common/lockdep.cc | 2 +- src/config.cc | 94 ++--------------------------- src/config.h | 56 ++---------------- src/cosd.cc | 2 +- src/ebofs/Allocator.cc | 5 +- src/ebofs/BlockDevice.cc | 19 +++--- src/ebofs/BufferCache.cc | 22 +++---- src/ebofs/Ebofs.cc | 5 +- src/ebofs/Table.h | 2 +- src/ebofs/nodes.h | 2 +- src/include/frag.h | 2 +- src/include/lru.h | 2 +- src/mds/AnchorClient.cc | 5 +- src/mds/AnchorServer.cc | 5 +- src/mds/CDentry.cc | 6 +- src/mds/CDir.cc | 5 +- src/mds/CInode.cc | 5 +- src/mds/CacheObject.cc | 6 +- src/mds/InoTable.cc | 4 +- src/mds/Locker.cc | 7 ++- src/mds/MDBalancer.cc | 6 +- src/mds/MDCache.cc | 8 ++- src/mds/MDLog.cc | 7 ++- src/mds/MDS.cc | 9 ++- src/mds/MDSTable.cc | 6 +- src/mds/MDSTableClient.cc | 5 +- src/mds/MDSTableServer.cc | 5 +- src/mds/Migrator.cc | 6 +- src/mds/Server.cc | 5 +- src/mds/SessionMap.cc | 5 +- src/mds/SnapServer.cc | 5 +- src/mds/journal.cc | 14 ++--- src/mds/snap.cc | 13 ++-- src/mon/ClientMonitor.cc | 12 +++- src/mon/Elector.cc | 11 +++- src/mon/MDSMonitor.cc | 11 +++- src/mon/MonClient.cc | 4 +- src/mon/Monitor.cc | 17 +++++- src/mon/MonitorStore.cc | 9 ++- src/mon/OSDMonitor.cc | 11 +++- src/mon/PGMonitor.cc | 12 +++- src/mon/Paxos.cc | 17 +++++- src/mon/Paxos.h | 2 +- src/mon/PaxosService.cc | 11 +++- src/msg/Message.cc | 1 - src/msg/SimpleMessenger.cc | 21 ++++--- src/msg/SimpleMessenger.h | 2 + src/os/FileJournal.cc | 6 +- src/os/FileStore.cc | 5 +- src/os/JournalingObjectStore.cc | 6 +- src/osd/OSD.cc | 11 +++- src/osd/OSDMap.cc | 2 - src/osd/PG.cc | 7 ++- src/osd/RAID4PG.cc | 11 +++- src/osd/ReplicatedPG.cc | 11 +++- src/osdc/Filer.cc | 4 +- src/osdc/Journaler.cc | 5 +- src/osdc/ObjectCacher.cc | 10 ++-- src/osdc/Objecter.cc | 5 +- 67 files changed, 496 insertions(+), 284 deletions(-) create mode 100644 src/common/debug.cc create mode 100644 src/common/debug.h diff --git a/src/Makefile.am b/src/Makefile.am index dbb11742514c7..7bf73e505476d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -172,6 +172,7 @@ libcommon_a_SOURCES = \ common/Finisher.cc \ common/sctp_crc32.c\ common/assert.cc \ + common/debug.cc \ mon/MonMap.cc \ mon/MonClient.cc \ osd/OSDMap.cc \ diff --git a/src/client/Client.cc b/src/client/Client.cc index 6b72b0c6e6b54..9b165a1cd2fce 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -66,7 +66,9 @@ using namespace std; #include "config.h" -#define dout(l) if (l<=g_conf.debug || l <= g_conf.debug_client) *_dout << dbeginl << g_clock.now() << " client" << whoami /*<< "." << pthread_self() */ << " " +#define DOUT_SUBSYS client +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "client" << whoami << " " #define tout if (g_conf.client_trace) traceout diff --git a/src/client/SyntheticClient.cc b/src/client/SyntheticClient.cc index bb139faafe219..e2084e0b3f0b1 100644 --- a/src/client/SyntheticClient.cc +++ b/src/client/SyntheticClient.cc @@ -37,8 +37,9 @@ using namespace std; #include "config.h" -#define dout(l) if (l<=g_conf.debug || l<=g_conf.debug_client) *_dout << dbeginl << g_clock.now() << " synthetic" << (this->whoami >= 0 ? this->whoami:client->get_nodeid()) << " " -#define derr(l) if (l<=g_conf.debug || l<=g_conf.debug_client) *_derr << dbeginl << g_clock.now() << " synthetic" << (this->whoami >= 0 ? this->whoami:client->get_nodeid()) << " " +#define DOUT_SUBSYS client +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "client" << whoami << " " // traces //void trace_include(SyntheticClient *syn, Client *cl, string& prefix); diff --git a/src/cmon.cc b/src/cmon.cc index d8f1a42ed2e40..fed5bfbed64fd 100644 --- a/src/cmon.cc +++ b/src/cmon.cc @@ -100,7 +100,7 @@ int main(int argc, const char **argv) if (err < 0) return 1; - create_courtesy_output_symlink("mon", whoami); + _dout_create_courtesy_output_symlink("mon", whoami); // start monitor Messenger *m = rank.register_entity(entity_name_t::MON(whoami)); diff --git a/src/common/Mutex.cc b/src/common/Mutex.cc index dd60d07defd41..13d3ee8dff8eb 100644 --- a/src/common/Mutex.cc +++ b/src/common/Mutex.cc @@ -13,6 +13,8 @@ int g_lockdep = 0; #include "config.h" +#undef dout +#undef derr #define dout(l) if (l<=g_conf.debug_lockdep) *_dout << g_clock.now() << " " << pthread_self() << " lockdep: " #define derr(l) if (l<=g_conf.debug_lockdep) *_derr << g_clock.now() << " " << pthread_self() << " lockdep: " diff --git a/src/common/Timer.cc b/src/common/Timer.cc index d63687d997ea1..e3ae660439196 100644 --- a/src/common/Timer.cc +++ b/src/common/Timer.cc @@ -21,8 +21,9 @@ #include "config.h" #include "include/Context.h" -#define dout(x) if (x <= g_conf.debug_timer) *_dout << dbeginl << g_clock.now() << " TIMER " -#define derr(x) if (x <= g_conf.debug_timer) *_derr << dbeginl << g_clock.now() << " TIMER " +#define DOUT_SUBSYS timer +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << " TIMER " #define DBL 10 diff --git a/src/common/debug.cc b/src/common/debug.cc new file mode 100644 index 0000000000000..424b384f176fd --- /dev/null +++ b/src/common/debug.cc @@ -0,0 +1,101 @@ + +#include "include/types.h" +#include "config.h" +#include "debug.h" +#include "Mutex.h" +#include "Clock.h" + +#include +#include +using namespace std; + +// debug output +Mutex _dout_lock("_dout_lock", false, false /* no lockdep */); +ostream *_dout = &std::cout; +ostream *_derr = &std::cerr; +char _dout_file[100] = {0}; +char _dout_dir[1000] = {0}; +char _dout_symlink_path[1000] = {0}; +bool _dout_is_open = false; +bool _dout_need_open = true; + +void _dout_open_log() +{ + char fn[80]; + + // logging enabled? + if (!(g_conf.dout_dir && g_conf.file_logs)) { + _dout_need_open = false; + return; + } + + // calculate log dir, filename, etc. + if (!_dout_file[0]) { + char hostname[80]; + gethostname(hostname, 79); + + if (g_conf.dout_dir[0] == '/') + strcpy(_dout_dir, g_conf.dout_dir); + else { + getcwd(_dout_dir, 100); + strcat(_dout_dir, "/"); + strcat(_dout_dir, g_conf.dout_dir); + } + sprintf(_dout_file, "%s.%d", hostname, getpid()); + } + + if (_dout && _dout_is_open) + delete _dout; + + sprintf(fn, "%s/%s", _dout_dir, _dout_file); + std::ofstream *out = new std::ofstream(fn, ios::trunc|ios::out); + if (!out->is_open()) { + std::cerr << "error opening output file " << fn << std::endl; + delete out; + _dout = &std::cout; + } else { + _dout_need_open = false; + _dout_is_open = true; + _dout = out; + *_dout << g_clock.now() << " --- opened log " << fn << " ---" << std::endl; + } +} + +int _dout_rename_output_file() // after calling daemon() +{ + if (g_conf.dout_dir && g_conf.file_logs) { + char oldfn[100]; + char newfn[100]; + char hostname[80]; + gethostname(hostname, 79); + + sprintf(oldfn, "%s/%s", _dout_dir, _dout_file); + sprintf(newfn, "%s/%s.%d", _dout_dir, hostname, getpid()); + dout(0) << "---- renamed log " << oldfn << " -> " << newfn << " ----" << dendl; + ::rename(oldfn, newfn); + sprintf(_dout_file, "%s.%d", hostname, getpid()); + + if (_dout_symlink_path[0]) { + ::unlink(_dout_symlink_path); + ::symlink(_dout_file, _dout_symlink_path); + } + } + return 0; +} + +int _dout_create_courtesy_output_symlink(const char *type, int n) +{ + if (g_conf.dout_dir && g_conf.file_logs) { + if (_dout_need_open) + _dout_open_log(); + + sprintf(_dout_symlink_path, "%s/%s%d", _dout_dir, type, n); + ::unlink(_dout_symlink_path); + ::symlink(_dout_file, _dout_symlink_path); + dout(0) << "---- creating symlink " << _dout_symlink_path + << " -> " << _dout_file << " ----" << dendl; + } + return 0; +} + + diff --git a/src/common/debug.h b/src/common/debug.h new file mode 100644 index 0000000000000..ae857ce14f7a0 --- /dev/null +++ b/src/common/debug.h @@ -0,0 +1,86 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab + +#ifndef __CEPH_DEBUG_H +#define __CEPH_DEBUG_H + +#include "include/assert.h" +#include "Mutex.h" +#include "Clock.h" + +#include +using std::ostream; + +// the streams +extern ostream *_dout; +extern ostream *_derr; + +extern Mutex _dout_lock; + +extern bool _dout_need_open; +extern char _dout_file[100]; +extern char _dout_dir[1000]; +extern char _dout_symlink_path[1000]; +extern bool _dout_is_open; + +extern void _dout_open_log(); +extern int _dout_rename_output_file(); // after calling daemon() +extern int _dout_create_courtesy_output_symlink(const char *type, int n); + + +static inline void _dout_begin_line() { + _dout_lock.Lock(); + if (_dout_need_open) + _dout_open_log(); + *_dout << g_clock.now() << " "; +} +static void _dout_begin_line_static() { + _dout_begin_line(); +} + +static inline void _dout_end_line() { + _dout_lock.Unlock(); +} + +struct _dbeginl_t { _dbeginl_t(int) {} }; +static const _dbeginl_t dbeginl = 0; +inline ostream& operator<<(ostream& out, _dbeginl_t) { + _dout_begin_line(); + return out; +} + +struct _dbeginlstatic_t { _dbeginlstatic_t(int) {} }; +static const _dbeginlstatic_t dbeginlstatic = 0; +inline ostream& operator<<(ostream& out, _dbeginlstatic_t) { + _dout_begin_line_static(); + return out; +} + +// intentionally conflict with endl +class _bad_endl_use_dendl_t { public: _bad_endl_use_dendl_t(int) {} }; +static const _bad_endl_use_dendl_t endl = 0; +inline ostream& operator<<(ostream& out, _bad_endl_use_dendl_t) { + assert(0 && "you are using the wrong endl.. use std::endl or dendl"); + return out; +} + + +// generic macros +#define generic_dout(x) do { if ((x) <= g_conf.debug) { *_dout << dbeginl +#define generic_derr(x) do { if ((x) <= g_conf.debug) { *_derr << dbeginl + +#define pdout(x,p) do { if ((x) <= (p)) { *_dout << dbeginl + +#define debug_DOUT_SUBSYS debug +#define dout_prefix *_dout << dbeginlstatic +#define DOUT_CONDVAR(x) g_conf.debug_ ## x +#define XDOUT_CONDVAR(x) DOUT_CONDVAR(x) +#define DOUT_COND(l) l <= XDOUT_CONDVAR(DOUT_SUBSYS) + +#define dout(l) do { if (DOUT_COND(l)) { dout_prefix +#define derr(l) do { if (DOUT_COND(l)) { dout_prefix + +#define dendl std::endl; _dout_end_line(); } } while (0) + + +#endif diff --git a/src/common/lockdep.cc b/src/common/lockdep.cc index db9069968920f..2c5f017421180 100644 --- a/src/common/lockdep.cc +++ b/src/common/lockdep.cc @@ -11,8 +11,8 @@ int g_lockdep = 0; #include "config.h" +#undef dout #define dout(l) if (l<=g_conf.debug_lockdep) *_dout << g_clock.now() << " " << pthread_self() << " lockdep: " -#define derr(l) if (l<=g_conf.debug_lockdep) *_derr << g_clock.now() << " " << pthread_self() << " lockdep: " pthread_mutex_t lockdep_mutex = PTHREAD_MUTEX_INITIALIZER; diff --git a/src/config.cc b/src/config.cc index 8200672d85556..d3c1f113f0823 100644 --- a/src/config.cc +++ b/src/config.cc @@ -16,6 +16,8 @@ #include "config.h" #include "include/types.h" +#include "common/Clock.h" + #include #include #include @@ -80,16 +82,6 @@ int buffer::list::write_file(const char *fn) -// debug output -Mutex _dout_lock("_dout_lock", false, false /* no lockdep */); -ostream *_dout = &std::cout; -ostream *_derr = &std::cerr; -char _dout_file[100] = {0}; -char _dout_dir[1000] = {0}; -char _dout_symlink_path[1000] = {0}; -bool _dout_is_open; -bool _dout_need_open; - // page size crap, see page.h int _get_bits_of(int v) { int n = 0; @@ -1169,87 +1161,13 @@ void parse_config_options(std::vector& args, bool open) } } - // redirect dout? - /* - if (g_conf.dout_dir) { - struct stat st; - int r = ::stat(g_conf.dout_dir, &st); - if (r != 0) - g_conf.dout_dir = 0; - } - */ - if (g_conf.dout_dir && g_conf.file_logs && open) { - char hostname[80]; - gethostname(hostname, 79); - - if (g_conf.dout_dir[0] == '/') - strcpy(_dout_dir, g_conf.dout_dir); - else { - getcwd(_dout_dir, 100); - strcat(_dout_dir, "/"); - strcat(_dout_dir, g_conf.dout_dir); - } - sprintf(_dout_file, "%s.%d", hostname, getpid()); - - _dout_is_open = false; - _dout_need_open = true; - - open_dout_file(); - } - + // open log file? + if (open) + _dout_open_log(); + signal(SIGHUP, sighup_handler); args = nargs; } -void open_dout_file() -{ - char fn[80]; - if (_dout && _dout_is_open) { - delete _dout; - } - - sprintf(fn, "%s/%s", _dout_dir, _dout_file); - std::ofstream *out = new std::ofstream(fn, ios::trunc|ios::out); - if (!out->is_open()) { - std::cerr << "error opening output file " << fn << std::endl; - delete out; - } else { - _dout_need_open = false; - _dout_is_open = true; - _dout = out; - } -} - -int rename_output_file() // after calling daemon() -{ - if (g_conf.dout_dir) { - char oldfn[100]; - char newfn[100]; - char hostname[80]; - gethostname(hostname, 79); - - sprintf(oldfn, "%s/%s", _dout_dir, _dout_file); - sprintf(newfn, "%s/%s.%d", _dout_dir, hostname, getpid()); - ::rename(oldfn, newfn); - sprintf(_dout_file, "%s.%d", hostname, getpid()); - - if (_dout_symlink_path[0]) { - ::unlink(_dout_symlink_path); - ::symlink(_dout_file, _dout_symlink_path); - } - } - return 0; -} - -int create_courtesy_output_symlink(const char *type, int n) -{ - if (g_conf.dout_dir) { - sprintf(_dout_symlink_path, "%s/%s%d", _dout_dir, type, n); - ::unlink(_dout_symlink_path); - ::symlink(_dout_file, _dout_symlink_path); - } - return 0; -} - diff --git a/src/config.h b/src/config.h index 6da73885caed2..04175d507d43c 100644 --- a/src/config.h +++ b/src/config.h @@ -348,6 +348,8 @@ extern md_config_t g_conf; extern md_config_t g_debug_after_conf; + + /** * command line / environment argument parsing */ @@ -362,60 +364,10 @@ void parse_config_option_string(string& s); extern bool parse_ip_port(const char *s, entity_addr_t& addr); -int create_courtesy_output_symlink(const char *type, int n); -int rename_output_file(); -/** - * for cleaner output, bracket each line with - * dbeginl (in the dout macro) and dendl (in place of endl). - */ -extern Mutex _dout_lock; -struct _dbeginl_t { _dbeginl_t(int) {} }; -struct _dendl_t { _dendl_t(int) {} }; -static const _dbeginl_t dbeginl = 0; -static const _dendl_t dendl = 0; - -// intentionally conflict with endl -class _bad_endl_use_dendl_t { public: _bad_endl_use_dendl_t(int) {} }; -static const _bad_endl_use_dendl_t endl = 0; - -// the streams -extern ostream *_dout; -extern ostream *_derr; -extern bool _dout_need_open; -extern bool _dout_is_open; - -extern void open_dout_file(); - -inline ostream& operator<<(ostream& out, _dbeginl_t) { - _dout_lock.Lock(); - - if (_dout_need_open) { - if (_dout && _dout_is_open) { - delete _dout; - } - open_dout_file(); - } - - return out; -} -inline ostream& operator<<(ostream& out, _dendl_t) { - out << std::endl; - _dout_lock.Unlock(); - return out; -} -inline ostream& operator<<(ostream& out, _bad_endl_use_dendl_t) { - assert(0 && "you are using the wrong endl.. use std::endl or dendl"); - return out; -} - - -// generic macros -#define generic_dout(x) if ((x) <= g_conf.debug) *_dout << dbeginl -#define generic_derr(x) if ((x) <= g_conf.debug) *_derr << dbeginl - -#define pdout(x,p) if ((x) <= (p)) *_dout << dbeginl +#include "common/debug.h" + #endif diff --git a/src/cosd.cc b/src/cosd.cc index 6aeaeebe90e3f..cbca0e61f2160 100644 --- a/src/cosd.cc +++ b/src/cosd.cc @@ -105,7 +105,7 @@ int main(int argc, const char **argv) } } - create_courtesy_output_symlink("osd", whoami); + _dout_create_courtesy_output_symlink("osd", whoami); // start up network rank.bind(); diff --git a/src/ebofs/Allocator.cc b/src/ebofs/Allocator.cc index 028380539962d..da3b8d506141f 100644 --- a/src/ebofs/Allocator.cc +++ b/src/ebofs/Allocator.cc @@ -19,8 +19,9 @@ #include "Ebofs.h" -#undef dout -#define dout(x) if (x <= g_conf.debug_ebofs) *_dout << dbeginl << g_clock.now() << " ebofs(" << fs->dev.get_device_name() << ").allocator." +#define DOUT_SUBSYS ebofs +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "ebofs(" << fs->dev.get_device_name() << ").allocator." void Allocator::dump_freelist() diff --git a/src/ebofs/BlockDevice.cc b/src/ebofs/BlockDevice.cc index f54bb929a9c00..0472d91ad8cb4 100644 --- a/src/ebofs/BlockDevice.cc +++ b/src/ebofs/BlockDevice.cc @@ -39,6 +39,7 @@ #endif #endif +#define DOUT_SUBSYS bdev /******************************************* @@ -63,8 +64,8 @@ inline ostream& operator<<(ostream& out, BlockDevice::biovec &bio) * ElevatorQueue */ -#define dout(x) if (x <= g_conf.debug_bdev) *_dout << dbeginl << g_clock.now() << " bdev(" << dev << ").elevatorq." -#define derr(x) if (x <= g_conf.debug_bdev) *_derr << dbeginl << g_clock.now() << " bdev(" << dev << ").elevatorq." +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "bdev(" << dev << ").elevatorq." int BlockDevice::ElevatorQueue::dequeue_io(list& biols, @@ -212,10 +213,8 @@ int BlockDevice::ElevatorQueue::dequeue_io(list& biols, /******************************************* * BarrierQueue */ -#undef dout -#define dout(x) if (x <= g_conf.debug_bdev) *_dout << dbeginl << g_clock.now() << " bdev(" << dev << ").barrierq." -#undef derr -#define derr(x) if (x <= g_conf.debug_bdev) *_derr << dbeginl << g_clock.now() << " bdev(" << dev << ").barrierq." +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "bdev(" << dev << ").barrierq." void BlockDevice::BarrierQueue::barrier() { @@ -263,12 +262,8 @@ int BlockDevice::BarrierQueue::dequeue_io(list& biols, * BlockDevice */ -#undef dout -#define dout(x) if (x <= g_conf.debug_bdev) *_dout << dbeginl << g_clock.now() << " bdev(" << dev << ")." -#undef derr -#define derr(x) if (x <= g_conf.debug_bdev) *_derr << dbeginl << g_clock.now() << " bdev(" << dev << ")." - - +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "bdev(" << dev << ")." block_t BlockDevice::get_num_blocks() { diff --git a/src/ebofs/BufferCache.cc b/src/ebofs/BufferCache.cc index 3064c5879be64..d909b5e0ee599 100644 --- a/src/ebofs/BufferCache.cc +++ b/src/ebofs/BufferCache.cc @@ -17,6 +17,7 @@ #include "BufferCache.h" #include "Onode.h" +#define DOUT_SUBSYS ebofs void do_apply_partial(bufferlist& bl, map<__u64, bufferlist>& pm) { @@ -36,11 +37,8 @@ void do_apply_partial(bufferlist& bl, map<__u64, bufferlist>& pm) /*********** BufferHead **************/ - -#undef dout -#undef derr -#define dout(x) if (x <= g_conf.debug_ebofs) *_dout << dbeginl << g_clock.now() << " ebofs." << *this << "." -#define derr(x) if (x <= g_conf.debug_ebofs) *_derr << dbeginl << g_clock.now() << " ebofs." << *this << "." +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "ebofs." << *this << "." void BufferHead::add_partial(__u64 off, bufferlist& p) @@ -125,13 +123,8 @@ void BufferHead::apply_partial() /************ ObjectCache **************/ - -#undef dout -#undef derr -#define dout(x) if (x <= g_conf.debug_ebofs) *_dout << dbeginl << g_clock.now() << " ebofs.oc." -#define derr(x) if (x <= g_conf.debug_ebofs) *_derr << dbeginl << g_clock.now() << " ebofs.oc." - - +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "ebofs.oc." void ObjectCache::rx_finish(ioh_t ioh, block_t start, block_t length, bufferlist& bl) { @@ -989,9 +982,8 @@ void ObjectCache::scrub_csums() /************** BufferCache ***************/ -#undef dout -#define dout(x) if (x <= g_conf.debug_ebofs) *_dout << dbeginl << g_clock.now() << " ebofs.bc." - +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "ebofs.bc." BufferHead *BufferCache::split(BufferHead *orig, block_t after) diff --git a/src/ebofs/Ebofs.cc b/src/ebofs/Ebofs.cc index b26e6937a7561..c39a129dd9c89 100644 --- a/src/ebofs/Ebofs.cc +++ b/src/ebofs/Ebofs.cc @@ -29,8 +29,9 @@ // ******************* -#define dout(x) if (x <= g_conf.debug_ebofs) *_dout << dbeginl << g_clock.now() << " ebofs(" << dev.get_device_name() << ")." -#define derr(x) if (x <= g_conf.debug_ebofs) *_derr << dbeginl << g_clock.now() << " ebofs(" << dev.get_device_name() << ")." +#define DOUT_SUBSYS ebofs +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "ebofs(" << dev.get_device_name() << ")." char *nice_blocks(block_t b) diff --git a/src/ebofs/Table.h b/src/ebofs/Table.h index 41c36635d2153..949843d523bbe 100644 --- a/src/ebofs/Table.h +++ b/src/ebofs/Table.h @@ -21,7 +21,7 @@ /** table **/ -#define dbtout if (25 <= g_conf.debug_ebofs) *_dout << dbeginl << "ebofs.table(" << this << ")." +#define dbtout do { if (25 <= g_conf.debug_ebofs) { *_dout << dbeginl << "ebofs.table(" << this << ")." template diff --git a/src/ebofs/nodes.h b/src/ebofs/nodes.h index 4d7310194a0a9..9e6aabe33e2d4 100644 --- a/src/ebofs/nodes.h +++ b/src/ebofs/nodes.h @@ -45,7 +45,7 @@ */ #undef debofs -#define debofs(x) if (x <= g_conf.debug_ebofs) *_dout << dbeginl << "ebofs.nodepool." +#define debofs(x) do { if (x <= g_conf.debug_ebofs) { *_dout << dbeginl << "ebofs.nodepool." class Node { diff --git a/src/include/frag.h b/src/include/frag.h index c62c55f67c8b7..07d7fa1dd4b4a 100644 --- a/src/include/frag.h +++ b/src/include/frag.h @@ -464,7 +464,7 @@ public: q.pop_front(); // newline + indent? if (t.bits()) { - out << dendl; + out << std::endl; for (unsigned i=0; imessenger->get_myname() << ".anchorclient " -#define derr(x) if (x <= g_conf.debug_mds) *_derr << dbeginl << g_clock.now() << " " << mds->messenger->get_myname() << ".anchorclient " +#define DOUT_SUBSYS mds +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "mds" << mds->get_nodeid() << ".anchorclient " diff --git a/src/mds/AnchorServer.cc b/src/mds/AnchorServer.cc index 52eaf65222d4e..74ceb22b2664d 100644 --- a/src/mds/AnchorServer.cc +++ b/src/mds/AnchorServer.cc @@ -17,8 +17,9 @@ #include "msg/Messenger.h" #include "messages/MMDSTableRequest.h" -#define dout(x) if (x <= g_conf.debug_mds) *_dout << dbeginl << g_clock.now() << " " << mds->messenger->get_myname() << ".anchorserver " -#define derr(x) if (x <= g_conf.debug_mds) *_derr << dbeginl << g_clock.now() << " " << mds->messenger->get_myname() << ".anchorserver " +#define DOUT_SUBSYS mds +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "mds" << mds->get_nodeid() << ".anchorserver " // table diff --git a/src/mds/CDentry.cc b/src/mds/CDentry.cc index 8d8f85f383fd7..aecd9c82a9eb4 100644 --- a/src/mds/CDentry.cc +++ b/src/mds/CDentry.cc @@ -25,9 +25,9 @@ #include "messages/MLock.h" - -#define dout(x) if (x <= g_conf.debug || x <= g_conf.debug_mds) *_dout << dbeginl << g_clock.now() << " mds" << dir->cache->mds->get_nodeid() << ".cache.den(" << dir->dirfrag() << " " << name << ") " - +#define DOUT_SUBSYS mds +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "mds" << dir->cache->mds->get_nodeid() << ".cache.den(" << dir->dirfrag() << " " << name << ") " ostream& CDentry::print_db_line_prefix(ostream& out) diff --git a/src/mds/CDir.cc b/src/mds/CDir.cc index 2c699d5fb173f..e0f17f7c4b873 100644 --- a/src/mds/CDir.cc +++ b/src/mds/CDir.cc @@ -33,8 +33,9 @@ #include "config.h" -#define dout(x) if (x <= g_conf.debug || x <= g_conf.debug_mds) *_dout << dbeginl << g_clock.now() << " mds" << cache->mds->get_nodeid() << ".cache.dir(" << this->dirfrag() << ") " - +#define DOUT_SUBSYS mds +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "mds" << cache->mds->get_nodeid() << ".cache.dir(" << this->dirfrag() << ") " diff --git a/src/mds/CInode.cc b/src/mds/CInode.cc index 19e4c1a4c0460..011bd864948ef 100644 --- a/src/mds/CInode.cc +++ b/src/mds/CInode.cc @@ -34,7 +34,10 @@ #include "config.h" -#define dout(x) if (x <= g_conf.debug || x <= g_conf.debug_mds) *_dout << dbeginl << g_clock.now() << " mds" << mdcache->mds->get_nodeid() << ".cache.ino(" << inode.ino << ") " +#define DOUT_SUBSYS mds +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "mds" << mdcache->mds->get_nodeid() << ".cache.ino(" << inode.ino << ") " + //int cinode_pins[CINODE_NUM_PINS]; // counts diff --git a/src/mds/CacheObject.cc b/src/mds/CacheObject.cc index d0b89c7e7a991..7e867760ec76a 100644 --- a/src/mds/CacheObject.cc +++ b/src/mds/CacheObject.cc @@ -18,8 +18,10 @@ #include "Locker.h" #include "config.h" -#define dout(l) if (l<=g_conf.debug || l <= g_conf.debug_mds) *_dout << dbeginl << g_clock.now() << " " << this << " " -#define derr(l) if (l<=g_conf.debug || l <= g_conf.debug_mds) *_derr << dbeginl << g_clock.now() << " " << this << " " + +#define DOUT_SUBSYS mds +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << *this << " " ClientLease *MDSCacheObject::add_client_lease(int c, int mask) { diff --git a/src/mds/InoTable.cc b/src/mds/InoTable.cc index a0eb62fd1628a..2b46199f0f33a 100644 --- a/src/mds/InoTable.cc +++ b/src/mds/InoTable.cc @@ -19,7 +19,9 @@ #include "config.h" -#define dout(x) if (x <= g_conf.debug_mds) *_dout << dbeginl << g_clock.now() << " mds" << mds->get_nodeid() << ".inotable: " +#define DOUT_SUBSYS mds +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "mds" << mds->get_nodeid() << "." << table_name << ": " void InoTable::init_inode() { diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index d5e7c6b838ef3..48c945b2043d4 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -53,8 +53,13 @@ #include "config.h" -#define dout(l) if (l<=g_conf.debug || l <= g_conf.debug_mds) *_dout << dbeginl << g_clock.now() << " mds" << mds->get_nodeid() << ".locker " +#define DOUT_SUBSYS mds +#undef dout_prefix +#define dout_prefix _prefix(mds) +static ostream& _prefix(MDS *mds) { + return *_dout << dbeginl << " mds" << mds->get_nodeid() << ".locker "; +} void Locker::dispatch(Message *m) diff --git a/src/mds/MDBalancer.cc b/src/mds/MDBalancer.cc index 9e70506fbf4bb..f9f93b465326f 100644 --- a/src/mds/MDBalancer.cc +++ b/src/mds/MDBalancer.cc @@ -33,7 +33,11 @@ using std::vector; #include "config.h" -#define dout(l) if (l<=g_conf.debug_mds || l<=g_conf.debug_mds_balancer) *_dout << dbeginl << g_clock.now() << " mds" << mds->get_nodeid() << ".bal " +#define DOUT_SUBSYS mds +#undef DOUT_COND +#define DOUT_COND(l) l<=g_conf.debug_mds || l <= g_conf.debug_mds_balancer +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "mds" << mds->get_nodeid() << ".bal " #define MIN_LOAD 50 // ?? #define MIN_REEXPORT 5 // will automatically reexport diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index e55fe97ca95fb..b4cf76d7fb655 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -87,8 +87,12 @@ using namespace std; #include "config.h" -#define dout(l) if (l<=g_conf.debug || l <= g_conf.debug_mds) *_dout << dbeginl << g_clock.now() << " mds" << mds->get_nodeid() << ".cache " - +#define DOUT_SUBSYS mds +#undef dout_prefix +#define dout_prefix _prefix(mds) +static ostream& _prefix(MDS *mds) { + return *_dout << dbeginl << " mds" << mds->get_nodeid() << ".cache "; +} MDCache::MDCache(MDS *m) diff --git a/src/mds/MDLog.cc b/src/mds/MDLog.cc index 66d8339aed860..c04522ba2f8f1 100644 --- a/src/mds/MDLog.cc +++ b/src/mds/MDLog.cc @@ -26,8 +26,11 @@ #include "config.h" -#define dout(l) if (l<=g_conf.debug_mds || l <= g_conf.debug_mds_log) *_dout << dbeginl << g_clock.now() << " mds" << mds->get_nodeid() << ".log " -#define derr(l) if (l<=g_conf.debug_mds || l <= g_conf.debug_mds_log) *_derr << dbeginl << g_clock.now() << " mds" << mds->get_nodeid() << ".log " +#define DOUT_SUBSYS mds +#undef DOUT_COND +#define DOUT_COND(l) l<=g_conf.debug_mds || l <= g_conf.debug_mds_log +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "mds" << mds->get_nodeid() << ".log " // cons/des diff --git a/src/mds/MDS.cc b/src/mds/MDS.cc index 1b89ef8832fcb..a6ce88f0ec582 100644 --- a/src/mds/MDS.cc +++ b/src/mds/MDS.cc @@ -64,10 +64,9 @@ #include "config.h" -#define dout(l) if (l<=g_conf.debug || l <= g_conf.debug_mds) *_dout << dbeginl << g_clock.now() << " mds" << whoami << " " -#define derr(l) if (l<=g_conf.debug || l <= g_conf.debug_mds) *_derr << dbeginl << g_clock.now() << " mds" << whoami << " " - - +#define DOUT_SUBSYS mds +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "mds" << whoami << " " @@ -557,7 +556,7 @@ void MDS::handle_mds_map(MMDSMap *m) if (whoami >= 0 && mdsmap->is_up(whoami) && (oldwhoami != whoami || !logger)) { - create_courtesy_output_symlink("mds", whoami); + _dout_create_courtesy_output_symlink("mds", whoami); reopen_logger(mdsmap->get_created()); // adopt mds cluster timeline } diff --git a/src/mds/MDSTable.cc b/src/mds/MDSTable.cc index 0a5c1d1d24ac4..a4c9bc107f6a5 100644 --- a/src/mds/MDSTable.cc +++ b/src/mds/MDSTable.cc @@ -23,7 +23,11 @@ #include "config.h" -#define dout(x) if (x <= g_conf.debug_mds) *_dout << dbeginl << g_clock.now() << " mds" << mds->get_nodeid() << "." << table_name << ": " + +#define DOUT_SUBSYS mds +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "mds" << mds->get_nodeid() << "." << table_name << ": " + class C_MT_Save : public Context { MDSTable *ida; diff --git a/src/mds/MDSTableClient.cc b/src/mds/MDSTableClient.cc index 4041992b078bc..5fdf4260d1f81 100644 --- a/src/mds/MDSTableClient.cc +++ b/src/mds/MDSTableClient.cc @@ -32,8 +32,9 @@ using std::cerr; #include "config.h" -#define dout(x) if (x <= g_conf.debug_mds) *_dout << dbeginl << g_clock.now() << " " << mds->messenger->get_myname() << ".tableclient " -#define derr(x) if (x <= g_conf.debug_mds) *_derr << dbeginl << g_clock.now() << " " << mds->messenger->get_myname() << ".tableclient " +#define DOUT_SUBSYS mds +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "mds" << mds->get_nodeid() << ".tableclient(" << get_mdstable_name(table) << ") " void MDSTableClient::handle_request(class MMDSTableRequest *m) diff --git a/src/mds/MDSTableServer.cc b/src/mds/MDSTableServer.cc index e083cb8f0c9b0..c1d65fc0f83df 100644 --- a/src/mds/MDSTableServer.cc +++ b/src/mds/MDSTableServer.cc @@ -20,8 +20,9 @@ #include "messages/MMDSTableRequest.h" #include "events/ETableServer.h" -#define dout(x) if (x <= g_conf.debug_mds) *_dout << dbeginl << g_clock.now() << " " << mds->messenger->get_myname() << ".tableserver(" << get_mdstable_name(table) << ") " -#define derr(x) if (x <= g_conf.debug_mds) *_derr << dbeginl << g_clock.now() << " " << mds->messenger->get_myname() << ".tableserver(" << get_mdstable_name(table) << ") " +#define DOUT_SUBSYS mds +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "mds" << mds->get_nodeid() << ".tableserver(" << get_mdstable_name(table) << ") " void MDSTableServer::handle_request(MMDSTableRequest *req) diff --git a/src/mds/Migrator.cc b/src/mds/Migrator.cc index 640ca59a7439c..1187dc2cab2ed 100644 --- a/src/mds/Migrator.cc +++ b/src/mds/Migrator.cc @@ -58,8 +58,12 @@ #include "config.h" -#define dout(l) if (l<=g_conf.debug || l <= g_conf.debug_mds || l <= g_conf.debug_mds_migrator) *_dout << dbeginl << g_clock.now() << " mds" << mds->get_nodeid() << ".migrator " +#define DOUT_SUBSYS mds +#undef DOUT_COND +#define DOUT_COND(l) l <= g_conf.debug_mds || l <= g_conf.debug_mds_migrator +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "mds" << mds->get_nodeid() << ".migrator " void Migrator::dispatch(Message *m) diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 18706b9eb0481..d219521f95ab6 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -60,8 +60,9 @@ using namespace std; #include "config.h" -#define dout(l) if (l<=g_conf.debug || l <= g_conf.debug_mds) *_dout << dbeginl << g_clock.now() << " mds" << mds->get_nodeid() << ".server " -#define derr(l) if (l<=g_conf.debug || l <= g_conf.debug_mds) *_derr << dbeginl << g_clock.now() << " mds" << mds->get_nodeid() << ".server " +#define DOUT_SUBSYS mds +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "mds" << mds->get_nodeid() << ".server " void Server::reopen_logger(utime_t start, bool append) diff --git a/src/mds/SessionMap.cc b/src/mds/SessionMap.cc index a1c41f2d053df..2d347e980dcf3 100644 --- a/src/mds/SessionMap.cc +++ b/src/mds/SessionMap.cc @@ -18,7 +18,10 @@ #include "config.h" -#define dout(x) if (x <= g_conf.debug_mds) *_dout << dbeginl << g_clock.now() << " mds" << mds->get_nodeid() << ".sessionmap " +#define DOUT_SUBSYS mds +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "mds" << mds->get_nodeid() << ".sessionmap " + void SessionMap::init_inode() { diff --git a/src/mds/SnapServer.cc b/src/mds/SnapServer.cc index 9c1ac9e2dd2d6..e9ab10f9bc1cc 100644 --- a/src/mds/SnapServer.cc +++ b/src/mds/SnapServer.cc @@ -24,7 +24,10 @@ #include "config.h" -#define dout(x) if (x <= g_conf.debug_mds) *_dout << dbeginl << g_clock.now() << " mds" << mds->get_nodeid() << ".snap: " +#define DOUT_SUBSYS mds +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "mds" << mds->get_nodeid() << ".snap " + void SnapServer::init_inode() { diff --git a/src/mds/journal.cc b/src/mds/journal.cc index 173bcf5e41719..55849c4e6549b 100644 --- a/src/mds/journal.cc +++ b/src/mds/journal.cc @@ -53,8 +53,11 @@ #include "config.h" -#define dout(l) if (l<=g_conf.debug_mds || l <= g_conf.debug_mds_log || l <= g_conf.debug_mds_log_expire) *_dout << dbeginl << g_clock.now() << " mds" << mds->get_nodeid() << ".journal " -#define derr(l) if (l<=g_conf.debug_mds || l <= g_conf.debug_mds_log || l <= g_conf.debug_mds_log_expire) *_dout << dbeginl << g_clock.now() << " mds" << mds->get_nodeid() << ".journal " +#define DOUT_SUBSYS mds +#undef DOUT_COND +#define DOUT_COND(l) l<=g_conf.debug_mds || l <= g_conf.debug_mds_log || l <= g_conf.debug_mds_log_expire +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "mds" << mds->get_nodeid() << ".journal " // ----------------------- @@ -253,11 +256,8 @@ C_Gather *LogSegment::try_to_expire(MDS *mds) } - -#undef dout -#undef derr -#define dout(l) if (l<=g_conf.debug_mds || l <= g_conf.debug_mds_log) *_dout << dbeginl << g_clock.now() << " mds" << mds->get_nodeid() << ".journal " -#define derr(l) if (l<=g_conf.debug_mds || l <= g_conf.debug_mds_log) *_dout << dbeginl << g_clock.now() << " mds" << mds->get_nodeid() << ".journal " +#undef DOUT_COND +#define DOUT_COND(l) l<=g_conf.debug_mds || l <= g_conf.debug_mds_log // ----------------------- diff --git a/src/mds/snap.cc b/src/mds/snap.cc index 4e64c9d37efbf..13eddd35f45e7 100644 --- a/src/mds/snap.cc +++ b/src/mds/snap.cc @@ -22,10 +22,15 @@ * SnapRealm */ -#define dout(x) if (x <= g_conf.debug_mds) *_dout << dbeginl << g_clock.now() \ - << " mds" << mdcache->mds->get_nodeid() \ - << ".cache.snaprealm(" << inode->ino() \ - << " seq " << seq << " " << this << ") " +#define DOUT_SUBSYS mds +#undef dout_prefix +#define dout_prefix _prefix(mdcache->mds->get_nodeid(), inode, seq, this) +static ostream& _prefix(int whoami, CInode *inode, __u64 seq, SnapRealm *realm) { + return *_dout << dbeginl << g_clock.now() + << " mds" << whoami + << ".cache.snaprealm(" << inode->ino() + << " seq " << seq << " " << realm << ") "; +} ostream& operator<<(ostream& out, const SnapRealm& realm) { diff --git a/src/mon/ClientMonitor.cc b/src/mon/ClientMonitor.cc index 83b5d47835333..615498f693072 100644 --- a/src/mon/ClientMonitor.cc +++ b/src/mon/ClientMonitor.cc @@ -27,9 +27,15 @@ #include "config.h" -#define dout(l) if (l<=g_conf.debug || l<=g_conf.debug_mon) *_dout << dbeginl << g_clock.now() << " mon" << mon->whoami << (mon->is_starting() ? (const char*)"(starting)":(mon->is_leader() ? (const char*)"(leader)":(mon->is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) << ".client v" << client_map.version << " " -#define derr(l) if (l<=g_conf.debug || l<=g_conf.debug_mon) *_derr << dbeginl << g_clock.now() << " mon" << mon->whoami << (mon->is_starting() ? (const char*)"(starting)":(mon->is_leader() ? (const char*)"(leader)":(mon->is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) << ".client v" << client_map.version << " " - +#define DOUT_SUBSYS mon +#undef dout_prefix +#define dout_prefix _prefix(mon, client_map) +static ostream& _prefix(Monitor *mon, ClientMonitor::Map& client_map) { + return *_dout << dbeginl + << "mon" << mon->whoami + << (mon->is_starting() ? (const char*)"(starting)":(mon->is_leader() ? (const char*)"(leader)":(mon->is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) + << ".client v" << client_map.version << " "; +} ostream& operator<<(ostream& out, ClientMonitor& om) { diff --git a/src/mon/Elector.cc b/src/mon/Elector.cc index 7077385e9ea7f..75d1c2c4c9d50 100644 --- a/src/mon/Elector.cc +++ b/src/mon/Elector.cc @@ -21,8 +21,15 @@ #include "config.h" -#define dout(l) if (l<=g_conf.debug || l<=g_conf.debug_mon) *_dout << dbeginl << g_clock.now() << " mon" << mon->whoami << (mon->is_starting() ? (const char*)"(starting)":(mon->is_leader() ? (const char*)"(leader)":(mon->is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) << ".elector(" << epoch << ") " -#define derr(l) if (l<=g_conf.debug || l<=g_conf.debug_mon) *_derr << dbeginl << g_clock.now() << " mon" << mon->whoami << (mon->is_starting() ? (const char*)"(starting)":(mon->is_leader() ? (const char*)"(leader)":(mon->is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) << ".elector(" << epoch << ") " +#define DOUT_SUBSYS mon +#undef dout_prefix +#define dout_prefix _prefix(mon, epoch) +static ostream& _prefix(Monitor *mon, epoch_t epoch) { + return *_dout << dbeginl + << "mon" << mon->whoami + << (mon->is_starting() ? (const char*)"(starting)":(mon->is_leader() ? (const char*)"(leader)":(mon->is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) + << ".elector(" << epoch << ") "; +} void Elector::init() diff --git a/src/mon/MDSMonitor.cc b/src/mon/MDSMonitor.cc index 25f1ad70b9969..abf8b3ba4fc0d 100644 --- a/src/mon/MDSMonitor.cc +++ b/src/mon/MDSMonitor.cc @@ -32,8 +32,15 @@ #include "config.h" -#define dout(l) if (l<=g_conf.debug || l<=g_conf.debug_mon) *_dout << dbeginl << g_clock.now() << " mon" << mon->whoami << (mon->is_starting() ? (const char*)"(starting)":(mon->is_leader() ? (const char*)"(leader)":(mon->is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) << ".mds e" << mdsmap.get_epoch() << " " -#define derr(l) if (l<=g_conf.debug || l<=g_conf.debug_mon) *_derr << dbeginl << g_clock.now() << " mon" << mon->whoami << (mon->is_starting() ? (const char*)"(starting)":(mon->is_leader() ? (const char*)"(leader)":(mon->is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) << ".mds e" << mdsmap.get_epoch() << " " +#define DOUT_SUBSYS mon +#undef dout_prefix +#define dout_prefix _prefix(mon, mdsmap) +static ostream& _prefix(Monitor *mon, MDSMap& mdsmap) { + return *_dout << dbeginl + << "mon" << mon->whoami + << (mon->is_starting() ? (const char*)"(starting)":(mon->is_leader() ? (const char*)"(leader)":(mon->is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) + << ".mds e" << mdsmap.get_epoch() << " "; +} diff --git a/src/mon/MonClient.cc b/src/mon/MonClient.cc index 73d22962c2413..572bd467159ba 100644 --- a/src/mon/MonClient.cc +++ b/src/mon/MonClient.cc @@ -8,8 +8,8 @@ #include "config.h" -#define dout(x) if (x <= g_conf.debug || x <= g_conf.debug_mon) *_dout << dbeginl << g_clock.now() << " monclient " -#define derr(x) if (x <= g_conf.debug || x <= g_conf.debug_mon) *_derr << dbeginl << g_clock.now() << " monclient " +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << " monclient " Mutex monmap_lock("monmap_lock"); Cond monmap_cond; diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index bb189c78a2b06..7e6073bf0b1b4 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -41,8 +41,21 @@ #include "config.h" -#define dout(l) if (l<=g_conf.debug || l<=g_conf.debug_mon) *_dout << dbeginl << g_clock.now() << " mon" << whoami << (is_starting() ? (const char*)"(starting)":(is_leader() ? (const char*)"(leader)":(is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) << " " -#define derr(l) if (l<=g_conf.debug || l<=g_conf.debug_mon) *_derr << dbeginl << g_clock.now() << " mon" << whoami << (is_starting() ? (const char*)"(starting)":(is_leader() ? (const char*)"(leader)":(is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) << " " +#define DOUT_SUBSYS mon +#undef dout_prefix +#define dout_prefix _prefix(this) +static ostream& _prefix(Monitor *mon) { + return *_dout << dbeginl + << " mon" << mon->whoami + << (mon->is_starting() ? + (const char*)"(starting)" : + (mon->is_leader() ? + (const char*)"(leader)" : + (mon->is_peon() ? + (const char*)"(peon)" : + (const char*)"(?\?)"))) + << " "; +} Monitor::Monitor(int w, MonitorStore *s, Messenger *m, MonMap *map) : whoami(w), diff --git a/src/mon/MonitorStore.cc b/src/mon/MonitorStore.cc index 8bc16804420e7..315e02b95cd3a 100644 --- a/src/mon/MonitorStore.cc +++ b/src/mon/MonitorStore.cc @@ -17,8 +17,13 @@ #include "config.h" -#define dout(l) if (l<=g_conf.debug || l<=g_conf.debug_mon) *_dout << dbeginl << g_clock.now() << " store(" << dir <<") " -#define derr(l) if (l<=g_conf.debug || l<=g_conf.debug_mon) *_derr << dbeginl << g_clock.now() << " store(" << dir <<") " +#define DOUT_SUBSYS mon +#undef dout_prefix +#define dout_prefix _prefix(dir) +static ostream& _prefix(const string& dir) { + return *_dout << dbeginl << "store(" << dir << ") "; +} + #include #include diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index c41494d9dae87..f0a5ce5cb6c6b 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -35,8 +35,15 @@ #include -#define dout(l) if (l<=g_conf.debug || l<=g_conf.debug_mon) *_dout << dbeginl << g_clock.now() << " mon" << mon->whoami << (mon->is_starting() ? (const char*)"(starting)":(mon->is_leader() ? (const char*)"(leader)":(mon->is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) << ".osd e" << osdmap.get_epoch() << " " -#define derr(l) if (l<=g_conf.debug || l<=g_conf.debug_mon) *_derr << dbeginl << g_clock.now() << " mon" << mon->whoami << (mon->is_starting() ? (const char*)"(starting)":(mon->is_leader() ? (const char*)"(leader)":(mon->is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) << ".osd e" << osdmap.get_epoch() << " " +#define DOUT_SUBSYS mon +#undef dout_prefix +#define dout_prefix _prefix(mon, osdmap) +static ostream& _prefix(Monitor *mon, OSDMap& osdmap) { + return *_dout << dbeginl + << "mon" << mon->whoami + << (mon->is_starting() ? (const char*)"(starting)":(mon->is_leader() ? (const char*)"(leader)":(mon->is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) + << ".osd e" << osdmap.get_epoch() << " "; +} // FAKING diff --git a/src/mon/PGMonitor.cc b/src/mon/PGMonitor.cc index 5c849b8c4b415..3ebf6dfa54d82 100644 --- a/src/mon/PGMonitor.cc +++ b/src/mon/PGMonitor.cc @@ -35,9 +35,15 @@ #include "config.h" #include - -#define dout(l) if (l<=g_conf.debug || l<=g_conf.debug_mon) *_dout << dbeginl << g_clock.now() << " mon" << mon->whoami << (mon->is_starting() ? (const char*)"(starting)":(mon->is_leader() ? (const char*)"(leader)":(mon->is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) << ".pg v" << pg_map.version << " " -#define derr(l) if (l<=g_conf.debug || l<=g_conf.debug_mon) *_derr << dbeginl << g_clock.now() << " mon" << mon->whoami << (mon->is_starting() ? (const char*)"(starting)":(mon->is_leader() ? (const char*)"(leader)":(mon->is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) << ".pg v" << pg_map.version << " " +#define DOUT_SUBSYS mon +#undef dout_prefix +#define dout_prefix _prefix(mon, pg_map) +static ostream& _prefix(Monitor *mon, PGMap& pg_map) { + return *_dout << dbeginl + << "mon" << mon->whoami + << (mon->is_starting() ? (const char*)"(starting)":(mon->is_leader() ? (const char*)"(leader)":(mon->is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) + << ".pg v" << pg_map.version << " "; +} struct kb_t { uint64_t v; diff --git a/src/mon/Paxos.cc b/src/mon/Paxos.cc index 2c751ec27a89f..86349def3f351 100644 --- a/src/mon/Paxos.cc +++ b/src/mon/Paxos.cc @@ -20,8 +20,21 @@ #include "config.h" -#define dout(l) if (l<=g_conf.debug || l<=g_conf.debug_paxos) *_dout << dbeginl << g_clock.now() << " mon" << whoami << (mon->is_starting() ? (const char*)"(starting)":(mon->is_leader() ? (const char*)"(leader)":(mon->is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) << ".paxos(" << machine_name << " " << get_statename(state) << " lc " << last_committed << ") " -#define derr(l) if (l<=g_conf.debug || l<=g_conf.debug_paxos) *_derr << dbeginl << g_clock.now() << " mon" << whoami << (mon->is_starting() ? (const char*)"(starting)":(mon->is_leader() ? (const char*)"(leader)":(mon->is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) << ".paxos(" << machine_name << " " << get_statename(state) << " lc " << last_committed << ") " +#define DOUT_SUBSYS paxos +#undef dout_prefix +#define dout_prefix _prefix(mon, whoami, machine_name, state, last_committed) +static ostream& _prefix(Monitor *mon, int whoami, const char *machine_name, int state, version_t last_committed) { + return *_dout << dbeginl + << "mon" << whoami + << (mon->is_starting() ? + (const char*)"(starting)" : + (mon->is_leader() ? + (const char*)"(leader)" : + (mon->is_peon() ? + (const char*)"(peon)" : (const char*)"(?\?)"))) + << ".paxos(" << machine_name << " " << Paxos::get_statename(state) << " lc " << last_committed + << ") "; +} void Paxos::init() diff --git a/src/mon/Paxos.h b/src/mon/Paxos.h index d429d1b03f78c..6db33eb3215d4 100644 --- a/src/mon/Paxos.h +++ b/src/mon/Paxos.h @@ -81,7 +81,7 @@ public: const static int STATE_RECOVERING = 1; // leader|peon: recovering paxos state const static int STATE_ACTIVE = 2; // leader|peon: idle. peon may or may not have valid lease const static int STATE_UPDATING = 3; // leader|peon: updating to new value - const char *get_statename(int s) { + static const char *get_statename(int s) { switch (s) { case STATE_RECOVERING: return "recovering"; case STATE_ACTIVE: return "active"; diff --git a/src/mon/PaxosService.cc b/src/mon/PaxosService.cc index 21733b88639e7..846942d24a88e 100644 --- a/src/mon/PaxosService.cc +++ b/src/mon/PaxosService.cc @@ -20,8 +20,15 @@ #include "config.h" -#define dout(l) if (l<=g_conf.debug || l<=g_conf.debug_paxos) *_dout << dbeginl << g_clock.now() << " mon" << mon->whoami << (mon->is_starting() ? (const char*)"(starting)":(mon->is_leader() ? (const char*)"(leader)":(mon->is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) << ".paxosservice(" << get_paxos_name(paxos->machine_id) << ") " - +#define DOUT_SUBSYS paxos +#undef dout_prefix +#define dout_prefix _prefix(mon, paxos, paxos->machine_id) +static ostream& _prefix(Monitor *mon, Paxos *paxos, int machine_id) { + return *_dout << dbeginl + << "mon" << mon->whoami + << (mon->is_starting() ? (const char*)"(starting)":(mon->is_leader() ? (const char*)"(leader)":(mon->is_peon() ? (const char*)"(peon)":(const char*)"(?\?)"))) + << ".paxosservice(" << get_paxos_name(machine_id) << ") "; +} const char *PaxosService::get_machine_name() { diff --git a/src/msg/Message.cc b/src/msg/Message.cc index b8641fcba9057..fa9db4385f93f 100644 --- a/src/msg/Message.cc +++ b/src/msg/Message.cc @@ -106,7 +106,6 @@ using namespace std; #include "config.h" -#define dout(l) if (l<=g_conf.debug) *_dout << dbeginl << g_clock.now() << " MESSENGER: " #define DEBUGLVL 10 // debug level of output diff --git a/src/msg/SimpleMessenger.cc b/src/msg/SimpleMessenger.cc index d5f89fa77f71e..944d63d02227a 100644 --- a/src/msg/SimpleMessenger.cc +++ b/src/msg/SimpleMessenger.cc @@ -36,9 +36,12 @@ #include "common/Timer.h" -#define dout(l) if (l<=g_conf.debug_ms) *_dout << dbeginl << g_clock.now() << " " << pthread_self() << " -- " << rank.rank_addr << " " -#define derr(l) if (l<=g_conf.debug_ms) *_derr << dbeginl << g_clock.now() << " " << pthread_self() << " -- " << rank.rank_addr << " " - +#define DOUT_SUBSYS ms +#undef dout_prefix +#define dout_prefix _prefix() +static ostream& _prefix() { + return *_dout << dbeginl << pthread_self() << " -- " << rank.rank_addr << " "; +} #include "tcp.cc" @@ -319,7 +322,7 @@ int Rank::start(bool nodaemon) } dout(1) << "rank.start daemonizing" << dendl; daemon(1, 0); /* fixme.. we should chdir(/) too! */ - rename_output_file(); + _dout_rename_output_file(); } // some debug hackery? @@ -766,10 +769,12 @@ void Rank::mark_down(entity_addr_t addr) * Pipe */ -#undef dout -#undef derr -#define dout(l) if (l<=g_conf.debug_ms) *_dout << dbeginl << g_clock.now() << " " << pthread_self() << " -- " << rank.rank_addr << " >> " << peer_addr << " pipe(" << this << ")." -#define derr(l) if (l<=g_conf.debug_ms) *_derr << dbeginl << g_clock.now() << " " << pthread_self() << " -- " << rank.rank_addr << " >> " << peer_addr << " pipe(" << this << ")." +#undef dout_prefix +#define dout_prefix _pipe_prefix() +ostream& Rank::Pipe::_pipe_prefix() { + return *_dout << dbeginl << pthread_self() + << " -- " << rank.rank_addr << " >> " << peer_addr << " pipe(" << this << ")."; +} int Rank::Pipe::accept() { diff --git a/src/msg/SimpleMessenger.h b/src/msg/SimpleMessenger.h index 1adbacd7d7ebf..a2f5643d6e085 100644 --- a/src/msg/SimpleMessenger.h +++ b/src/msg/SimpleMessenger.h @@ -104,6 +104,8 @@ private: // pipe class Pipe { public: + ostream& _pipe_prefix(); + enum { STATE_ACCEPTING, STATE_CONNECTING, diff --git a/src/os/FileJournal.cc b/src/os/FileJournal.cc index a4af966c8b036..69f4ad70c74c6 100644 --- a/src/os/FileJournal.cc +++ b/src/os/FileJournal.cc @@ -21,9 +21,9 @@ #include - -#define dout(x) if (x <= g_conf.debug_journal) *_dout << dbeginl << g_clock.now() << " journal " -#define derr(x) if (x <= g_conf.debug_journal) *_derr << dbeginl << g_clock.now() << " journal " +#define DOUT_SUBSYS journal +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "journal " int FileJournal::_open(bool forwrite) diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index f88be9b68bc22..9374c124fbd5d 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -92,8 +92,9 @@ struct btrfs_ioctl_usertrans { #include "config.h" -#define dout(l) if (l<=g_conf.debug_filestore) *_dout << dbeginl << g_clock.now() << " filestore(" << basedir << ") " -#define derr(l) if (l<=g_conf.debug_filestore) *_derr << dbeginl << g_clock.now() << " filestore(" << basedir << ") " +#define DOUT_SUBSYS filestore +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "filestore(" << basedir << ") " #include "include/buffer.h" diff --git a/src/os/JournalingObjectStore.cc b/src/os/JournalingObjectStore.cc index 9f66b3d16996e..5b6cf8b0912e0 100644 --- a/src/os/JournalingObjectStore.cc +++ b/src/os/JournalingObjectStore.cc @@ -3,8 +3,10 @@ #include "config.h" -#define dout(x) if (x <= g_conf.debug_journal) *_dout << dbeginl << g_clock.now() << " journal " -#define derr(x) if (x <= g_conf.debug_journal) *_derr << dbeginl << g_clock.now() << " journal " +#define DOUT_SUBSYS journal +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << "journal " + int JournalingObjectStore::journal_replay() { diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 9ac779f234ea9..ee735eac2588d 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -80,8 +80,15 @@ #include "config.h" -#define dout(l) if (l<=g_conf.debug || l<=g_conf.debug_osd) *_dout << dbeginl << g_clock.now() << " " << pthread_self() << " osd" << whoami << " " << (osdmap ? osdmap->get_epoch():0) << " " -#define derr(l) if (l<=g_conf.debug || l<=g_conf.debug_osd) *_derr << dbeginl << g_clock.now() << " osd" << whoami << " " << (osdmap ? osdmap->get_epoch():0) << " " +#define DOUT_SUBSYS osd +#undef dout_prefix +#define dout_prefix _prefix(*_dout, whoami, osdmap) + +static ostream& _prefix(ostream& out, int whoami, OSDMap *osdmap) { + return out << dbeginl << pthread_self() + << " osd" << whoami << " " << (osdmap ? osdmap->get_epoch():0) << " "; +} + diff --git a/src/osd/OSDMap.cc b/src/osd/OSDMap.cc index 5d1905d1927d5..c587ba7b13e6d 100644 --- a/src/osd/OSDMap.cc +++ b/src/osd/OSDMap.cc @@ -15,8 +15,6 @@ #include "OSDMap.h" #include "config.h" -#define dout generic_dout -#define derr generic_derr void OSDMap::build_simple(epoch_t e, ceph_fsid &fsid, diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 0c5d7383785d2..f05309df4330f 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -26,7 +26,12 @@ #include "messages/MOSDPGRemove.h" #include "messages/MOSDPGInfo.h" -#define dout(l) if (l<=g_conf.debug || l<=g_conf.debug_osd) *_dout << dbeginl << g_clock.now() << " " << pthread_self() << " osd" << osd->whoami << " " << (osd->osdmap ? osd->osdmap->get_epoch():0) << " " << *this << " " +#define DOUT_SUBSYS osd +#undef dout_prefix +#define dout_prefix _prefix(this, osd->whoami, osd->osdmap) +static ostream& _prefix(PG *pg, int whoami, OSDMap *osdmap) { + return *_dout << dbeginl<< pthread_self() << " osd" << whoami << " " << (osdmap ? osdmap->get_epoch():0) << " " << *pg << " "; +} /******* PGLog ********/ diff --git a/src/osd/RAID4PG.cc b/src/osd/RAID4PG.cc index 9f674ea438a54..b7ad015ad6c9a 100644 --- a/src/osd/RAID4PG.cc +++ b/src/osd/RAID4PG.cc @@ -24,7 +24,16 @@ #include "config.h" -#define dout(l) if (l<=g_conf.debug || l<=g_conf.debug_osd) *_dout << dbeginl << g_clock.now() << " osd" << osd->get_nodeid() << " " << (osd->osdmap ? osd->osdmap->get_epoch():0) << " " << *this << " " +#define DOUT_SUBSYS osd +#undef dout_prefix +#define dout_prefix _prefix(this, osd->whoami, osd->osdmap) +static ostream& _prefix(PG *pg, int whoami, OSDMap *osdmap) { + return *_dout << dbeginl << pthread_self() + << " osd" << whoami + << " " << (osdmap ? osdmap->get_epoch():0) << " " + << *pg << " "; +} + #include #include diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 82a8cd23f5965..775f5ef9aa02d 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -29,8 +29,15 @@ #include "config.h" -#define dout(l) if (l<=g_conf.debug || l<=g_conf.debug_osd) *_dout << dbeginl << g_clock.now() << " " << pthread_self() << " osd" << osd->get_nodeid() << " " << (osd->osdmap ? osd->osdmap->get_epoch():0) << " " << *this << " " -#define derr(l) if (l<=g_conf.debug || l<=g_conf.debug_osd) *_derr << dbeginl << g_clock.now() << " osd" << osd->get_nodeid() << " " << (osd->osdmap ? osd->osdmap->get_epoch():0) << " " << *this << " " +#define DOUT_SUBSYS osd +#define DOUT_PREFIX_ARGS this, osd->whoami, osd->osdmap +#undef dout_prefix +#define dout_prefix _prefix(this, osd->whoami, osd->osdmap) +static ostream& _prefix(PG *pg, int whoami, OSDMap *osdmap) { + return *_dout << dbeginl<< pthread_self() << " osd" << whoami << " " << (osdmap ? osdmap->get_epoch():0) << " " << *pg << " "; +} + + #include #include diff --git a/src/osdc/Filer.cc b/src/osdc/Filer.cc index 0debe242fd54b..e3f4ff8ebac1a 100644 --- a/src/osdc/Filer.cc +++ b/src/osdc/Filer.cc @@ -26,7 +26,9 @@ #include "config.h" -#define dout(x) if (x <= g_conf.debug || x <= g_conf.debug_filer) *_dout << dbeginl << g_clock.now() << " " << objecter->messenger->get_myname() << ".filer " +#define DOUT_SUBSYS filer +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << objecter->messenger->get_myname() << ".filer " class Filer::C_Probe : public Context { diff --git a/src/osdc/Journaler.cc b/src/osdc/Journaler.cc index acffaf3506956..378a701770d2c 100644 --- a/src/osdc/Journaler.cc +++ b/src/osdc/Journaler.cc @@ -20,8 +20,9 @@ #include "config.h" -#define dout(x) if (x <= g_conf.debug || x <= g_conf.debug_journaler) *_dout << dbeginl << g_clock.now() << " " << objecter->messenger->get_myname() << ".journaler " -#define derr(x) if (x <= g_conf.debug || x <= g_conf.debug_journaler) *_derr << dbeginl << g_clock.now() << " " << objecter->messenger->get_myname() << ".journaler " +#define DOUT_SUBSYS journaler +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << objecter->messenger->get_myname() << ".journaler " diff --git a/src/osdc/ObjectCacher.cc b/src/osdc/ObjectCacher.cc index c663b80bae5f4..3cfb5f6c51c45 100644 --- a/src/osdc/ObjectCacher.cc +++ b/src/osdc/ObjectCacher.cc @@ -12,7 +12,10 @@ /*** ObjectCacher::Object ***/ -#define dout(l) if (l<=g_conf.debug || l<=g_conf.debug_objectcacher) *_dout << dbeginl << g_clock.now() << " " << oc->objecter->messenger->get_myname() << ".objectcacher.object(" << oid << ") " +#define DOUT_SUBSYS objectcacher +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << oc->objecter->messenger->get_myname() << ".objectcacher.object(" << oid << ") " + ObjectCacher::BufferHead *ObjectCacher::Object::split(BufferHead *left, loff_t off) @@ -369,9 +372,8 @@ void ObjectCacher::Object::truncate(loff_t s) /*** ObjectCacher ***/ -#undef dout -#define dout(l) if (l<=g_conf.debug || l<=g_conf.debug_objectcacher) *_dout << dbeginl << g_clock.now() << " " << objecter->messenger->get_myname() << ".objectcacher " - +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << objecter->messenger->get_myname() << ".objectcacher " /* private */ diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index 981a4dd012bbc..611a328ed0992 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -31,8 +31,9 @@ #include "config.h" -#define dout(x) if (x <= g_conf.debug || x <= g_conf.debug_objecter) *_dout << dbeginl << g_clock.now() << " " << messenger->get_myname() << ".objecter " -#define derr(x) if (x <= g_conf.debug || x <= g_conf.debug_objecter) *_derr << dbeginl << g_clock.now() << " " << messenger->get_myname() << ".objecter " +#define DOUT_SUBSYS objecter +#undef dout_prefix +#define dout_prefix *_dout << dbeginl << messenger->get_myname() << ".objecter " // messages ------------------------------ -- 2.39.5