From 89bd58e170118e4d534e6113c1c368c1a39cc919 Mon Sep 17 00:00:00 2001 From: Amar Tumballi Date: Thu, 12 Jul 2012 22:59:04 +0530 Subject: core: remove the unused files - round 2 BUG: 764890 Change-Id: I3eb626eeaa2a09f0e248444f560c2a0eaf46c642 Signed-off-by: Amar Tumballi Reviewed-on: http://review.gluster.com/3660 Tested-by: Gluster Build System Reviewed-by: Anand Avati --- scheduler/random/src/random.c | 305 ------------------------------------------ 1 file changed, 305 deletions(-) delete mode 100644 scheduler/random/src/random.c (limited to 'scheduler/random/src/random.c') diff --git a/scheduler/random/src/random.c b/scheduler/random/src/random.c deleted file mode 100644 index 03a284b66bd..00000000000 --- a/scheduler/random/src/random.c +++ /dev/null @@ -1,305 +0,0 @@ -/* - Copyright (c) 2006-2011 Gluster, Inc. - This file is part of GlusterFS. - - GlusterFS is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published - by the Free Software Foundation; either version 3 of the License, - or (at your option) any later version. - - GlusterFS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see - . -*/ - -#include -#include - -#ifndef _CONFIG_H -#define _CONFIG_H -#include "config.h" -#endif - -#include "random.h" -#include "random-mem-types.h" - -#define RANDOM_LIMITS_MIN_FREE_DISK_DEFAULT 15 -#define RANDOM_REFRESH_INTERVAL_DEFAULT 10 - - -static int32_t -random_init (xlator_t *xl) -{ - struct random_struct *random_buf = NULL; - xlator_list_t *trav_xl = xl->children; - data_t *limit = NULL; - int32_t index = 0; - - random_buf = GF_CALLOC (1, sizeof (struct random_struct), - gf_random_mt_random_struct); - ERR_ABORT (random_buf); - - /* Set the seed for the 'random' function */ - srandom ((uint32_t) time (NULL)); - - limit = dict_get (xl->options, "scheduler.limits.min-free-disk"); - if (limit) { - if (gf_string2percent (data_to_str (limit), - &random_buf->min_free_disk) != 0) { - gf_log ("random", GF_LOG_ERROR, - "invalid number format \"%s\" of \"option " - "scheduler.limits.min-free-disk\"", - limit->data); - return -1; - } - if (random_buf->min_free_disk >= 100) { - gf_log ("random", GF_LOG_ERROR, - "check the \"option random.limits.min-free" - "-disk\", it should be percentage value"); - return -1; - } - - } else { - gf_log ("random", GF_LOG_WARNING, - "No option for limit min-free-disk given, " - "defaulting it to 5%%"); - random_buf->min_free_disk = - RANDOM_LIMITS_MIN_FREE_DISK_DEFAULT; - } - - limit = dict_get (xl->options, "scheduler.refresh-interval"); - if (limit) { - if (gf_string2time (data_to_str (limit), - &random_buf->refresh_interval) != 0) { - gf_log ("random", GF_LOG_ERROR, - "invalid number format \"%s\" of " - "\"option random.refresh-interval\"", - limit->data); - return -1; - } - } else { - random_buf->refresh_interval = RANDOM_REFRESH_INTERVAL_DEFAULT; - } - - while (trav_xl) { - index++; - trav_xl = trav_xl->next; - } - random_buf->child_count = index; - random_buf->array = GF_CALLOC (index, - sizeof (struct random_sched_struct), - gf_random_mt_random_sched_struct); - ERR_ABORT (random_buf->array); - trav_xl = xl->children; - index = 0; - - while (trav_xl) { - random_buf->array[index].xl = trav_xl->xlator; - random_buf->array[index].eligible = 1; - trav_xl = trav_xl->next; - index++; - } - pthread_mutex_init (&random_buf->random_mutex, NULL); - - // put it at the proper place - *((long *)xl->private) = (long)random_buf; - return 0; -} - -static void -random_fini (xlator_t *xl) -{ - struct random_struct *random_buf = NULL; - - random_buf = (struct random_struct *)*((long *)xl->private); - pthread_mutex_destroy (&random_buf->random_mutex); - GF_FREE (random_buf->array); - GF_FREE (random_buf); -} - - -static int32_t -update_stat_array_cbk (call_frame_t *frame, - void *cookie, - xlator_t *xl, - int32_t op_ret, - int32_t op_errno, - struct xlator_stats *trav_stats) -{ - int32_t idx = 0; - int32_t percent = 0; - struct random_struct *random_buf = NULL; - - random_buf = (struct random_struct *)*((long *)xl->private); - - pthread_mutex_lock (&random_buf->random_mutex); - for (idx = 0; idx < random_buf->child_count; idx++) { - if (strcmp (random_buf->array[idx].xl->name, - (char *)cookie) == 0) - break; - } - pthread_mutex_unlock (&random_buf->random_mutex); - - if (op_ret == 0) { - percent = ((trav_stats->free_disk *100) / - trav_stats->total_disk_size); - if (random_buf->min_free_disk > percent) { - random_buf->array[idx].eligible = 0; - } else { - random_buf->array[idx].eligible = 1; - } - } else { - random_buf->array[idx].eligible = 0; - } - - STACK_DESTROY (frame->root); - return 0; -} - -static void -update_stat_array (xlator_t *xl) -{ - int32_t idx; - struct random_struct *random_buf = NULL; - call_frame_t *frame = NULL; - call_pool_t *pool = xl->ctx->pool; - - random_buf = (struct random_struct *)*((long *)xl->private); - for (idx = 0; idx < random_buf->child_count; idx++) { - frame = create_frame (xl, pool); - - STACK_WIND_COOKIE (frame, - update_stat_array_cbk, - random_buf->array[idx].xl->name, - random_buf->array[idx].xl, - (random_buf->array[idx].xl)->mops->stats, - 0); - } - return ; -} - -static void -random_update (xlator_t *xl) -{ - struct timeval tv; - struct random_struct *random_buf = NULL; - - random_buf = (struct random_struct *)*((long *)xl->private); - - gettimeofday(&tv, NULL); - if (tv.tv_sec > (random_buf->refresh_interval + - random_buf->last_stat_entry.tv_sec)) { - update_stat_array (xl); - random_buf->last_stat_entry.tv_sec = tv.tv_sec; - } -} - -static xlator_t * -random_schedule (xlator_t *xl, const void *path) -{ - struct random_struct *random_buf = NULL; - int32_t rand = 0; - int32_t try = 0; - - random_buf = (struct random_struct *)*((long *)xl->private); - - rand = (int32_t) (1.0*random_buf->child_count * - (random() / (RAND_MAX + 1.0))); - - random_update (xl); - - while (!random_buf->array[rand].eligible) { - if (try++ > 100) { - /* there is a chance of this becoming a - infinite loop otherwise. */ - break; - } - rand = (int32_t) (1.0*random_buf->child_count * - (random() / (RAND_MAX + 1.0))); - } - return random_buf->array[rand].xl; -} - -int32_t -random_mem_acct_init (xlator_t *this) -{ - int ret = -1; - - if (!this) - return ret; - - ret = xlator_mem_acct_init (this, gf_random_mt_end + 1); - - if (ret != 0) { - gf_log (this->name, GF_LOG_ERROR, "Memory accounting init" - " failed"); - return ret; - } - - return ret; -} - -/** - * notify - */ -void -random_notify (xlator_t *xl, int32_t event, void *data) -{ - struct random_struct *random_buf = NULL; - int32_t idx = 0; - - random_buf = (struct random_struct *)*((long *)xl->private); - if (!random_buf) - return; - - for (idx = 0; idx < random_buf->child_count; idx++) { - if (random_buf->array[idx].xl == (xlator_t *)data) - break; - } - - switch (event) - { - case GF_EVENT_CHILD_UP: - { - //random_buf->array[idx].eligible = 1; - } - break; - case GF_EVENT_CHILD_DOWN: - { - random_buf->array[idx].eligible = 0; - } - break; - default: - { - ; - } - break; - } - -} - -struct sched_ops sched = { - .init = random_init, - .fini = random_fini, - .update = random_update, - .schedule = random_schedule, - .notify = random_notify, - .mem_acct_init = random_mem_acct_init, -}; - -struct volume_options options[] = { - { .key = { "scheduler.refresh-interval", - "random.refresh-interval" }, - .type = GF_OPTION_TYPE_TIME - }, - { .key = { "scheduler.limits.min-free-disk", - "random.limits.min-free-disk" }, - .type = GF_OPTION_TYPE_PERCENT - }, - { .key = {NULL} } -}; -- cgit