From 3741804bec65a33d400af38dcc80700c8a668b81 Mon Sep 17 00:00:00 2001 From: arao Date: Mon, 22 Jun 2015 11:10:05 +0530 Subject: Logging: Porting the performance translator logs to new logging framework. Change-Id: Ie6aaf8d30bd4457bb73c48e23e6b1dea27598644 BUG: 1194640 Signed-off-by: arao Reviewed-on: http://review.gluster.org/9822 Tested-by: NetBSD Build System Tested-by: Gluster Build System Reviewed-by: Raghavendra G Tested-by: Raghavendra G --- .../io-threads/src/io-threads-messages.h | 103 +++++++++++++++++++++ xlators/performance/io-threads/src/io-threads.c | 56 ++++++----- 2 files changed, 137 insertions(+), 22 deletions(-) create mode 100644 xlators/performance/io-threads/src/io-threads-messages.h (limited to 'xlators/performance/io-threads') diff --git a/xlators/performance/io-threads/src/io-threads-messages.h b/xlators/performance/io-threads/src/io-threads-messages.h new file mode 100644 index 00000000000..ab1f672756b --- /dev/null +++ b/xlators/performance/io-threads/src/io-threads-messages.h @@ -0,0 +1,103 @@ +/*Copyright (c) 2015 Red Hat, Inc. + This file is part of GlusterFS. + + This file is licensed to you under your choice of the GNU Lesser + General Public License, version 3 or any later version (LGPLv3 or + later), or the GNU General Public License, version 2 (GPLv2), in all + cases as published by the Free Software Foundation. +*/ + +#ifndef _IO_THREADS_MESSAGES_H_ +#define _IO_THREADS_MESSAGES_H_ + +#include "glfs-message-id.h" + +/*! \file io-threads-messages.h + * \brief IO_THREADS log-message IDs and their descriptions + * + */ + +/* NOTE: Rules for message additions + * 1) Each instance of a message is _better_ left with a unique message ID, even + * if the message format is the same. Reasoning is that, if the message + * format needs to change in one instance, the other instances are not + * impacted or the new change does not change the ID of the instance being + * modified. + * 2) Addition of a message, + * - Should increment the GLFS_NUM_MESSAGES + * - Append to the list of messages defined, towards the end + * - Retain macro naming as glfs_msg_X (for redability across developers) + * NOTE: Rules for message format modifications + * 3) Check acorss the code if the message ID macro in question is reused + * anywhere. If reused then then the modifications should ensure correctness + * everywhere, or needs a new message ID as (1) above was not adhered to. If + * not used anywhere, proceed with the required modification. + * NOTE: Rules for message deletion + * 4) Check (3) and if used anywhere else, then cannot be deleted. If not used + * anywhere, then can be deleted, but will leave a hole by design, as + * addition rules specify modification to the end of the list and not filling + * holes. + */ + +#define GLFS_IO_THREADS_BASE GLFS_MSGID_COMP_IO_THREADS +#define GLFS_IO_THREADS_NUM_MESSAGES 5 +#define GLFS_MSGID_END (GLFS_IO_THREADS_BASE + \ + GLFS_IO_THREADS_NUM_MESSAGES + 1) + +/* Messages with message IDs */ +#define glfs_msg_start_x GLFS_IO_THREADS_BASE, "Invalid: Start of messages" + + + + +/*! + * @messageid + * @diagnosis + * @recommendedaction None + * + */ + +#define IO_THREADS_MSG_INIT_FAILED (GLFS_IO_THREADS_BASE + 1) + +/*! + * @messageid + * @diagnosis + * @recommendedaction None + * + */ + +#define IO_THREADS_MSG_XLATOR_CHILD_MISCONFIGURED (GLFS_IO_THREADS_BASE + 2) + +/*! + * @messageid + * @diagnosis + * @recommendedaction None + * + */ + +#define IO_THREADS_MSG_NO_MEMORY (GLFS_IO_THREADS_BASE + 3) + +/*! + * @messageid + * @diagnosis + * @recommendedaction None + * + */ + +#define IO_THREADS_MSG_VOL_MISCONFIGURED (GLFS_IO_THREADS_BASE + 4) + +/*! + * @messageid + * @diagnosis + * @recommendedaction None + * + */ + +#define IO_THREADS_MSG_SIZE_NOT_SET (GLFS_IO_THREADS_BASE + 5) + + +/*------------*/ +#define glfs_msg_end_x GLFS_MSGID_END, "Invalid: End of messages" + + +#endif /* _IO_THREADS_MESSAGES_H_ */ diff --git a/xlators/performance/io-threads/src/io-threads.c b/xlators/performance/io-threads/src/io-threads.c index fa51b600d1e..ca801499491 100644 --- a/xlators/performance/io-threads/src/io-threads.c +++ b/xlators/performance/io-threads/src/io-threads.c @@ -19,6 +19,7 @@ #include #include #include "locking.h" +#include "io-threads-messages.h" void *iot_worker (void *arg); int iot_workers_scale (iot_conf_t *conf); @@ -187,9 +188,9 @@ iot_worker (void *data) if (conf->curr_count > IOT_MIN_THREADS) { conf->curr_count--; bye = 1; - gf_log (conf->this->name, GF_LOG_DEBUG, - "timeout, terminated. conf->curr_count=%d", - conf->curr_count); + gf_msg_debug (conf->this->name, 0, + "timeout, terminated. conf->curr_count=%d", + conf->curr_count); } else { timeout = 0; } @@ -341,8 +342,8 @@ iot_schedule (call_frame_t *frame, xlator_t *this, call_stub_t *stub) return -EINVAL; } out: - gf_log (this->name, GF_LOG_DEBUG, "%s scheduled as %s fop", - gf_fop_list[stub->fop], iot_get_pri_meaning (pri)); + gf_msg_debug (this->name, 0, "%s scheduled as %s fop", + gf_fop_list[stub->fop], iot_get_pri_meaning (pri)); ret = do_iot_schedule (this->private, stub, pri); return ret; } @@ -763,9 +764,10 @@ __iot_workers_scale (iot_conf_t *conf) ret = gf_thread_create (&thread, &conf->w_attr, iot_worker, conf); if (ret == 0) { conf->curr_count++; - gf_log (conf->this->name, GF_LOG_DEBUG, - "scaled threads to %d (queue_size=%d/%d)", - conf->curr_count, conf->queue_size, scale); + gf_msg_debug (conf->this->name, 0, + "scaled threads to %d (queue_size=%d/%d)", + conf->curr_count, + conf->queue_size, scale); } else { break; } @@ -810,11 +812,13 @@ set_stack_size (iot_conf_t *conf) if (err == EINVAL) { err = pthread_attr_getstacksize (&conf->w_attr, &stacksize); if (!err) - gf_log (this->name, GF_LOG_WARNING, + gf_msg (this->name, GF_LOG_WARNING, + 0, IO_THREADS_MSG_SIZE_NOT_SET, "Using default thread stack size %zd", stacksize); else - gf_log (this->name, GF_LOG_WARNING, + gf_msg (this->name, GF_LOG_WARNING, + 0, IO_THREADS_MSG_SIZE_NOT_SET, "Using default thread stack size"); } @@ -833,8 +837,9 @@ mem_acct_init (xlator_t *this) ret = xlator_mem_acct_init (this, gf_iot_mt_end + 1); if (ret != 0) { - gf_log (this->name, GF_LOG_ERROR, "Memory accounting init" - "failed"); + gf_msg (this->name, GF_LOG_ERROR, + ENOMEM, IO_THREADS_MSG_NO_MEMORY, + "Memory accounting init failed"); return ret; } @@ -925,32 +930,37 @@ init (xlator_t *this) int i = 0; if (!this->children || this->children->next) { - gf_log ("io-threads", GF_LOG_ERROR, - "FATAL: iot not configured with exactly one child"); + gf_msg ("io-threads", GF_LOG_ERROR, 0, + IO_THREADS_MSG_XLATOR_CHILD_MISCONFIGURED, + "FATAL: iot not configured " + "with exactly one child"); goto out; } if (!this->parents) { - gf_log (this->name, GF_LOG_WARNING, - "dangling volume. check volfile "); + gf_msg (this->name, GF_LOG_WARNING, 0, + IO_THREADS_MSG_VOL_MISCONFIGURED, + "dangling volume. check volfile "); } conf = (void *) GF_CALLOC (1, sizeof (*conf), gf_iot_mt_iot_conf_t); if (conf == NULL) { - gf_log (this->name, GF_LOG_ERROR, - "out of memory"); + gf_msg (this->name, GF_LOG_ERROR, ENOMEM, + IO_THREADS_MSG_NO_MEMORY, "out of memory"); goto out; } if ((ret = pthread_cond_init(&conf->cond, NULL)) != 0) { - gf_log (this->name, GF_LOG_ERROR, + gf_msg (this->name, GF_LOG_ERROR, 0, + IO_THREADS_MSG_INIT_FAILED, "pthread_cond_init failed (%d)", ret); goto out; } if ((ret = pthread_mutex_init(&conf->mutex, NULL)) != 0) { - gf_log (this->name, GF_LOG_ERROR, + gf_msg (this->name, GF_LOG_ERROR, 0, + IO_THREADS_MSG_INIT_FAILED, "pthread_mutex_init failed (%d)", ret); goto out; } @@ -978,7 +988,8 @@ init (xlator_t *this) GF_OPTION_INIT("least-rate-limit", conf->throttle.rate_limit, int32, out); if ((ret = pthread_mutex_init(&conf->throttle.lock, NULL)) != 0) { - gf_log (this->name, GF_LOG_ERROR, + gf_msg (this->name, GF_LOG_ERROR, 0, + IO_THREADS_MSG_INIT_FAILED, "pthread_mutex_init failed (%d)", ret); goto out; } @@ -992,7 +1003,8 @@ init (xlator_t *this) ret = iot_workers_scale (conf); if (ret == -1) { - gf_log (this->name, GF_LOG_ERROR, + gf_msg (this->name, GF_LOG_ERROR, 0, + IO_THREADS_MSG_INIT_FAILED, "cannot initialize worker threads, exiting init"); goto out; } -- cgit