]> pd.if.org Git - liblfds/blob - liblfds/liblfds7.1.0/test_and_benchmark/libbenchmark/src/libbenchmark_benchmarksuite/libbenchmark_benchmarksuite_gnuplot.c
Initial import (all versions, including the new 7.1.0)
[liblfds] / liblfds / liblfds7.1.0 / test_and_benchmark / libbenchmark / src / libbenchmark_benchmarksuite / libbenchmark_benchmarksuite_gnuplot.c
1 /***** includes *****/
2 #include "libbenchmark_benchmarksuite_internal.h"
3
4
5
6
7
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 )
14 {
15   struct libbenchmark_benchmarkset_state
16     *bsets;
17
18   struct libbenchmark_benchmarkset_gnuplot
19     *bg;
20
21   struct lfds710_list_asu_element
22     *lasue = NULL,
23     *lasue_numa = NULL;
24
25   struct libbenchmark_topology_numa_node
26     *numa_mode;
27
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 );
33
34   lfds710_list_asu_init_valid_on_current_logical_core( list_of_gnuplot_strings, NULL );
35
36   // TRD : iterate over all benchmarksets
37   while( LFDS710_LIST_ASU_GET_START_AND_THEN_NEXT(bss->benchmarksets,lasue) )
38   {
39     bsets = LFDS710_LIST_ASU_GET_VALUE_FROM_ELEMENT( *lasue );
40
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) )
43     {
44       numa_mode = LFDS710_LIST_ASU_GET_VALUE_FROM_ELEMENT( *lasue_numa );
45
46       bg = libshared_memory_alloc_from_most_free_space_node( bss->ms, sizeof(struct libbenchmark_benchmarkset_gnuplot), LFDS710_PAL_ATOMIC_ISOLATION_IN_BYTES );
47
48       libbenchmark_benchmarkset_gnuplot_emit( bsets, rs, gnuplot_system_string, numa_mode->mode, gpo, bg );
49
50       LFDS710_LIST_ASU_SET_VALUE_IN_ELEMENT( bg->lasue, bg );
51       lfds710_list_asu_insert_at_end( list_of_gnuplot_strings, &bg->lasue );
52     }
53   }
54
55   return;
56 }
57