[PVFS2-CVS]
commit by pcarns in pvfs2/src/io/job: job-desc-queue.h job.c
CVS commit program
cvs at parl.clemson.edu
Wed Mar 31 12:59:52 EST 2004
Update of /projects/cvsroot/pvfs2/src/io/job
In directory parlweb:/tmp/cvs-serv14536/src/io/job
Modified Files:
job-desc-queue.h job.c
Log Message:
added event level instrumentation to most of the job calls, reorganized
definitions for operation types in pvfs2-event.h (make it so that the same
op type defines can be used in multiple api's, get rid of power of two values
for op types), probably need to rethink how (if at all) to mask off individual
operations for analysis
Index: job-desc-queue.h
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/io/job/job-desc-queue.h,v
diff -p -u -r1.20 -r1.21
--- job-desc-queue.h 26 Sep 2003 15:07:13 -0000 1.20
+++ job-desc-queue.h 31 Mar 2004 17:59:52 -0000 1.21
@@ -17,6 +17,7 @@
#include "trove-types.h"
#include "request-scheduler.h"
#include "thread-mgr.h"
+#include "pvfs2-event.h"
/* describes BMI operations */
struct bmi_desc
@@ -89,6 +90,7 @@ struct job_desc
job_context_id context_id; /* context */
struct PINT_thread_mgr_bmi_callback bmi_callback; /* callback information */
struct PINT_thread_mgr_trove_callback trove_callback; /* callback information */
+ enum PVFS_event_op event_type;
/* union of information for lower level interfaces */
union
Index: job.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/io/job/job.c,v
diff -p -u -r1.117 -r1.118
--- job.c 12 Mar 2004 17:54:50 -0000 1.117
+++ job.c 31 Mar 2004 17:59:52 -0000 1.118
@@ -272,6 +272,7 @@ int job_bmi_send(PVFS_BMI_addr_t addr,
jd->bmi_callback.fn = bmi_thread_mgr_callback;
jd->bmi_callback.data = (void*)jd;
user_ptr_internal = &jd->bmi_callback;
+ JOB_EVENT_START(PVFS_EVENT_BMI_SEND, jd->job_id);
/* post appropriate type of send */
if (!send_unexpected)
@@ -292,6 +293,7 @@ int job_bmi_send(PVFS_BMI_addr_t addr,
/* error posting */
out_status_p->error_code = ret;
out_status_p->status_user_tag = status_user_tag;
+ JOB_EVENT_END(PVFS_EVENT_BMI_SEND, 0, jd->job_id);
dealloc_job_desc(jd);
return (1);
}
@@ -302,6 +304,7 @@ int job_bmi_send(PVFS_BMI_addr_t addr,
out_status_p->error_code = 0;
out_status_p->status_user_tag = status_user_tag;
out_status_p->actual_size = size;
+ JOB_EVENT_END(PVFS_EVENT_BMI_SEND, size, jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -311,6 +314,7 @@ int job_bmi_send(PVFS_BMI_addr_t addr,
*/
*id = jd->job_id;
bmi_pending_count++;
+ jd->event_type = PVFS_EVENT_BMI_SEND;
return (0);
}
@@ -361,6 +365,7 @@ int job_bmi_send_list(PVFS_BMI_addr_t ad
jd->bmi_callback.fn = bmi_thread_mgr_callback;
jd->bmi_callback.data = (void*)jd;
user_ptr_internal = &jd->bmi_callback;
+ JOB_EVENT_START(PVFS_EVENT_BMI_SEND, jd->job_id);
/* post appropriate type of send */
if (!send_unexpected)
@@ -384,6 +389,7 @@ int job_bmi_send_list(PVFS_BMI_addr_t ad
/* error posting */
out_status_p->error_code = ret;
out_status_p->status_user_tag = status_user_tag;
+ JOB_EVENT_END(PVFS_EVENT_BMI_SEND, 0, jd->job_id);
dealloc_job_desc(jd);
return (1);
}
@@ -394,6 +400,7 @@ int job_bmi_send_list(PVFS_BMI_addr_t ad
out_status_p->error_code = 0;
out_status_p->status_user_tag = status_user_tag;
out_status_p->actual_size = total_size;
+ JOB_EVENT_END(PVFS_EVENT_BMI_SEND, total_size, jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -403,6 +410,7 @@ int job_bmi_send_list(PVFS_BMI_addr_t ad
*/
*id = jd->job_id;
bmi_pending_count++;
+ jd->event_type = PVFS_EVENT_BMI_SEND;
return (0);
}
@@ -447,6 +455,7 @@ int job_bmi_recv(PVFS_BMI_addr_t addr,
jd->bmi_callback.fn = bmi_thread_mgr_callback;
jd->bmi_callback.data = (void*)jd;
user_ptr_internal = &jd->bmi_callback;
+ JOB_EVENT_START(PVFS_EVENT_BMI_RECV, jd->job_id);
ret = BMI_post_recv(&(jd->u.bmi.id), addr, buffer, size,
&(jd->u.bmi.actual_size), buffer_type, tag,
@@ -457,6 +466,7 @@ int job_bmi_recv(PVFS_BMI_addr_t addr,
/* error posting */
out_status_p->error_code = ret;
out_status_p->status_user_tag = status_user_tag;
+ JOB_EVENT_END(PVFS_EVENT_BMI_RECV, 0, jd->job_id);
dealloc_job_desc(jd);
return (1);
}
@@ -467,6 +477,8 @@ int job_bmi_recv(PVFS_BMI_addr_t addr,
out_status_p->error_code = 0;
out_status_p->status_user_tag = status_user_tag;
out_status_p->actual_size = jd->u.bmi.actual_size;
+ JOB_EVENT_END(PVFS_EVENT_BMI_RECV, out_status_p->actual_size,
+ jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -476,6 +488,7 @@ int job_bmi_recv(PVFS_BMI_addr_t addr,
*/
*id = jd->job_id;
bmi_pending_count++;
+ jd->event_type = PVFS_EVENT_BMI_RECV;
return (0);
@@ -526,6 +539,7 @@ int job_bmi_recv_list(PVFS_BMI_addr_t ad
jd->bmi_callback.fn = bmi_thread_mgr_callback;
jd->bmi_callback.data = (void*)jd;
user_ptr_internal = &jd->bmi_callback;
+ JOB_EVENT_START(PVFS_EVENT_BMI_RECV, jd->job_id);
ret = BMI_post_recv_list(&(jd->u.bmi.id), addr, buffer_list,
size_list, list_count, total_expected_size,
@@ -537,6 +551,7 @@ int job_bmi_recv_list(PVFS_BMI_addr_t ad
/* error posting */
out_status_p->error_code = ret;
out_status_p->status_user_tag = status_user_tag;
+ JOB_EVENT_END(PVFS_EVENT_BMI_RECV, 0, jd->job_id);
dealloc_job_desc(jd);
return (1);
}
@@ -547,6 +562,8 @@ int job_bmi_recv_list(PVFS_BMI_addr_t ad
out_status_p->error_code = 0;
out_status_p->status_user_tag = status_user_tag;
out_status_p->actual_size = jd->u.bmi.actual_size;
+ JOB_EVENT_END(PVFS_EVENT_BMI_RECV, out_status_p->actual_size,
+ jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -556,6 +573,7 @@ int job_bmi_recv_list(PVFS_BMI_addr_t ad
*/
*id = jd->job_id;
bmi_pending_count++;
+ jd->event_type = PVFS_EVENT_BMI_RECV;
return (0);
@@ -1037,12 +1055,15 @@ int job_flow(flow_descriptor * flow_d,
flow_d->user_ptr = jd;
flow_d->callback = flow_callback;
+ JOB_EVENT_START(PVFS_EVENT_FLOW, jd->job_id);
+
/* post the flow */
ret = PINT_flow_post(flow_d);
if (ret < 0)
{
out_status_p->error_code = ret;
out_status_p->status_user_tag = status_user_tag;
+ JOB_EVENT_END(PVFS_EVENT_FLOW, 0, jd->job_id);
dealloc_job_desc(jd);
return (1);
}
@@ -1052,17 +1073,15 @@ int job_flow(flow_descriptor * flow_d,
out_status_p->error_code = 0;
out_status_p->status_user_tag = status_user_tag;
out_status_p->actual_size = flow_d->total_transfered;
+ JOB_EVENT_END(PVFS_EVENT_FLOW, flow_d->total_transfered, jd->job_id);
dealloc_job_desc(jd);
- JOB_EVENT_START(PVFS_EVENT_FLOW, 0);
- JOB_EVENT_END(PVFS_EVENT_FLOW, flow_d->total_transfered, 0);
return (1);
}
/* queue up the job desc. for later completion */
*id = jd->job_id;
flow_pending_count++;
-
- JOB_EVENT_START(PVFS_EVENT_FLOW, *id);
+ jd->event_type = PVFS_EVENT_FLOW;
return (0);
}
@@ -1125,6 +1144,7 @@ int job_trove_bstream_write_at(PVFS_fs_i
jd->trove_callback.fn = trove_thread_mgr_callback;
jd->trove_callback.data = (void*)jd;
user_ptr_internal = &jd->trove_callback;
+ JOB_EVENT_START(PVFS_EVENT_TROVE_WRITE_AT, jd->job_id);
#ifdef __PVFS2_TROVE_SUPPORT__
ret = trove_bstream_write_at(coll_id, handle, buffer,
@@ -1140,6 +1160,7 @@ int job_trove_bstream_write_at(PVFS_fs_i
if (ret < 0)
{
/* error posting trove operation */
+ JOB_EVENT_END(PVFS_EVENT_TROVE_WRITE_AT, 0, jd->job_id);
dealloc_job_desc(jd);
/* TODO: handle this correctly */
out_status_p->error_code = -EINVAL;
@@ -1154,6 +1175,8 @@ int job_trove_bstream_write_at(PVFS_fs_i
out_status_p->status_user_tag = status_user_tag;
out_status_p->actual_size = jd->u.trove.actual_size;
out_status_p->vtag = jd->u.trove.vtag;
+ JOB_EVENT_END(PVFS_EVENT_TROVE_WRITE_AT, out_status_p->actual_size,
+ jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -1163,6 +1186,7 @@ int job_trove_bstream_write_at(PVFS_fs_i
*/
*id = jd->job_id;
trove_pending_count++;
+ jd->event_type = PVFS_EVENT_TROVE_WRITE_AT;
return (0);
}
@@ -1211,6 +1235,7 @@ int job_trove_bstream_read_at(PVFS_fs_id
jd->trove_callback.fn = trove_thread_mgr_callback;
jd->trove_callback.data = (void*)jd;
user_ptr_internal = &jd->trove_callback;
+ JOB_EVENT_START(PVFS_EVENT_TROVE_READ_AT, jd->job_id);
#ifdef __PVFS2_TROVE_SUPPORT__
ret = trove_bstream_read_at(coll_id, handle, buffer,
@@ -1226,6 +1251,7 @@ int job_trove_bstream_read_at(PVFS_fs_id
if (ret < 0)
{
/* error posting trove operation */
+ JOB_EVENT_END(PVFS_EVENT_TROVE_READ_AT, 0, jd->job_id);
dealloc_job_desc(jd);
/* TODO: handle this correctly */
out_status_p->error_code = -EINVAL;
@@ -1240,6 +1266,8 @@ int job_trove_bstream_read_at(PVFS_fs_id
out_status_p->status_user_tag = status_user_tag;
out_status_p->actual_size = jd->u.trove.actual_size;
out_status_p->vtag = jd->u.trove.vtag;
+ JOB_EVENT_END(PVFS_EVENT_TROVE_READ_AT, out_status_p->actual_size,
+ jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -1249,6 +1277,7 @@ int job_trove_bstream_read_at(PVFS_fs_id
*/
*id = jd->job_id;
trove_pending_count++;
+ jd->event_type = PVFS_EVENT_TROVE_READ_AT;
return (0);
}
@@ -1288,6 +1317,7 @@ int job_trove_bstream_flush(PVFS_fs_id c
jd->trove_callback.fn = trove_thread_mgr_callback;
jd->trove_callback.data = (void*)jd;
user_ptr_internal = &jd->trove_callback;
+ JOB_EVENT_START(PVFS_EVENT_TROVE_BSTREAM_FLUSH, jd->job_id);
#ifdef __PVFS2_TROVE_SUPPORT__
ret = trove_bstream_flush(coll_id, handle, flags, user_ptr_internal,
@@ -1300,6 +1330,7 @@ int job_trove_bstream_flush(PVFS_fs_id c
if (ret < 0)
{
/* error posting trove operation */
+ JOB_EVENT_END(PVFS_EVENT_TROVE_BSTREAM_FLUSH, 0, jd->job_id);
dealloc_job_desc(jd);
out_status_p->error_code = ret;
out_status_p->status_user_tag = status_user_tag;
@@ -1310,6 +1341,7 @@ int job_trove_bstream_flush(PVFS_fs_id c
/* immediate completion */
out_status_p->error_code = 0;
out_status_p->status_user_tag = status_user_tag;
+ JOB_EVENT_END(PVFS_EVENT_TROVE_BSTREAM_FLUSH, 0, jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -1318,6 +1350,7 @@ int job_trove_bstream_flush(PVFS_fs_id c
*/
*id = jd->job_id;
trove_pending_count++;
+ jd->event_type = PVFS_EVENT_TROVE_BSTREAM_FLUSH;
return (0);
}
@@ -1364,6 +1397,7 @@ int job_trove_keyval_read(PVFS_fs_id col
jd->trove_callback.fn = trove_thread_mgr_callback;
jd->trove_callback.data = (void*)jd;
user_ptr_internal = &jd->trove_callback;
+ JOB_EVENT_START(PVFS_EVENT_TROVE_KEYVAL_READ, jd->job_id);
#ifdef __PVFS2_TROVE_SUPPORT__
ret = trove_keyval_read(coll_id, handle, key_p, val_p, flags,
@@ -1377,6 +1411,7 @@ int job_trove_keyval_read(PVFS_fs_id col
if (ret < 0)
{
/* error posting trove operation */
+ JOB_EVENT_END(PVFS_EVENT_TROVE_KEYVAL_READ, 0, jd->job_id);
dealloc_job_desc(jd);
out_status_p->error_code = ret;
@@ -1390,6 +1425,7 @@ int job_trove_keyval_read(PVFS_fs_id col
out_status_p->error_code = 0;
out_status_p->status_user_tag = status_user_tag;
out_status_p->vtag = jd->u.trove.vtag;
+ JOB_EVENT_END(PVFS_EVENT_TROVE_KEYVAL_READ, 0, jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -1399,6 +1435,7 @@ int job_trove_keyval_read(PVFS_fs_id col
*/
*id = jd->job_id;
trove_pending_count++;
+ jd->event_type = PVFS_EVENT_TROVE_KEYVAL_READ;
return (0);
}
@@ -1446,6 +1483,7 @@ int job_trove_keyval_read_list(PVFS_fs_i
jd->trove_callback.fn = trove_thread_mgr_callback;
jd->trove_callback.data = (void*)jd;
user_ptr_internal = &jd->trove_callback;
+ JOB_EVENT_START(PVFS_EVENT_TROVE_KEYVAL_READ_LIST, jd->job_id);
#ifdef __PVFS2_TROVE_SUPPORT__
ret = trove_keyval_read_list(coll_id, handle, key_array,
@@ -1460,6 +1498,7 @@ int job_trove_keyval_read_list(PVFS_fs_i
if (ret < 0)
{
/* error posting trove operation */
+ JOB_EVENT_END(PVFS_EVENT_TROVE_KEYVAL_READ_LIST, 0, jd->job_id);
dealloc_job_desc(jd);
out_status_p->error_code = ret;
@@ -1473,6 +1512,7 @@ int job_trove_keyval_read_list(PVFS_fs_i
out_status_p->error_code = 0;
out_status_p->status_user_tag = status_user_tag;
out_status_p->vtag = jd->u.trove.vtag;
+ JOB_EVENT_END(PVFS_EVENT_TROVE_KEYVAL_READ_LIST, 0, jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -1482,6 +1522,7 @@ int job_trove_keyval_read_list(PVFS_fs_i
*/
*id = jd->job_id;
trove_pending_count++;
+ jd->event_type = PVFS_EVENT_TROVE_KEYVAL_READ_LIST;
return (0);
}
@@ -1528,6 +1569,7 @@ int job_trove_keyval_write(PVFS_fs_id co
jd->trove_callback.fn = trove_thread_mgr_callback;
jd->trove_callback.data = (void*)jd;
user_ptr_internal = &jd->trove_callback;
+ JOB_EVENT_START(PVFS_EVENT_TROVE_KEYVAL_WRITE, jd->job_id);
#ifdef __PVFS2_TROVE_SUPPORT__
ret = trove_keyval_write(coll_id, handle, key_p, val_p, flags,
@@ -1542,6 +1584,7 @@ int job_trove_keyval_write(PVFS_fs_id co
if (ret < 0)
{
/* error posting trove operation */
+ JOB_EVENT_END(PVFS_EVENT_TROVE_KEYVAL_WRITE, 0, jd->job_id);
dealloc_job_desc(jd);
out_status_p->error_code = ret;
@@ -1555,6 +1598,7 @@ int job_trove_keyval_write(PVFS_fs_id co
out_status_p->error_code = 0;
out_status_p->status_user_tag = status_user_tag;
out_status_p->vtag = jd->u.trove.vtag;
+ JOB_EVENT_END(PVFS_EVENT_TROVE_KEYVAL_WRITE, 0, jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -1564,6 +1608,7 @@ int job_trove_keyval_write(PVFS_fs_id co
*/
*id = jd->job_id;
trove_pending_count++;
+ jd->event_type = PVFS_EVENT_TROVE_KEYVAL_WRITE;
return (0);
}
@@ -1602,6 +1647,7 @@ int job_trove_keyval_flush(PVFS_fs_id co
jd->trove_callback.fn = trove_thread_mgr_callback;
jd->trove_callback.data = (void*)jd;
user_ptr_internal = &jd->trove_callback;
+ JOB_EVENT_START(PVFS_EVENT_TROVE_KEYVAL_FLUSH, jd->job_id);
#ifdef __PVFS2_TROVE_SUPPORT__
ret = trove_keyval_flush(coll_id, handle, flags, user_ptr_internal,
@@ -1614,6 +1660,7 @@ int job_trove_keyval_flush(PVFS_fs_id co
if (ret < 0)
{
/* error posting trove operation */
+ JOB_EVENT_END(PVFS_EVENT_TROVE_KEYVAL_FLUSH, 0, jd->job_id);
dealloc_job_desc(jd);
out_status_p->error_code = ret;
out_status_p->status_user_tag = status_user_tag;
@@ -1625,6 +1672,7 @@ int job_trove_keyval_flush(PVFS_fs_id co
/* immediate completion */
out_status_p->error_code = 0;
out_status_p->status_user_tag = status_user_tag;
+ JOB_EVENT_END(PVFS_EVENT_TROVE_KEYVAL_FLUSH, 0, jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -1634,6 +1682,7 @@ int job_trove_keyval_flush(PVFS_fs_id co
*/
*id = jd->job_id;
trove_pending_count++;
+ jd->event_type = PVFS_EVENT_TROVE_KEYVAL_FLUSH;
return (0);
}
@@ -1679,6 +1728,7 @@ int job_trove_dspace_getattr(PVFS_fs_id
jd->trove_callback.fn = trove_thread_mgr_callback;
jd->trove_callback.data = (void*)jd;
user_ptr_internal = &jd->trove_callback;
+ JOB_EVENT_START(PVFS_EVENT_TROVE_DSPACE_GETATTR, jd->job_id);
#ifdef __PVFS2_TROVE_SUPPORT__
ret = trove_dspace_getattr(coll_id,
@@ -1693,6 +1743,7 @@ int job_trove_dspace_getattr(PVFS_fs_id
if (ret < 0)
{
/* error posting trove operation */
+ JOB_EVENT_END(PVFS_EVENT_TROVE_DSPACE_GETATTR, 0, jd->job_id);
dealloc_job_desc(jd);
out_status_p->error_code = ret;
out_status_p->status_user_tag = status_user_tag;
@@ -1704,6 +1755,7 @@ int job_trove_dspace_getattr(PVFS_fs_id
/* immediate completion */
out_status_p->error_code = 0;
out_status_p->status_user_tag = status_user_tag;
+ JOB_EVENT_END(PVFS_EVENT_TROVE_DSPACE_GETATTR, 0, jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -1713,6 +1765,7 @@ int job_trove_dspace_getattr(PVFS_fs_id
*/
*id = jd->job_id;
trove_pending_count++;
+ jd->event_type = PVFS_EVENT_TROVE_DSPACE_GETATTR;
return (0);
}
@@ -1758,6 +1811,7 @@ int job_trove_dspace_setattr(PVFS_fs_id
jd->trove_callback.fn = trove_thread_mgr_callback;
jd->trove_callback.data = (void*)jd;
user_ptr_internal = &jd->trove_callback;
+ JOB_EVENT_START(PVFS_EVENT_TROVE_DSPACE_SETATTR, jd->job_id);
#ifdef __PVFS2_TROVE_SUPPORT__
ret = trove_dspace_setattr(coll_id, handle, ds_attr_p,
@@ -1772,6 +1826,7 @@ int job_trove_dspace_setattr(PVFS_fs_id
if (ret < 0)
{
/* error posting trove operation */
+ JOB_EVENT_END(PVFS_EVENT_TROVE_DSPACE_SETATTR, 0, jd->job_id);
dealloc_job_desc(jd);
out_status_p->error_code = ret;
out_status_p->status_user_tag = status_user_tag;
@@ -1783,6 +1838,7 @@ int job_trove_dspace_setattr(PVFS_fs_id
/* immediate completion */
out_status_p->error_code = 0;
out_status_p->status_user_tag = status_user_tag;
+ JOB_EVENT_END(PVFS_EVENT_TROVE_DSPACE_SETATTR, 0, jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -1792,6 +1848,7 @@ int job_trove_dspace_setattr(PVFS_fs_id
*/
*id = jd->job_id;
trove_pending_count++;
+ jd->event_type = PVFS_EVENT_TROVE_DSPACE_SETATTR;
return (0);
}
@@ -1838,6 +1895,7 @@ int job_trove_bstream_resize(PVFS_fs_id
jd->trove_callback.fn = trove_thread_mgr_callback;
jd->trove_callback.data = (void*)jd;
user_ptr_internal = &jd->trove_callback;
+ JOB_EVENT_START(PVFS_EVENT_TROVE_BSTREAM_RESIZE, jd->job_id);
#ifdef __PVFS2_TROVE_SUPPORT__
ret = trove_bstream_resize(coll_id, handle, &size,
@@ -1852,6 +1910,7 @@ int job_trove_bstream_resize(PVFS_fs_id
if (ret < 0)
{
/* error posting trove operation */
+ JOB_EVENT_END(PVFS_EVENT_TROVE_BSTREAM_RESIZE, 0, jd->job_id);
dealloc_job_desc(jd);
out_status_p->error_code = ret;
out_status_p->status_user_tag = status_user_tag;
@@ -1863,6 +1922,7 @@ int job_trove_bstream_resize(PVFS_fs_id
/* immediate completion */
out_status_p->error_code = 0;
out_status_p->status_user_tag = status_user_tag;
+ JOB_EVENT_END(PVFS_EVENT_TROVE_BSTREAM_RESIZE, 0, jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -1872,6 +1932,7 @@ int job_trove_bstream_resize(PVFS_fs_id
*/
*id = jd->job_id;
trove_pending_count++;
+ jd->event_type = PVFS_EVENT_TROVE_BSTREAM_RESIZE;
return (0);
}
@@ -1937,6 +1998,7 @@ int job_trove_keyval_remove(PVFS_fs_id c
jd->trove_callback.fn = trove_thread_mgr_callback;
jd->trove_callback.data = (void*)jd;
user_ptr_internal = &jd->trove_callback;
+ JOB_EVENT_START(PVFS_EVENT_TROVE_KEYVAL_REMOVE, jd->job_id);
#ifdef __PVFS2_TROVE_SUPPORT__
ret = trove_keyval_remove(coll_id, handle, key_p, flags,
@@ -1950,6 +2012,7 @@ int job_trove_keyval_remove(PVFS_fs_id c
if (ret < 0)
{
/* error posting trove operation */
+ JOB_EVENT_END(PVFS_EVENT_TROVE_KEYVAL_REMOVE, 0, jd->job_id);
dealloc_job_desc(jd);
out_status_p->error_code = ret;
@@ -1963,6 +2026,7 @@ int job_trove_keyval_remove(PVFS_fs_id c
out_status_p->error_code = 0;
out_status_p->status_user_tag = status_user_tag;
out_status_p->vtag = jd->u.trove.vtag;
+ JOB_EVENT_END(PVFS_EVENT_TROVE_KEYVAL_REMOVE, 0, jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -1972,6 +2036,7 @@ int job_trove_keyval_remove(PVFS_fs_id c
*/
*id = jd->job_id;
trove_pending_count++;
+ jd->event_type = PVFS_EVENT_TROVE_KEYVAL_REMOVE;
return (0);
}
@@ -2042,6 +2107,7 @@ int job_trove_keyval_iterate(PVFS_fs_id
jd->trove_callback.fn = trove_thread_mgr_callback;
jd->trove_callback.data = (void*)jd;
user_ptr_internal = &jd->trove_callback;
+ JOB_EVENT_START(PVFS_EVENT_TROVE_KEYVAL_ITERATE, jd->job_id);
#ifdef __PVFS2_TROVE_SUPPORT__
ret = trove_keyval_iterate(coll_id, handle,
@@ -2057,6 +2123,7 @@ int job_trove_keyval_iterate(PVFS_fs_id
if (ret < 0)
{
/* error posting trove operation */
+ JOB_EVENT_END(PVFS_EVENT_TROVE_KEYVAL_ITERATE, 0, jd->job_id);
dealloc_job_desc(jd);
out_status_p->error_code = ret;
@@ -2072,6 +2139,7 @@ int job_trove_keyval_iterate(PVFS_fs_id
out_status_p->vtag = jd->u.trove.vtag;
out_status_p->position = jd->u.trove.position;
out_status_p->count = jd->u.trove.count;
+ JOB_EVENT_END(PVFS_EVENT_TROVE_KEYVAL_ITERATE, 0, jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -2081,6 +2149,7 @@ int job_trove_keyval_iterate(PVFS_fs_id
*/
*id = jd->job_id;
trove_pending_count++;
+ jd->event_type = PVFS_EVENT_TROVE_KEYVAL_ITERATE;
return (0);
}
@@ -2128,6 +2197,7 @@ int job_trove_dspace_iterate_handles(PVF
jd->trove_callback.fn = trove_thread_mgr_callback;
jd->trove_callback.data = (void*)jd;
user_ptr_internal = &jd->trove_callback;
+ JOB_EVENT_START(PVFS_EVENT_TROVE_DSPACE_ITERATE_HANDLES, jd->job_id);
#ifdef __PVFS2_TROVE_SUPPORT__
ret = trove_dspace_iterate_handles(coll_id,
@@ -2143,6 +2213,7 @@ int job_trove_dspace_iterate_handles(PVF
if (ret < 0)
{
/* error posting trove operation */
+ JOB_EVENT_END(PVFS_EVENT_TROVE_DSPACE_ITERATE_HANDLES, 0, jd->job_id);
dealloc_job_desc(jd);
out_status_p->error_code = ret;
@@ -2158,6 +2229,7 @@ int job_trove_dspace_iterate_handles(PVF
out_status_p->vtag = jd->u.trove.vtag;
out_status_p->position = jd->u.trove.position;
out_status_p->count = jd->u.trove.count;
+ JOB_EVENT_END(PVFS_EVENT_TROVE_DSPACE_ITERATE_HANDLES, 0, jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -2167,26 +2239,12 @@ int job_trove_dspace_iterate_handles(PVF
*/
*id = jd->job_id;
trove_pending_count++;
+ jd->event_type = PVFS_EVENT_TROVE_DSPACE_ITERATE_HANDLES;
return (0);
}
-/* iterate through all of the keys for a data space */
-int job_trove_keyval_iterate_keys(PVFS_fs_id coll_id,
- PVFS_handle handle,
- PVFS_ds_position position,
- PVFS_ds_keyval * key_array,
- int count,
- PVFS_ds_flags flags,
- PVFS_vtag * vtag,
- void *user_ptr,
- job_aint status_user_tag,
- job_status_s * out_status_p,
- job_id_t * id,
- job_context_id context_id);
-
-
/* job_trove_keyval_iterate_keys()
*
* iterate through all of the keys for a data space
@@ -2252,6 +2310,7 @@ int job_trove_dspace_create(PVFS_fs_id c
jd->trove_callback.fn = trove_thread_mgr_callback;
jd->trove_callback.data = (void*)jd;
user_ptr_internal = &jd->trove_callback;
+ JOB_EVENT_START(PVFS_EVENT_TROVE_DSPACE_CREATE, jd->job_id);
#ifdef __PVFS2_TROVE_SUPPORT__
ret = trove_dspace_create(coll_id,
@@ -2269,6 +2328,7 @@ int job_trove_dspace_create(PVFS_fs_id c
if (ret < 0)
{
/* error posting trove operation */
+ JOB_EVENT_END(PVFS_EVENT_TROVE_DSPACE_CREATE, 0, jd->job_id);
dealloc_job_desc(jd);
/* TODO: handle this correctly */
out_status_p->error_code = -EINVAL;
@@ -2282,6 +2342,7 @@ int job_trove_dspace_create(PVFS_fs_id c
out_status_p->error_code = 0;
out_status_p->status_user_tag = status_user_tag;
out_status_p->handle = jd->u.trove.handle;
+ JOB_EVENT_END(PVFS_EVENT_TROVE_DSPACE_CREATE, 0, jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -2291,6 +2352,7 @@ int job_trove_dspace_create(PVFS_fs_id c
*/
*id = jd->job_id;
trove_pending_count++;
+ jd->event_type = PVFS_EVENT_TROVE_DSPACE_CREATE;
return (0);
}
@@ -2333,6 +2395,7 @@ int job_trove_dspace_remove(PVFS_fs_id c
jd->trove_callback.fn = trove_thread_mgr_callback;
jd->trove_callback.data = (void*)jd;
user_ptr_internal = &jd->trove_callback;
+ JOB_EVENT_START(PVFS_EVENT_TROVE_DSPACE_REMOVE, jd->job_id);
#ifdef __PVFS2_TROVE_SUPPORT__
ret = trove_dspace_remove(coll_id,
@@ -2347,6 +2410,7 @@ int job_trove_dspace_remove(PVFS_fs_id c
if (ret < 0)
{
/* error posting trove operation */
+ JOB_EVENT_END(PVFS_EVENT_TROVE_DSPACE_REMOVE, 0, jd->job_id);
dealloc_job_desc(jd);
/* TODO: handle this correctly */
out_status_p->error_code = -EINVAL;
@@ -2359,6 +2423,7 @@ int job_trove_dspace_remove(PVFS_fs_id c
/* immediate completion */
out_status_p->error_code = 0;
out_status_p->status_user_tag = status_user_tag;
+ JOB_EVENT_END(PVFS_EVENT_TROVE_DSPACE_REMOVE, 0, jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -2368,6 +2433,7 @@ int job_trove_dspace_remove(PVFS_fs_id c
*/
*id = jd->job_id;
trove_pending_count++;
+ jd->event_type = PVFS_EVENT_TROVE_DSPACE_REMOVE;
return (0);
}
@@ -2410,6 +2476,7 @@ int job_trove_dspace_verify(PVFS_fs_id c
jd->trove_callback.fn = trove_thread_mgr_callback;
jd->trove_callback.data = (void*)jd;
user_ptr_internal = &jd->trove_callback;
+ JOB_EVENT_START(PVFS_EVENT_TROVE_DSPACE_VERIFY, jd->job_id);
#ifdef __PVFS2_TROVE_SUPPORT__
ret = trove_dspace_verify(coll_id,
@@ -2424,6 +2491,7 @@ int job_trove_dspace_verify(PVFS_fs_id c
if (ret < 0)
{
/* error posting trove operation */
+ JOB_EVENT_END(PVFS_EVENT_TROVE_DSPACE_VERIFY, 0, jd->job_id);
dealloc_job_desc(jd);
/* TODO: handle this correctly */
out_status_p->error_code = -EINVAL;
@@ -2436,6 +2504,7 @@ int job_trove_dspace_verify(PVFS_fs_id c
/* immediate completion */
out_status_p->error_code = 0;
out_status_p->status_user_tag = status_user_tag;
+ JOB_EVENT_END(PVFS_EVENT_TROVE_DSPACE_VERIFY, 0, jd->job_id);
dealloc_job_desc(jd);
return (ret);
}
@@ -2445,6 +2514,7 @@ int job_trove_dspace_verify(PVFS_fs_id c
*/
*id = jd->job_id;
trove_pending_count++;
+ jd->event_type = PVFS_EVENT_TROVE_DSPACE_VERIFY;
return (0);
}
@@ -3519,7 +3589,6 @@ static void fill_status(struct job_desc
case JOB_FLOW:
status->error_code = jd->u.flow.flow_d->error_code;
status->actual_size = jd->u.flow.flow_d->total_transfered;
- JOB_EVENT_END(PVFS_EVENT_FLOW, status->actual_size, jd->job_id);
break;
case JOB_REQ_SCHED:
status->error_code = jd->u.req_sched.error_code;
@@ -3545,6 +3614,9 @@ static void fill_status(struct job_desc
status->error_code = jd->u.req_sched.error_code;
break;
}
+
+ if(jd->event_type)
+ JOB_EVENT_END(jd->event_type, status->actual_size, jd->job_id);
return;
}
More information about the PVFS2-CVS
mailing list