darshan-posix-log-format.h 4.33 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
/*
 *  (C) 2009 by Argonne National Laboratory.
 *      See COPYRIGHT in top-level directory.
 */

#ifndef __DARSHAN_POSIX_LOG_FORMAT_H
#define __DARSHAN_POSIX_LOG_FORMAT_H

#include "darshan-log-format.h"

enum darshan_posix_indices
{
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
    POSIX_OPENS,              /* count of posix opens */
    POSIX_READS,              /* count of posix reads */
    POSIX_WRITES,             /* count of posix writes */
#if 0
    POSIX_SEEKS,              /* count of posix seeks */
    POSIX_STATS,              /* count of posix stat/lstat/fstats */
    POSIX_MMAPS,              /* count of posix mmaps */
#endif
    POSIX_FOPENS,
    POSIX_FREADS,
    POSIX_FWRITES,
#if 0
    POSIX_FSEEKS,
    POSIX_FSYNCS,
    POSIX_FDSYNCS,
#endif
    POSIX_MODE,                /* mode of file */
#if 0
    POSIX_BYTES_READ,          /* total bytes read */
    POSIX_BYTES_WRITTEN,       /* total bytes written */
    POSIX_MAX_BYTE_READ,       /* highest offset byte read */
    POSIX_MAX_BYTE_WRITTEN,    /* highest offset byte written */
    CONSEC_READS,              /* count of consecutive reads */
    CONSEC_WRITES,             /* count of consecutive writes */
    SEQ_READS,                 /* count of sequential reads */
    SEQ_WRITES,                /* count of sequential writes */
    RW_SWITCHES,               /* number of times switched between read and write */
    MEM_NOT_ALIGNED,           /* count of accesses not mem aligned */
    MEM_ALIGNMENT,             /* mem alignment in bytes */
    FILE_NOT_ALIGNED,          /* count of accesses not file aligned */
    FILE_ALIGNMENT,            /* file alignment in bytes */
#endif
    POSIX_MAX_READ_TIME_SIZE,
    POSIX_MAX_WRITE_TIME_SIZE,
#if 0
48
    /* buckets */
49 50 51 52 53 54 55 56 57 58
    SIZE_READ_0_100,           /* count of posix read size ranges */
    SIZE_READ_100_1K,
    SIZE_READ_1K_10K,
    SIZE_READ_10K_100K,
    SIZE_READ_100K_1M,
    SIZE_READ_1M_4M,
    SIZE_READ_4M_10M,
    SIZE_READ_10M_100M,
    SIZE_READ_100M_1G,
    SIZE_READ_1G_PLUS,
59
    /* buckets */
60 61 62 63 64 65 66 67 68 69
    SIZE_WRITE_0_100,          /* count of posix write size ranges */
    SIZE_WRITE_100_1K,
    SIZE_WRITE_1K_10K,
    SIZE_WRITE_10K_100K,
    SIZE_WRITE_100K_1M,
    SIZE_WRITE_1M_4M,
    SIZE_WRITE_4M_10M,
    SIZE_WRITE_10M_100M,
    SIZE_WRITE_100M_1G,
    SIZE_WRITE_1G_PLUS,
70
    /* counters */
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
    STRIDE1_STRIDE,             /* the four most frequently appearing strides */
    STRIDE2_STRIDE,
    STRIDE3_STRIDE,
    STRIDE4_STRIDE,
    STRIDE1_COUNT,              /* count of each of the most frequent strides */
    STRIDE2_COUNT,
    STRIDE3_COUNT,
    STRIDE4_COUNT,
    ACCESS1_ACCESS,             /* the four most frequently appearing access sizes */
    ACCESS2_ACCESS,
    ACCESS3_ACCESS,
    ACCESS4_ACCESS,
    ACCESS1_COUNT,              /* count of each of the most frequent access sizes */
    ACCESS2_COUNT,
    ACCESS3_COUNT,
    ACCESS4_COUNT,
    DEVICE,                     /* device id reported by stat */
    SIZE_AT_OPEN,
    FASTEST_RANK,
    FASTEST_RANK_BYTES,
    SLOWEST_RANK,
    SLOWEST_RANK_BYTES,
#endif
94

95
    POSIX_NUM_INDICES,
96 97 98
};

/* floating point statistics */
99
enum darshan_posix_f_indices
100 101 102 103
{
    /* NOTE: adjust cp_normalize_timestamps() function if any TIMESTAMPS are
     * added or modified in this list
     */
104 105 106 107 108 109 110 111 112 113 114 115
    POSIX_F_OPEN_TIMESTAMP = 0,    /* timestamp of first open */
    POSIX_F_READ_START_TIMESTAMP,  /* timestamp of first read */
    POSIX_F_WRITE_START_TIMESTAMP, /* timestamp of first write */
    POSIX_F_READ_END_TIMESTAMP,    /* timestamp of last read */
    POSIX_F_WRITE_END_TIMESTAMP,   /* timestamp of last write */
    POSIX_F_CLOSE_TIMESTAMP,       /* timestamp of last close */
    POSIX_F_READ_TIME,             /* cumulative posix read time */
    POSIX_F_WRITE_TIME,            /* cumulative posix write time */
    POSIX_F_META_TIME,             /* cumulative posix meta time */
    POSIX_F_MAX_READ_TIME,
    POSIX_F_MAX_WRITE_TIME,
#if 0
116 117 118 119
    /* Total I/O and meta time consumed by fastest and slowest ranks, 
     * reported in either MPI or POSIX time depending on how the file 
     * was accessed.
     */
120 121 122 123 124
    F_FASTEST_RANK_TIME,
    F_SLOWEST_RANK_TIME,
    F_VARIANCE_RANK_TIME,
    F_VARIANCE_RANK_BYTES,
#endif
125

126
    POSIX_F_NUM_INDICES,
127 128 129 130 131 132
};

struct darshan_posix_file
{
    darshan_record_id f_id;
    int64_t rank;
133 134
    int64_t counters[POSIX_NUM_INDICES];
    double fcounters[POSIX_F_NUM_INDICES];
135 136 137
};

#endif /* __DARSHAN_POSIX_LOG_FORMAT_H */