alloc_workqueue() + WQ_HIGHPRI


–       radeon_crtc->flip_queue = create_singlethread_workqueue(“radeon-crtc”);

+       radeon_crtc->flip_queue = alloc_workqueue(“radeon-crtc”, WQ_HIGHPRI, 0);


  • Each hardware CRTC has a single flip work queue. When a radeon_flip_work_func item is queued, it needs to be executed ASAP because even a slight delay may cause the flip to be delayed by one refresh cycle.
  • Hence, a dedicated workqueue with WQ_HIGHPRI set, has been used here since a delay can cause the outcome to miss the refresh cycle.
  • Since there are only a fixed number of work items, explicit concurrency limit is unnecessary here.


Used for workqueues that queue work items that require high priority for execution..


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s