[Pvfs2-cvs] commit by slang in pvfs2/src/server: io.sm pvfs2-server.c

CVS commit program cvs at parl.clemson.edu
Tue Aug 15 16:24:27 EDT 2006


Update of /projects/cvsroot/pvfs2/src/server
In directory parlweb1:/tmp/cvs-serv18021/src/server

Modified Files:
	io.sm pvfs2-server.c 
Log Message:
[phil]: flow-proto-tuning: This patch adds "FlowBufferSizeBytes" and "FlowBuffersPerFlow" options to the configuration file format.  They allow you to specify the buffer size that the default flow protocol will use as well as the maximum number of buffers to use per flow.  Note that if you change either of these parameters, then you need to remount any active clients so that they pick up the configuration change before performing any I/O.

[phil]: max-aio: This patch adds "TroveMaxConcurrentIO" to the configuration file format.  It allows you to specify the maximum number of I/O operations that trove will allow to proceed concurrently (currently 16).  Note from the previous email regarding AIO that depending on your access pattern, AIO may queue all of your operations anyway regardless of this setting.  It probably doesn't have much effect unless you are accessing more than one file at a time, or if you are using an alternative to the stock AIO implementation.


Index: io.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/io.sm,v
diff -p -u -r1.62 -r1.63
--- io.sm	5 Jun 2006 19:57:28 -0000	1.62
+++ io.sm	15 Aug 2006 20:24:27 -0000	1.63
@@ -162,6 +162,7 @@ static int io_start_flow(PINT_server_op 
     int err = -PVFS_EIO;
     job_id_t tmp_id;
     struct server_configuration_s *user_opts = get_server_config_struct();
+    struct filesystem_configuration_s *fs_conf;
         
     s_op->u.io.flow_d = PINT_flow_alloc();
     if (!s_op->u.io.flow_d)
@@ -200,6 +201,15 @@ static int io_start_flow(PINT_server_op 
     s_op->u.io.flow_d->tag = s_op->tag;
     s_op->u.io.flow_d->user_ptr = NULL;
     s_op->u.io.flow_d->type = s_op->req->u.io.flow_type;
+
+    fs_conf = PINT_config_find_fs_id(user_opts, 
+        s_op->req->u.io.fs_id);
+    if(fs_conf)
+    {
+        /* pick up any buffer settings overrides from fs conf */
+        s_op->u.io.flow_d->buffer_size = fs_conf->fp_buffer_size;
+        s_op->u.io.flow_d->buffers_per_flow = fs_conf->fp_buffers_per_flow;
+    }
 
     gossip_debug(GOSSIP_IO_DEBUG, "flow: fsize: %lld, " 
         "server_nr: %d, server_ct: %d\n",

Index: pvfs2-server.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/pvfs2-server.c,v
diff -p -u -r1.220 -r1.221
--- pvfs2-server.c	11 Aug 2006 19:18:08 -0000	1.220
+++ pvfs2-server.c	15 Aug 2006 20:24:27 -0000	1.221
@@ -964,6 +964,10 @@ static int server_initialize_subsystems(
         &server_config.trove_alt_aio_mode);
     /* this should never fail */
     assert(ret == 0);
+    ret = trove_collection_setinfo(0, 0, TROVE_MAX_CONCURRENT_IO,
+        &server_config.trove_max_concurrent_io);
+    /* this should never fail */
+    assert(ret == 0);
 
     /* parse port number and allow trove to use it to help differentiate
      * shmem regions if needed



More information about the Pvfs2-cvs mailing list