From b14c589195b51782b0d523891b8dabe0cc431f2e Mon Sep 17 00:00:00 2001 From: Shane Snyder Date: Mon, 11 Nov 2024 13:17:06 -0600 Subject: [PATCH] drop DAOS records with no real I/O activity --- darshan-runtime/lib/darshan-daos.c | 48 ++++++++++++++++++++++++++++-- darshan-runtime/lib/darshan-dfs.c | 1 - 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/darshan-runtime/lib/darshan-daos.c b/darshan-runtime/lib/darshan-daos.c index 26c75698..66e7c103 100644 --- a/darshan-runtime/lib/darshan-daos.c +++ b/darshan-runtime/lib/darshan-daos.c @@ -188,7 +188,7 @@ static int my_rank = -1; #define DAOS_GET_POOLCONT_INFO(__coh, __poolcont_info) \ HASH_FIND(hlink, daos_runtime->poolcont_hash, &__coh, sizeof(__coh), __poolcont_info) -#define DFS_FREE_POOLCONT_INFO(__poolcont_info) do { \ +#define DAOS_FREE_POOLCONT_INFO(__poolcont_info) do { \ HASH_DELETE(hlink, daos_runtime->poolcont_hash, __poolcont_info); \ free(__poolcont_info); \ } while(0) @@ -346,7 +346,7 @@ int DARSHAN_DECL(daos_cont_close)(daos_handle_t coh, daos_event_t *ev) { DAOS_GET_POOLCONT_INFO(coh, poolcont_info); if(poolcont_info) - DFS_FREE_POOLCONT_INFO(poolcont_info); + DAOS_FREE_POOLCONT_INFO(poolcont_info); } DAOS_UNLOCK(); } @@ -1510,12 +1510,54 @@ static void daos_output( void **daos_buf, int *daos_buf_sz) { int daos_rec_count; + struct darshan_daos_object *daos_rec_buf = *(struct darshan_daos_object **)daos_buf; + int i, j; + int ops; DAOS_LOCK(); assert(daos_runtime); - /* just pass back our updated total buffer size -- no need to update buffer */ daos_rec_count = daos_runtime->obj_rec_count; + + /* filter out records that have been opened, but don't have any + * I/O operations + */ + for(i=0; ifrozen = 1; diff --git a/darshan-runtime/lib/darshan-dfs.c b/darshan-runtime/lib/darshan-dfs.c index bc5bdfb9..1ea85c50 100644 --- a/darshan-runtime/lib/darshan-dfs.c +++ b/darshan-runtime/lib/darshan-dfs.c @@ -1214,7 +1214,6 @@ static void dfs_output( */ for(i=0; i