@@ -260,16 +260,47 @@ UBENCH_EX(simple, disjoint_pool_with_os_memory_provider) {
260
260
exit (-1 );
261
261
}
262
262
263
- umf_disjoint_pool_params_t disjoint_memory_pool_params = {0 };
264
- disjoint_memory_pool_params .SlabMinSize = DISJOINT_POOL_SLAB_MIN_SIZE ;
265
- disjoint_memory_pool_params .MaxPoolableSize =
266
- DISJOINT_POOL_MAX_POOLABLE_SIZE ;
267
- disjoint_memory_pool_params .Capacity = DISJOINT_POOL_CAPACITY ;
268
- disjoint_memory_pool_params .MinBucketSize = DISJOINT_POOL_MIN_BUCKET_SIZE ;
263
+ umf_disjoint_pool_params_handle_t disjoint_memory_pool_params = NULL ;
264
+ umf_result = umfDisjointPoolParamsCreate (& disjoint_memory_pool_params );
265
+ if (umf_result != UMF_RESULT_SUCCESS ) {
266
+ fprintf (stderr , "ERROR: umfDisjointPoolParamsCreate failed\n" );
267
+ exit (-1 );
268
+ }
269
+
270
+ umf_result = umfDisjointPoolParamsSetSlabMinSize (
271
+ disjoint_memory_pool_params , DISJOINT_POOL_SLAB_MIN_SIZE );
272
+ if (umf_result != UMF_RESULT_SUCCESS ) {
273
+ fprintf (stderr ,
274
+ "error: umfDisjointPoolParamsSetSlabMinSize() failed\n" );
275
+ exit (-1 );
276
+ }
277
+
278
+ umf_result = umfDisjointPoolParamsSetMaxPoolableSize (
279
+ disjoint_memory_pool_params , DISJOINT_POOL_MAX_POOLABLE_SIZE );
280
+ if (umf_result != UMF_RESULT_SUCCESS ) {
281
+ fprintf (stderr ,
282
+ "error: umfDisjointPoolParamsSetMaxPoolableSize() failed\n" );
283
+ exit (-1 );
284
+ }
285
+
286
+ umf_result = umfDisjointPoolParamsSetCapacity (disjoint_memory_pool_params ,
287
+ DISJOINT_POOL_CAPACITY );
288
+ if (umf_result != UMF_RESULT_SUCCESS ) {
289
+ fprintf (stderr , "error: umfDisjointPoolParamsSetCapacity() failed\n" );
290
+ exit (-1 );
291
+ }
292
+
293
+ umf_result = umfDisjointPoolParamsSetMinBucketSize (
294
+ disjoint_memory_pool_params , DISJOINT_POOL_MIN_BUCKET_SIZE );
295
+ if (umf_result != UMF_RESULT_SUCCESS ) {
296
+ fprintf (stderr ,
297
+ "error: umfDisjointPoolParamsSetMinBucketSize() failed\n" );
298
+ exit (-1 );
299
+ }
269
300
270
301
umf_memory_pool_handle_t disjoint_pool ;
271
302
umf_result = umfPoolCreate (umfDisjointPoolOps (), os_memory_provider ,
272
- & disjoint_memory_pool_params , 0 , & disjoint_pool );
303
+ disjoint_memory_pool_params , 0 , & disjoint_pool );
273
304
if (umf_result != UMF_RESULT_SUCCESS ) {
274
305
fprintf (stderr , "error: umfPoolCreate() failed\n" );
275
306
exit (-1 );
@@ -284,6 +315,7 @@ UBENCH_EX(simple, disjoint_pool_with_os_memory_provider) {
284
315
}
285
316
286
317
umfPoolDestroy (disjoint_pool );
318
+ umfDisjointPoolParamsDestroy (disjoint_memory_pool_params );
287
319
umfMemoryProviderDestroy (os_memory_provider );
288
320
free (array );
289
321
}
@@ -458,19 +490,50 @@ UBENCH_EX(ipc, disjoint_pool_with_level_zero_provider) {
458
490
goto err_free_ipc_handles ;
459
491
}
460
492
461
- umf_disjoint_pool_params_t disjoint_params = {0 };
462
- disjoint_params .SlabMinSize = BUFFER_SIZE * 10 ;
463
- disjoint_params .MaxPoolableSize = 4ull * 1024ull * 1024ull ;
464
- disjoint_params .Capacity = 64ull * 1024ull ;
465
- disjoint_params .MinBucketSize = 64 ;
466
- umf_pool_create_flags_t flags = UMF_POOL_CREATE_FLAG_OWN_PROVIDER ;
493
+ umf_disjoint_pool_params_handle_t disjoint_params = NULL ;
494
+ umf_result = umfDisjointPoolParamsCreate (& disjoint_params );
495
+ if (umf_result != UMF_RESULT_SUCCESS ) {
496
+ fprintf (stderr , "ERROR: umfDisjointPoolParamsCreate failed\n" );
497
+ goto err_provider_destroy ;
498
+ }
499
+
500
+ umf_result =
501
+ umfDisjointPoolParamsSetSlabMinSize (disjoint_params , BUFFER_SIZE * 10 );
502
+ if (umf_result != UMF_RESULT_SUCCESS ) {
503
+ fprintf (stderr ,
504
+ "error: umfDisjointPoolParamsSetSlabMinSize() failed\n" );
505
+ goto err_params_destroy ;
506
+ }
507
+
508
+ umf_result = umfDisjointPoolParamsSetMaxPoolableSize (
509
+ disjoint_params , 4ull * 1024ull * 1024ull );
510
+ if (umf_result != UMF_RESULT_SUCCESS ) {
511
+ fprintf (stderr ,
512
+ "error: umfDisjointPoolParamsSetMaxPoolableSize() failed\n" );
513
+ goto err_params_destroy ;
514
+ }
515
+
516
+ umf_result =
517
+ umfDisjointPoolParamsSetCapacity (disjoint_params , 64ull * 1024ull );
518
+ if (umf_result != UMF_RESULT_SUCCESS ) {
519
+ fprintf (stderr , "error: umfDisjointPoolParamsSetCapacity() failed\n" );
520
+ goto err_params_destroy ;
521
+ }
522
+
523
+ umf_result = umfDisjointPoolParamsSetMinBucketSize (disjoint_params , 64 );
524
+ if (umf_result != UMF_RESULT_SUCCESS ) {
525
+ fprintf (stderr ,
526
+ "error: umfDisjointPoolParamsSetMinBucketSize() failed\n" );
527
+ goto err_params_destroy ;
528
+ }
529
+
530
+ umf_pool_create_flags_t flags = UMF_POOL_CREATE_FLAG_NONE ;
467
531
umf_memory_pool_handle_t pool ;
468
- umf_result = umfPoolCreate (umfDisjointPoolOps (), provider , & disjoint_params ,
532
+ umf_result = umfPoolCreate (umfDisjointPoolOps (), provider , disjoint_params ,
469
533
flags , & pool );
470
534
if (umf_result != UMF_RESULT_SUCCESS ) {
471
535
fprintf (stderr , "error: umfPoolCreate() failed\n" );
472
- umfMemoryProviderDestroy (provider );
473
- goto err_free_ipc_handles ;
536
+ goto err_params_destroy ;
474
537
}
475
538
476
539
for (size_t i = 0 ; i < N_BUFFERS ; ++ i ) {
@@ -495,6 +558,12 @@ UBENCH_EX(ipc, disjoint_pool_with_level_zero_provider) {
495
558
496
559
umfPoolDestroy (pool );
497
560
561
+ err_params_destroy :
562
+ umfDisjointPoolParamsDestroy (disjoint_params );
563
+
564
+ err_provider_destroy :
565
+ umfMemoryProviderDestroy (provider );
566
+
498
567
err_free_ipc_handles :
499
568
free (ipc_handles );
500
569
0 commit comments