From: "Steven Rostedt (Google)" <rostedt@xxxxxxxxxxx> More updates to libtraceeval - As the results and stats are often needed in the iterator loops, add helper functions to quickly retrieve them. The iterator has a handle on the current entry, no need to do a key lookup to find it. - The iterator can be used to search for items to remove or update. Add a helper function to remove the current iterator item. This will also update the iterator so that other functions called are still safe, even if the removed entry is the current one. - Convert traceeval_data into a proper structure with a "type" field and a union data portion. This will allow for checking the type of data being passed into the functions to make sure they match their corresponding types. - Add checks to make sure that the data matches the types. - Make traceeval_insert() and traceeval_query() into macros and add a traceeval_query_size() and traceeval_insert_size() that take the size of the list of data being passed into it. The macros work when the arrays are defined. - Add checks to make sure the array sizes passed in match the sizes internally. - Add back the STATS flag, and only do STATS on values that are numeric and have this set. This should speed things up, and also allow for optimizations in the future. Steven Rostedt (Google) (9): libtraceeval: Add check for updates to know to recreate iter array libtraceeval: Add traceeval_iterator_query() libtraceeval: Add traceeval_iterator_stat() libtraceeval: Add traceeval_iterator_remove() libtraceeval histogram: Add type to traceeval_data and make it a structure libtraceveal: Add type checks to traceeval_data vals and keys libtraceeval: Add size checks to insert and query functions libtraceeval: Add checks to traceeval_insert() and query() libtraceeval: Only do stats on values marked with the STAT flag include/traceeval-hist.h | 102 +++++++++---- samples/task-eval.c | 146 ++++++++----------- src/eval-local.h | 6 +- src/histograms.c | 300 ++++++++++++++++++++++++++++++--------- 4 files changed, 372 insertions(+), 182 deletions(-) -- 2.40.1