alloc_workqueue() (Vanilla)

Snippet from my patch:

/drivers/platform/x86/asus-laptop.c

–       asus->led_workqueue = create_singlethread_workqueue(“led_workqueue”);

+       asus->led_workqueue = alloc_workqueue(“led_workqueue”, 0, 0);

 

  • led_workqueue is involved in updating LEDs queues &led->work per asus_led.
  • The led_workqueue has multiple work items which can be run concurrently.
  • The dedicated workqueue is kept so that the work items can be flushed as a group.
  • Since it is not being used on a memory reclaim path, WQ_MEM_RECLAIM has not been set.
  • Since there are only a fixed number of work items, explicit concurrency limit is unnecessary here.

 

Tip..

Used when the queued work items can be run concurrently.

No special flags required

Advertisements

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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