Skip to content

Commit

Permalink
"energy_saving configuration one"
Browse files Browse the repository at this point in the history
git-svn-id: svn+ssh://137.99.13.219/srv/svn/ofsproject/ofsproject/2.8.4-stock/osd_branch@60 dfcdf660-53a5-499b-8775-f9b82cf2d3b9
  • Loading branch information
cek10006 committed Mar 26, 2012
1 parent d5d9520 commit 8a5c5af
Show file tree
Hide file tree
Showing 10 changed files with 53 additions and 64 deletions.
12 changes: 6 additions & 6 deletions config.save
Original file line number Diff line number Diff line change
Expand Up @@ -435,7 +435,7 @@ $config_headers
Report bugs to the package provider."

ac_cs_config=""
ac_cs_config="'--prefix=/home/cengiz/'"
ac_cs_version="\
config.status
configured by ./configure, generated by GNU Autoconf 2.68,
Expand All @@ -445,7 +445,7 @@ Copyright (C) 2010 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."

ac_pwd='/usr/src/orangefs-osd'
ac_pwd='/home/cengiz/orangefs-osd'
srcdir='.'
INSTALL='/usr/bin/install -c'
test -n "$AWK" || AWK=awk
Expand Down Expand Up @@ -525,7 +525,7 @@ if $ac_cs_silent; then
fi

if $ac_cs_recheck; then
set X '/bin/bash' './configure' $ac_configure_extra_args --no-create --no-recursion
set X '/bin/bash' './configure' '--prefix=/home/cengiz/' $ac_configure_extra_args --no-create --no-recursion
shift
$as_echo "running CONFIG_SHELL=/bin/bash $*" >&6
CONFIG_SHELL='/bin/bash'
Expand Down Expand Up @@ -708,9 +708,9 @@ S["ENABLE_COVERAGE"]=""
S["BUILD_FUSE"]=""
S["FUSE_CFLAGS"]=""
S["FUSE_LDFLAGS"]=""
S["SRC_ABSOLUTE_TOP"]="/usr/src/orangefs-osd"
S["SRC_ABSOLUTE_TOP"]="/home/cengiz/orangefs-osd"
S["SRC_RELATIVE_TOP"]="./"
S["BUILD_ABSOLUTE_TOP"]="/usr/src/orangefs-osd"
S["BUILD_ABSOLUTE_TOP"]="/home/cengiz/orangefs-osd"
S["LINUX24_KERNEL_MINOR_VER"]=""
S["LINUX24_KERNEL_SRC"]=""
S["LINUX_KERNEL_SRC"]=""
Expand Down Expand Up @@ -794,7 +794,7 @@ S["libexecdir"]="${exec_prefix}/libexec"
S["sbindir"]="${exec_prefix}/sbin"
S["bindir"]="${exec_prefix}/bin"
S["program_transform_name"]="s,x,x,"
S["prefix"]="/usr/local"
S["prefix"]="/home/cengiz"
S["exec_prefix"]="${prefix}"
S["PACKAGE_URL"]=""
S["PACKAGE_BUGREPORT"]=""
Expand Down
2 changes: 1 addition & 1 deletion src/apps/admin/pvfs2-cp.c
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ int main (int argc, char ** argv)
resolve_filename(&dest, user_opts->destfile);

PVFS_util_gen_credentials(&credentials);

