drm/ttm: Remove create_singlethread_workqueue
Subsystems (3)
PATCH 1/1 drm/ttm: Remove create_singlethread_workqueue
swap_queue was created to handle shrinking in low memory situations. A separate workqueue was used in order to avoid other workqueue tasks from being blocked since work items on swap_queue spend a lot of time waiting for the GPU.
Since these long-running work items aren't involved in memory reclaim in any way, system_long_wq has been used.
Work item has been flushed in ttm_mem_global_release() to ensure that nothing is pending when the driver is disconnected.
--- drivers/gpu/drm/ttm/ttm_memory.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
drivers/gpu/drm/ttm/ttm_memory.c +2 -5
@@ -366,7 +366,6 @@ int ttm_mem_global_init(struct ttm_mem_global *glob)struct ttm_mem_zone *zone;spin_lock_init (&glob->lock); - glob->swap_queue =create_singlethread_workqueue ("ttm_swap" );INIT_WORK (&glob->work, ttm_shrink_work); ret =kobject_init_and_add ( &glob->kobj, &ttm_mem_glob_kobj_type,ttm_get_kobj (),"memory_accounting" );
@@ -412,9 +411,7 @@ void ttm_mem_global_release(struct ttm_mem_global *glob)ttm_page_alloc_fini ();ttm_dma_page_alloc_fini (); -flush_workqueue (glob->swap_queue); -destroy_workqueue (glob->swap_queue); - glob->swap_queue =NULL ; +flush_work (&glob->work);for (i =0 ; i < glob->num_zones; ++i) { zone = glob->zones[i];kobject_del (&zone->kobj);
@@ -443,7 +440,7 @@ static void ttm_check_swapping(struct ttm_mem_global *glob)spin_unlock (&glob->lock);if (unlikely (needs_swapping)) - (void )queue_work (glob->swap_queue, &glob->work); + (void )queue_work (system_long_wq, &glob->work); }
--
2.1.4
Quoted 5 lines · Bhaktipriya Shridhar
swap_queuewas created to handle shrinking in low memory situations. A separate workqueue was used in order to avoid other workqueue tasks from being blocked since work items onswap_queuespend a lot of time waiting for the GPU.
Quoted 7 lines
Since these long-running work items aren't involved in memory reclaim in any way,
system_long_wqhas been used.Work item has been flushed in
ttm_mem_global_release()to ensure that nothing is pending when the driver is disconnected.Signed-off-by Bhaktipriya Shridhar <[email protected]>
Thanks.
Signature · 5 lines
tejun _______________________________________________ dri-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dri-devel