2 #include "libbenchmark_benchmarksuite_internal.h"
8 /****************************************************************************/
9 void libbenchmark_benchmarksuite_get_list_of_gnuplot_strings( struct libbenchmark_benchmarksuite_state *bss,
10 struct libbenchmark_results_state *rs,
11 char *gnuplot_system_string,
12 struct libbenchmark_gnuplot_options *gpo,
13 struct lfds710_list_asu_state *list_of_gnuplot_strings )
15 struct libbenchmark_benchmarkset_state
18 struct libbenchmark_benchmarkset_gnuplot
21 struct lfds710_list_asu_element
25 struct libbenchmark_topology_numa_node
28 LFDS710_PAL_ASSERT( bss != NULL );
29 LFDS710_PAL_ASSERT( rs != NULL );
30 LFDS710_PAL_ASSERT( gnuplot_system_string != NULL );
31 LFDS710_PAL_ASSERT( gpo != NULL );
32 LFDS710_PAL_ASSERT( list_of_gnuplot_strings != NULL );
34 lfds710_list_asu_init_valid_on_current_logical_core( list_of_gnuplot_strings, NULL );
36 // TRD : iterate over all benchmarksets
37 while( LFDS710_LIST_ASU_GET_START_AND_THEN_NEXT(bss->benchmarksets,lasue) )
39 bsets = LFDS710_LIST_ASU_GET_VALUE_FROM_ELEMENT( *lasue );
41 // TRD : iterate over NUMA nodes - separate gnuplot for each
42 while( LFDS710_LIST_ASU_GET_START_AND_THEN_NEXT(*bsets->numa_modes_list,lasue_numa) )
44 numa_mode = LFDS710_LIST_ASU_GET_VALUE_FROM_ELEMENT( *lasue_numa );
46 bg = libshared_memory_alloc_from_most_free_space_node( bss->ms, sizeof(struct libbenchmark_benchmarkset_gnuplot), LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES );
48 libbenchmark_benchmarkset_gnuplot_emit( bsets, rs, gnuplot_system_string, numa_mode->mode, gpo, bg );
50 LFDS710_LIST_ASU_SET_VALUE_IN_ELEMENT( bg->lasue, bg );
51 lfds710_list_asu_insert_at_end( list_of_gnuplot_strings, &bg->lasue );