ret = generic_open(&src, &credentials, 0, 0, NULL, OPEN_SRC);
if (ret < 0)
{
Expand Down
18 changes: 17 additions & 1 deletion src/client/sysint/sys-create.sm
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,21 @@ PVFS_error PVFS_sys_create(
{
PVFS_error ret = -PVFS_EINVAL, error = 0;
PVFS_sys_op_id op_id;
int ios_num;
struct server_configuration_s *server_config;

server_config = PINT_get_server_config_struct(
parent_ref.fs_id);
PINT_cached_config_get_num_io(parent_ref.fs_id, &ios_num);
if(server_config->energysaving)
{
if(server_config->econumnodes >= ios_num)
{
server_config->econumnodes = 0;
server_config->energysaving = 0;
}
}
PINT_put_server_config_struct(server_config);

gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_sys_create entered\n");

Expand Down Expand Up @@ -713,6 +728,7 @@ static PINT_sm_action create_create_setup_msgpair(
sm_p->object_ref.fs_id,
sm_p->u.create.attr,
sm_p->u.create.num_data_files,
server_config->econumnodes,
sm_p->u.create.layout,
sm_p->hints);
js_p->error_code = 0;
Expand Down Expand Up @@ -788,7 +804,7 @@ static PINT_sm_action create_datafiles_setup_msgpair_array(
&sm_p->u.create.layout,
sm_p->u.create.data_server_addrs,
sm_p->u.create.io_handle_extent_array);

if(ret < 0)
{
gossip_err("create: failed to map the layout to a set of IO servers\n");
Expand Down
26 changes: 21 additions & 5 deletions src/common/misc/pint-cached-config.c
Original file line number Diff line number Diff line change
Expand Up @@ -1387,6 +1387,8 @@ int PINT_cached_config_get_server_list(
PVFS_fs_id fs_id,
PINT_dist *dist,
int num_dfiles_req,
int user_id,
int num_energy_nodes,
PVFS_sys_layout *layout,
const char ***server_names,
int *server_count)
Expand Down Expand Up @@ -1433,21 +1435,35 @@ int PINT_cached_config_get_server_list(
return ret;
}

servers = malloc(sizeof(*servers) * num_io_servers);
if(num_energy_nodes)
{
servers = malloc(sizeof(*servers) * num_energy_nodes);
} else {
servers = malloc(sizeof(*servers) * num_io_servers);
}

if(!servers)
{
gossip_err("Failed to allocate server address list\n");
free(server_addrs);
return -PVFS_ENOMEM;
}

for(i = 0; i < num_io_servers; ++i)
{
servers[i] = BMI_addr_rev_lookup(server_addrs[i]);
if(num_energy_nodes) {
for(i = 0; i < num_energy_nodes; ++i)
{
servers[i] = BMI_addr_rev_lookup(server_addrs[(i+(user_id % num_io_servers)) % num_io_servers]);
}
*server_count = num_energy_nodes;
} else {
for(i = 0; i < num_io_servers; ++i)
{
servers[i] = BMI_addr_rev_lookup(server_addrs[i]);
}
*server_count = num_io_servers;
}
free(server_addrs);

*server_count = num_io_servers;
*server_names = servers;

return 0;
Expand Down
2 changes: 2 additions & 0 deletions src/common/misc/pint-cached-config.h
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,8 @@ int PINT_cached_config_get_server_list(
PVFS_fs_id fs_id,
PINT_dist *dist,
int num_dfiles_req,
int user_id,
int num_energy_nodes,
PVFS_sys_layout *layout,
const char ***server_names,
int *server_count);
Expand Down
40 changes: 0 additions & 40 deletions src/common/misc/server-config.c
Original file line number Diff line number Diff line change
Expand Up @@ -4278,46 +4278,6 @@ static char *get_handle_range_str(
return ret;
}

char *assign_io_servers(
struct server_configuration_s *config_s,
struct filesystem_configuration_s *fs)
{
char *ret = (char *)0;
PINT_llist *cur = NULL;
struct host_handle_mapping_s *cur_h_mapping = NULL;
int num_io_servers = 0;
gossip_err("%d\n", fs->exp_anon_gid);

if (config_s && config_s->host_id && fs)
{
cur = fs->data_handle_ranges;
while(cur)
{
cur_h_mapping = PINT_llist_head(cur);
if (!cur_h_mapping)
{
break;
}
assert(cur_h_mapping->alias_mapping);
assert(cur_h_mapping->alias_mapping->host_alias);
assert(cur_h_mapping->handle_range);

num_io_servers++;

cur = PINT_llist_next(cur);
}
}

if (config_s->econumnodes > num_io_servers)
{
gossip_err("Turning off energy saving mode\n");
config_s->econumnodes = 0;
config_s->energysaving = 0;
}

return ret;
}

/*
returns 1 if the specified configuration object is valid
(i.e. contains values that make sense); 0 otherwise
Expand Down
4 changes: 0 additions & 4 deletions src/common/misc/server-config.h
Original file line number Diff line number Diff line change
Expand Up @@ -284,10 +284,6 @@ char *PINT_config_get_merged_handle_range_str(
struct server_configuration_s *config_s,
struct filesystem_configuration_s *fs);

char *assign_io_servers(
struct server_configuration_s *config_s,
struct filesystem_configuration_s *fs);

int PINT_config_is_valid_configuration(
struct server_configuration_s *config_s);

Expand Down
6 changes: 4 additions & 2 deletions src/proto/pvfs2-req-proto.h
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ struct PVFS_servreq_create
{
PVFS_fs_id fs_id;
PVFS_object_attr attr;

int32_t num_energy_nodes;
int32_t num_dfiles_req;
/* NOTE: leave layout as final field so that we can deal with encoding
* errors */
Expand All @@ -184,7 +184,7 @@ struct PVFS_servreq_create
endecode_fields_5_struct(
PVFS_servreq_create,
PVFS_fs_id, fs_id,
skip4,,
int32_t, num_energy_nodes,
PVFS_object_attr, attr,
int32_t, num_dfiles_req,
PVFS_sys_layout, layout);
Expand All @@ -197,6 +197,7 @@ endecode_fields_5_struct(
__fsid, \
__attr, \
__num_dfiles_req, \
__num_energy_nodes, \
__layout, \
__hints) \
do { \
Expand All @@ -207,6 +208,7 @@ do { \
(__req).hints = (__hints); \
(__req).u.create.fs_id = (__fsid); \
(__req).u.create.num_dfiles_req = (__num_dfiles_req); \
(__req).u.create.num_energy_nodes = (__num_energy_nodes); \
(__attr).objtype = PVFS_TYPE_METAFILE; \
mask = (__attr).mask; \
(__attr).mask = PVFS_ATTR_COMMON_ALL; \
Expand Down
2 changes: 2 additions & 0 deletions src/server/create.sm
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@ static int check_stuffed(
s_op->req->u.create.fs_id,
s_op->req->u.create.attr.u.meta.dist,
s_op->req->u.create.num_dfiles_req,
s_op->req->credentials.uid,
s_op->req->u.create.num_energy_nodes,
&s_op->req->u.create.layout,
&s_op->u.create.io_servers,
&s_op->u.create.num_io_servers);
Expand Down
5 changes: 0 additions & 5 deletions src/server/pvfs2-server.c
Original file line number Diff line number Diff line change
Expand Up @@ -905,11 +905,6 @@ static int server_initialize_subsystems(
PINT_config_get_merged_handle_range_str(
&server_config, cur_fs);

if(server_config.energysaving)
{
assign_io_servers(&server_config, cur_fs);
}

/*
* error out if we're not configured to house either a meta or
* data handle range at all.
Expand Down

0 comments on commit 8a5c5af

Please sign in to comment.