@@ -114,12 +114,16 @@ static int run_single_threaded(void)
114114 .pid = "self" ,
115115 };
116116 struct perf_thread_map * threads ;
117+ struct perf_env host_env ;
117118 int err ;
118119
119120 perf_set_singlethreaded ();
120- session = perf_session__new (NULL , NULL );
121+ perf_env__init (& host_env );
122+ session = __perf_session__new (/*data=*/ NULL , /*tool=*/ NULL ,
123+ /*trace_event_repipe=*/ false, & host_env );
121124 if (IS_ERR (session )) {
122125 pr_err ("Session creation failed.\n" );
126+ perf_env__exit (& host_env );
123127 return PTR_ERR (session );
124128 }
125129 threads = thread_map__new_by_pid (getpid ());
@@ -144,6 +148,7 @@ static int run_single_threaded(void)
144148 perf_thread_map__put (threads );
145149
146150 perf_session__delete (session );
151+ perf_env__exit (& host_env );
147152 return err ;
148153}
149154
@@ -154,17 +159,21 @@ static int do_run_multi_threaded(struct target *target,
154159 u64 runtime_us ;
155160 unsigned int i ;
156161 double time_average , time_stddev , event_average , event_stddev ;
157- int err ;
162+ int err = 0 ;
158163 struct stats time_stats , event_stats ;
159164 struct perf_session * session ;
165+ struct perf_env host_env ;
160166
167+ perf_env__init (& host_env );
161168 init_stats (& time_stats );
162169 init_stats (& event_stats );
163170 for (i = 0 ; i < multi_iterations ; i ++ ) {
164- session = perf_session__new (NULL , NULL );
165- if (IS_ERR (session ))
166- return PTR_ERR (session );
167-
171+ session = __perf_session__new (/*data=*/ NULL , /*tool=*/ NULL ,
172+ /*trace_event_repipe=*/ false, & host_env );
173+ if (IS_ERR (session )) {
174+ err = PTR_ERR (session );
175+ goto err_out ;
176+ }
168177 atomic_set (& event_count , 0 );
169178 gettimeofday (& start , NULL );
170179 err = __machine__synthesize_threads (& session -> machines .host ,
@@ -175,7 +184,7 @@ static int do_run_multi_threaded(struct target *target,
175184 nr_threads_synthesize );
176185 if (err ) {
177186 perf_session__delete (session );
178- return err ;
187+ goto err_out ;
179188 }
180189
181190 gettimeofday (& end , NULL );
@@ -198,7 +207,9 @@ static int do_run_multi_threaded(struct target *target,
198207
199208 printf (" Average time per event %.3f usec\n" ,
200209 time_average / event_average );
201- return 0 ;
210+ err_out :
211+ perf_env__exit (& host_env );
212+ return err ;
202213}
203214
204215static int run_multi_threaded (void )
0 commit comments