On Thu, Mar 3, 2022 at 9:00 AM Vincent Fu <vincent.fu@xxxxxxxxxxx> wrote: > helper_thread.c:helper_thread_main() handles logging, steadystate, signals, status_interval, and disk utilization measurements. If multiple of these features are active then there may be small deviations in the logging time intervals. > > For missing final log entries, what happens is that the helper thread receives an exit notification (A_EXIT) and then stops checking its other responsibilities. It would be reasonable to make one final call to the logging code before exiting the helper thread but there might need to be some guards to make sure the logging code does not try to access threads that have already been torn down. Thanks. I'm wondering though if it might make more sense for bandwidth/IOPS logging to happen the same way latency logging does. (Latency logging is always "driven" via calls in account_io_completion in io_u.c .Bandwidth and IOPS logging are *not* driven this way for interval logging, but only for full per I/O ("per unit") logging.) Latency logging does *not* have the inconsistent interval size and missing final log entries issues. I get that the bandwidth/IOPS logging is leveraging the same code as the live status updates, but as far as I can tell, that is also why it has the problems that latency logging does not. For now I've just fallen back to not using the log intervals and using full per unit logs, and then post-processing them. I'd still like to use and improve the log interval features in the future, but I've spent a good bit of time diving into them; I'm not confident I could get them working the way I'd like/expect fast enough for my more immediate needs. Thanks, Nick