@@ -77,23 +77,6 @@ static inline int ttm_mem_type_from_place(const struct ttm_place *place,
77
77
return 0 ;
78
78
}
79
79
80
- void ttm_resource_manager_debug (struct ttm_resource_manager * man ,
81
- struct drm_printer * p )
82
- {
83
- drm_printf (p , " use_type: %d\n" , man -> use_type );
84
- #ifdef __linux__
85
- drm_printf (p , " use_tt: %d\n" , man -> use_tt );
86
- drm_printf (p , " size: %llu\n" , man -> size );
87
- #elif defined(__FreeBSD__ )
88
- drm_printf (p , " size: %zu\n" , man -> size );
89
- #endif
90
- drm_printf (p , " available_caching: 0x%08X\n" , man -> available_caching );
91
- drm_printf (p , " default_caching: 0x%08X\n" , man -> default_caching );
92
- if (man -> func && man -> func -> debug )
93
- (* man -> func -> debug )(man , p );
94
- }
95
- EXPORT_SYMBOL (ttm_resource_manager_debug );
96
-
97
80
static void ttm_bo_mem_space_debug (struct ttm_buffer_object * bo ,
98
81
struct ttm_placement * placement )
99
82
{
@@ -367,7 +350,7 @@ static void ttm_bo_cleanup_memtype_use(struct ttm_buffer_object *bo)
367
350
368
351
ttm_tt_destroy (bo -> ttm );
369
352
bo -> ttm = NULL ;
370
- ttm_bo_mem_put (bo , & bo -> mem );
353
+ ttm_resource_free (bo , & bo -> mem );
371
354
}
372
355
373
356
static int ttm_bo_individualize_resv (struct ttm_buffer_object * bo )
@@ -682,7 +665,7 @@ static int ttm_bo_evict(struct ttm_buffer_object *bo,
682
665
if (unlikely (ret )) {
683
666
if (ret != - ERESTARTSYS )
684
667
pr_err ("Buffer eviction failed\n" );
685
- ttm_bo_mem_put (bo , & evict_mem );
668
+ ttm_resource_free (bo , & evict_mem );
686
669
goto out ;
687
670
}
688
671
bo -> evicted = true;
@@ -771,11 +754,11 @@ static int ttm_mem_evict_wait_busy(struct ttm_buffer_object *busy_bo,
771
754
return r == - EDEADLK ? - EBUSY : r ;
772
755
}
773
756
774
- static int ttm_mem_evict_first (struct ttm_bo_device * bdev ,
775
- struct ttm_resource_manager * man ,
776
- const struct ttm_place * place ,
777
- struct ttm_operation_ctx * ctx ,
778
- struct ww_acquire_ctx * ticket )
757
+ int ttm_mem_evict_first (struct ttm_bo_device * bdev ,
758
+ struct ttm_resource_manager * man ,
759
+ const struct ttm_place * place ,
760
+ struct ttm_operation_ctx * ctx ,
761
+ struct ww_acquire_ctx * ticket )
779
762
{
780
763
struct ttm_buffer_object * bo = NULL , * busy_bo = NULL ;
781
764
bool locked = false;
@@ -843,32 +826,6 @@ static int ttm_mem_evict_first(struct ttm_bo_device *bdev,
843
826
return ret ;
844
827
}
845
828
846
- static int ttm_bo_mem_get (struct ttm_buffer_object * bo ,
847
- const struct ttm_place * place ,
848
- struct ttm_resource * mem )
849
- {
850
- struct ttm_resource_manager * man = ttm_manager_type (bo -> bdev , mem -> mem_type );
851
-
852
- mem -> mm_node = NULL ;
853
- if (!man -> func || !man -> func -> alloc )
854
- return 0 ;
855
-
856
- return man -> func -> alloc (man , bo , place , mem );
857
- }
858
-
859
- void ttm_bo_mem_put (struct ttm_buffer_object * bo , struct ttm_resource * mem )
860
- {
861
- struct ttm_resource_manager * man = ttm_manager_type (bo -> bdev , mem -> mem_type );
862
-
863
- if (!man -> func || !man -> func -> free )
864
- return ;
865
-
866
- man -> func -> free (man , mem );
867
- mem -> mm_node = NULL ;
868
- mem -> mem_type = TTM_PL_SYSTEM ;
869
- }
870
- EXPORT_SYMBOL (ttm_bo_mem_put );
871
-
872
829
/**
873
830
* Add the last move fence to the BO and reserve a new shared slot.
874
831
*/
@@ -921,7 +878,7 @@ static int ttm_bo_mem_force_space(struct ttm_buffer_object *bo,
921
878
922
879
ticket = dma_resv_locking_ctx (bo -> base .resv );
923
880
do {
924
- ret = ttm_bo_mem_get (bo , place , mem );
881
+ ret = ttm_resource_alloc (bo , place , mem );
925
882
if (likely (!ret ))
926
883
break ;
927
884
if (unlikely (ret != - ENOSPC ))
@@ -1062,7 +1019,7 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
1062
1019
goto error ;
1063
1020
1064
1021
type_found = true;
1065
- ret = ttm_bo_mem_get (bo , place , mem );
1022
+ ret = ttm_resource_alloc (bo , place , mem );
1066
1023
if (ret == - ENOSPC )
1067
1024
continue ;
1068
1025
if (unlikely (ret ))
@@ -1071,7 +1028,7 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
1071
1028
man = ttm_manager_type (bdev , mem -> mem_type );
1072
1029
ret = ttm_bo_add_move_fence (bo , man , mem , ctx -> no_wait_gpu );
1073
1030
if (unlikely (ret )) {
1074
- ttm_bo_mem_put (bo , mem );
1031
+ ttm_resource_free (bo , mem );
1075
1032
if (ret == - EBUSY )
1076
1033
continue ;
1077
1034
@@ -1138,7 +1095,7 @@ static int ttm_bo_move_buffer(struct ttm_buffer_object *bo,
1138
1095
ret = ttm_bo_handle_move_mem (bo , & mem , false, ctx );
1139
1096
out_unlock :
1140
1097
if (ret )
1141
- ttm_bo_mem_put (bo , & mem );
1098
+ ttm_resource_free (bo , & mem );
1142
1099
return ret ;
1143
1100
}
1144
1101
@@ -1423,52 +1380,6 @@ int ttm_bo_create(struct ttm_bo_device *bdev,
1423
1380
}
1424
1381
EXPORT_SYMBOL (ttm_bo_create );
1425
1382
1426
- int ttm_resource_manager_force_list_clean (struct ttm_bo_device * bdev ,
1427
- struct ttm_resource_manager * man )
1428
- {
1429
- struct ttm_operation_ctx ctx = {
1430
- .interruptible = false,
1431
- .no_wait_gpu = false,
1432
- .flags = TTM_OPT_FLAG_FORCE_ALLOC
1433
- };
1434
- struct ttm_bo_global * glob = & ttm_bo_glob ;
1435
- struct dma_fence * fence ;
1436
- int ret ;
1437
- unsigned i ;
1438
-
1439
- /*
1440
- * Can't use standard list traversal since we're unlocking.
1441
- */
1442
-
1443
- spin_lock (& glob -> lru_lock );
1444
- for (i = 0 ; i < TTM_MAX_BO_PRIORITY ; ++ i ) {
1445
- while (!list_empty (& man -> lru [i ])) {
1446
- spin_unlock (& glob -> lru_lock );
1447
- ret = ttm_mem_evict_first (bdev , man , NULL , & ctx ,
1448
- NULL );
1449
- if (ret )
1450
- return ret ;
1451
- spin_lock (& glob -> lru_lock );
1452
- }
1453
- }
1454
- spin_unlock (& glob -> lru_lock );
1455
-
1456
- spin_lock (& man -> move_lock );
1457
- fence = dma_fence_get (man -> move );
1458
- spin_unlock (& man -> move_lock );
1459
-
1460
- if (fence ) {
1461
- ret = dma_fence_wait (fence , false);
1462
- dma_fence_put (fence );
1463
- if (ret )
1464
- return ret ;
1465
- }
1466
-
1467
- return 0 ;
1468
- }
1469
- EXPORT_SYMBOL (ttm_resource_manager_force_list_clean );
1470
-
1471
-
1472
1383
int ttm_bo_evict_mm (struct ttm_bo_device * bdev , unsigned mem_type )
1473
1384
{
1474
1385
struct ttm_resource_manager * man = ttm_manager_type (bdev , mem_type );
@@ -1487,23 +1398,6 @@ int ttm_bo_evict_mm(struct ttm_bo_device *bdev, unsigned mem_type)
1487
1398
}
1488
1399
EXPORT_SYMBOL (ttm_bo_evict_mm );
1489
1400
1490
- void ttm_resource_manager_init (struct ttm_resource_manager * man ,
1491
- unsigned long p_size )
1492
- {
1493
- unsigned i ;
1494
-
1495
- man -> use_io_reserve_lru = false;
1496
- mutex_init (& man -> io_reserve_mutex );
1497
- spin_lock_init (& man -> move_lock );
1498
- INIT_LIST_HEAD (& man -> io_reserve_lru );
1499
- man -> size = p_size ;
1500
-
1501
- for (i = 0 ; i < TTM_MAX_BO_PRIORITY ; ++ i )
1502
- INIT_LIST_HEAD (& man -> lru [i ]);
1503
- man -> move = NULL ;
1504
- }
1505
- EXPORT_SYMBOL (ttm_resource_manager_init );
1506
-
1507
1401
static void ttm_bo_global_kobj_release (struct kobject * kobj )
1508
1402
{
1509
1403
struct ttm_bo_global * glob =
0 commit comments