@@ -114,12 +114,16 @@ static int run_single_threaded(void)
114
114
.pid = "self" ,
115
115
};
116
116
struct perf_thread_map * threads ;
117
+ struct perf_env host_env ;
117
118
int err ;
118
119
119
120
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 );
121
124
if (IS_ERR (session )) {
122
125
pr_err ("Session creation failed.\n" );
126
+ perf_env__exit (& host_env );
123
127
return PTR_ERR (session );
124
128
}
125
129
threads = thread_map__new_by_pid (getpid ());
@@ -144,6 +148,7 @@ static int run_single_threaded(void)
144
148
perf_thread_map__put (threads );
145
149
146
150
perf_session__delete (session );
151
+ perf_env__exit (& host_env );
147
152
return err ;
148
153
}
149
154
@@ -154,17 +159,21 @@ static int do_run_multi_threaded(struct target *target,
154
159
u64 runtime_us ;
155
160
unsigned int i ;
156
161
double time_average , time_stddev , event_average , event_stddev ;
157
- int err ;
162
+ int err = 0 ;
158
163
struct stats time_stats , event_stats ;
159
164
struct perf_session * session ;
165
+ struct perf_env host_env ;
160
166
167
+ perf_env__init (& host_env );
161
168
init_stats (& time_stats );
162
169
init_stats (& event_stats );
163
170
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
+ }
168
177
atomic_set (& event_count , 0 );
169
178
gettimeofday (& start , NULL );
170
179
err = __machine__synthesize_threads (& session -> machines .host ,
@@ -175,7 +184,7 @@ static int do_run_multi_threaded(struct target *target,
175
184
nr_threads_synthesize );
176
185
if (err ) {
177
186
perf_session__delete (session );
178
- return err ;
187
+ goto err_out ;
179
188
}
180
189
181
190
gettimeofday (& end , NULL );
@@ -198,7 +207,9 @@ static int do_run_multi_threaded(struct target *target,
198
207
199
208
printf (" Average time per event %.3f usec\n" ,
200
209
time_average / event_average );
201
- return 0 ;
210
+ err_out :
211
+ perf_env__exit (& host_env );
212
+ return err ;
202
213
}
203
214
204
215
static int run_multi_threaded (void )
0 commit comments