Changeset d60d30e for libcfa/src/concurrency/stats.cfa
- Timestamp:
- Feb 19, 2021, 3:10:10 PM (2 years ago)
- Branches:
- arm-eh, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 4c4d854
- Parents:
- 4f762d3
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/stats.cfa
r4f762d3 rd60d30e 25 25 26 26 #if defined(CFA_HAVE_LINUX_IO_URING_H) 27 stats->io.submit_q.submit_avg.rdy = 0; 28 stats->io.submit_q.submit_avg.csm = 0; 29 stats->io.submit_q.submit_avg.cnt = 0; 30 stats->io.submit_q.look_avg.val = 0; 31 stats->io.submit_q.look_avg.cnt = 0; 32 stats->io.submit_q.look_avg.block = 0; 33 stats->io.submit_q.alloc_avg.val = 0; 34 stats->io.submit_q.alloc_avg.cnt = 0; 35 stats->io.submit_q.alloc_avg.block = 0; 36 stats->io.submit_q.helped = 0; 37 stats->io.submit_q.leader = 0; 38 stats->io.submit_q.busy = 0; 39 stats->io.complete_q.completed_avg.val = 0; 40 stats->io.complete_q.completed_avg.cnt = 0; 41 stats->io.complete_q.blocks = 0; 27 stats->io.alloc.fast = 0; 28 stats->io.alloc.slow = 0; 29 stats->io.alloc.fail = 0; 30 stats->io.alloc.revoke = 0; 31 stats->io.alloc.block = 0; 32 stats->io.submit.fast = 0; 33 stats->io.submit.slow = 0; 34 stats->io.flush.external = 0; 35 stats->io.calls.count = 0; 36 stats->io.calls.submitted = 0; 37 stats->io.calls.completed = 0; 38 stats->io.calls.blocks = 0; 39 stats->io.calls.errors.busy = 0; 42 40 #endif 43 41 } … … 60 58 61 59 #if defined(CFA_HAVE_LINUX_IO_URING_H) 62 __atomic_fetch_add( &cltr->io.submit_q.submit_avg.rdy , proc->io.submit_q.submit_avg.rdy , __ATOMIC_SEQ_CST ); proc->io.submit_q.submit_avg.rdy = 0; 63 __atomic_fetch_add( &cltr->io.submit_q.submit_avg.csm , proc->io.submit_q.submit_avg.csm , __ATOMIC_SEQ_CST ); proc->io.submit_q.submit_avg.csm = 0; 64 __atomic_fetch_add( &cltr->io.submit_q.submit_avg.avl , proc->io.submit_q.submit_avg.avl , __ATOMIC_SEQ_CST ); proc->io.submit_q.submit_avg.avl = 0; 65 __atomic_fetch_add( &cltr->io.submit_q.submit_avg.cnt , proc->io.submit_q.submit_avg.cnt , __ATOMIC_SEQ_CST ); proc->io.submit_q.submit_avg.cnt = 0; 66 __atomic_fetch_add( &cltr->io.submit_q.look_avg.val , proc->io.submit_q.look_avg.val , __ATOMIC_SEQ_CST ); proc->io.submit_q.look_avg.val = 0; 67 __atomic_fetch_add( &cltr->io.submit_q.look_avg.cnt , proc->io.submit_q.look_avg.cnt , __ATOMIC_SEQ_CST ); proc->io.submit_q.look_avg.cnt = 0; 68 __atomic_fetch_add( &cltr->io.submit_q.look_avg.block , proc->io.submit_q.look_avg.block , __ATOMIC_SEQ_CST ); proc->io.submit_q.look_avg.block = 0; 69 __atomic_fetch_add( &cltr->io.submit_q.alloc_avg.val , proc->io.submit_q.alloc_avg.val , __ATOMIC_SEQ_CST ); proc->io.submit_q.alloc_avg.val = 0; 70 __atomic_fetch_add( &cltr->io.submit_q.alloc_avg.cnt , proc->io.submit_q.alloc_avg.cnt , __ATOMIC_SEQ_CST ); proc->io.submit_q.alloc_avg.cnt = 0; 71 __atomic_fetch_add( &cltr->io.submit_q.alloc_avg.block , proc->io.submit_q.alloc_avg.block , __ATOMIC_SEQ_CST ); proc->io.submit_q.alloc_avg.block = 0; 72 __atomic_fetch_add( &cltr->io.submit_q.helped , proc->io.submit_q.helped , __ATOMIC_SEQ_CST ); proc->io.submit_q.helped = 0; 73 __atomic_fetch_add( &cltr->io.submit_q.leader , proc->io.submit_q.leader , __ATOMIC_SEQ_CST ); proc->io.submit_q.leader = 0; 74 __atomic_fetch_add( &cltr->io.submit_q.busy , proc->io.submit_q.busy , __ATOMIC_SEQ_CST ); proc->io.submit_q.busy = 0; 75 __atomic_fetch_add( &cltr->io.complete_q.completed_avg.val, proc->io.complete_q.completed_avg.val, __ATOMIC_SEQ_CST ); proc->io.complete_q.completed_avg.val = 0; 76 __atomic_fetch_add( &cltr->io.complete_q.completed_avg.cnt, proc->io.complete_q.completed_avg.cnt, __ATOMIC_SEQ_CST ); proc->io.complete_q.completed_avg.cnt = 0; 77 __atomic_fetch_add( &cltr->io.complete_q.blocks , proc->io.complete_q.blocks , __ATOMIC_SEQ_CST ); proc->io.complete_q.blocks = 0; 60 __atomic_fetch_add( &cltr->io.alloc.fast , proc->io.alloc.fast , __ATOMIC_SEQ_CST ); proc->io.alloc.fast = 0; 61 __atomic_fetch_add( &cltr->io.alloc.slow , proc->io.alloc.slow , __ATOMIC_SEQ_CST ); proc->io.alloc.slow = 0; 62 __atomic_fetch_add( &cltr->io.alloc.fail , proc->io.alloc.fail , __ATOMIC_SEQ_CST ); proc->io.alloc.fail = 0; 63 __atomic_fetch_add( &cltr->io.alloc.revoke , proc->io.alloc.revoke , __ATOMIC_SEQ_CST ); proc->io.alloc.revoke = 0; 64 __atomic_fetch_add( &cltr->io.alloc.block , proc->io.alloc.block , __ATOMIC_SEQ_CST ); proc->io.alloc.block = 0; 65 __atomic_fetch_add( &cltr->io.submit.fast , proc->io.submit.fast , __ATOMIC_SEQ_CST ); proc->io.submit.fast = 0; 66 __atomic_fetch_add( &cltr->io.submit.slow , proc->io.submit.slow , __ATOMIC_SEQ_CST ); proc->io.submit.slow = 0; 67 __atomic_fetch_add( &cltr->io.flush.external , proc->io.flush.external , __ATOMIC_SEQ_CST ); proc->io.flush.external = 0; 68 __atomic_fetch_add( &cltr->io.calls.count , proc->io.calls.count , __ATOMIC_SEQ_CST ); proc->io.calls.count = 0; 69 __atomic_fetch_add( &cltr->io.calls.submitted , proc->io.calls.submitted , __ATOMIC_SEQ_CST ); proc->io.calls.submitted = 0; 70 __atomic_fetch_add( &cltr->io.calls.completed , proc->io.calls.completed , __ATOMIC_SEQ_CST ); proc->io.calls.completed = 0; 71 __atomic_fetch_add( &cltr->io.calls.blocks , proc->io.calls.blocks , __ATOMIC_SEQ_CST ); proc->io.calls.blocks = 0; 72 __atomic_fetch_add( &cltr->io.calls.errors.busy, proc->io.calls.errors.busy, __ATOMIC_SEQ_CST ); proc->io.calls.errors.busy = 0; 78 73 #endif 79 74 } … … 123 118 #if defined(CFA_HAVE_LINUX_IO_URING_H) 124 119 if( flags & CFA_STATS_IO ) { 125 double avgrdy = ((double)io.submit_q.submit_avg.rdy) / io.submit_q.submit_avg.cnt;126 double avg csm = ((double)io.submit_q.submit_avg.csm) / io.submit_q.submit_avg.cnt;120 uint64_t total_allocs = io.alloc.fast + io.alloc.slow; 121 double avgfasta = ((double)io.alloc.fast) / total_allocs; 127 122 128 double lavgv = 0; 129 double lavgb = 0; 130 if(io.submit_q.look_avg.cnt != 0) { 131 lavgv = ((double)io.submit_q.look_avg.val ) / io.submit_q.look_avg.cnt; 132 lavgb = ((double)io.submit_q.look_avg.block) / io.submit_q.look_avg.cnt; 133 } 123 uint64_t total_submits = io.submit.fast + io.submit.slow; 124 double avgfasts = ((double)io.submit.fast) / total_submits; 134 125 135 double aavgv = 0; 136 double aavgb = 0; 137 if(io.submit_q.alloc_avg.cnt != 0) { 138 aavgv = ((double)io.submit_q.alloc_avg.val ) / io.submit_q.alloc_avg.cnt; 139 aavgb = ((double)io.submit_q.alloc_avg.block) / io.submit_q.alloc_avg.cnt; 140 } 126 double avgsubs = ((double)io.calls.submitted) / io.calls.count; 127 double avgcomp = ((double)io.calls.completed) / io.calls.count; 141 128 142 129 __cfaabi_bits_print_safe( STDOUT_FILENO, 143 130 "----- %s \"%s\" (%p) - I/O Stats -----\n" 144 "- total submit calls: %'15" PRIu64 "\n"145 "- avg ready entries : %'18.2lf\n"146 "- avg submitted entries : %'18.2lf\n"147 "- total helped entries : %'15" PRIu64 "\n"148 "- total leader entries: %'15" PRIu64 "\n"149 "- total busy submit: %'15" PRIu64 "\n"150 "- total ready search: %'15" PRIu64 "\n"151 "- avg ready search len : %'18.2lf\n"152 "- avg ready search block : %'18.2lf\n"153 "- total alloc search: %'15" PRIu64 "\n"154 "- avg alloc search len : %'18.2lf\n"155 "- avg alloc search block : %'18.2lf\n"156 "- total wait calls : %'15" PRIu64 "\n"157 "- avg completion/wait : %'18.2lf\n"158 "- total completion blocks: %'15" PRIu64 "\n"131 "- total allocations : %'15" PRIu64 "\n" 132 "- fast allocations : %'15" PRIu64 " (%'18.2lf) \n" 133 "- fast enomem : %'15" PRIu64 "\n" 134 "- slow allocations : %'15" PRIu64 "\n" 135 "- revokes for alloc : %'15" PRIu64 "\n" 136 "- blocks for alloc : %'15" PRIu64 "\n" 137 "- total submits : %'15" PRIu64 "\n" 138 "- fast submits : %'15" PRIu64 " (%'18.2lf) \n" 139 "- slow submits : %'15" PRIu64 "\n" 140 "- flush external submits : %'15" PRIu64 "\n" 141 "- io_uring_enter calls : %'15" PRIu64 "\n" 142 "- submits : %'15" PRIu64 " (%'18.2lf) \n" 143 "- completes : %'15" PRIu64 " (%'18.2lf) \n" 144 "- blocking calls : %'15" PRIu64 "\n" 145 "- io_uring_enter EBUSYs : %'15" PRIu64 "\n" 159 146 "\n" 160 147 , type, name, id 161 , io.submit_q.submit_avg.cnt 162 , avgrdy, avgcsm 163 , io.submit_q.helped, io.submit_q.leader, io.submit_q.busy 164 , io.submit_q.look_avg.cnt 165 , lavgv, lavgb 166 , io.submit_q.alloc_avg.cnt 167 , aavgv, aavgb 168 , io.complete_q.completed_avg.cnt 169 , ((double)io.complete_q.completed_avg.val) / io.complete_q.completed_avg.cnt 170 , io.complete_q.blocks 148 , total_allocs 149 , io.alloc.fast, avgfasta 150 , io.alloc.fail 151 , io.alloc.slow 152 , io.alloc.revoke 153 , io.alloc.block 154 , total_submits 155 , io.submit.fast, avgfasts 156 , io.submit.slow 157 , io.flush.external 158 , io.calls.count 159 , io.calls.submitted, avgsubs 160 , io.calls.completed, avgcomp 161 , io.calls.blocks 162 , io.calls.errors.busy 171 163 ); 172 164 }
Note: See TracChangeset
for help on using the changeset viewer.