Re: [RFC] usb: host: u132-hcd: Remove deprecated create_singlethread_workqueue

From: Alan Stern
Date: Wed Jul 27 2016 - 14:54:57 EST


On Wed, 27 Jul 2016, Tejun Heo wrote:

> Hello, Oliver.
>
> On Wed, Jul 27, 2016 at 11:29:56AM +0200, Oliver Neukum wrote:
> > On Wed, 2016-07-27 at 14:50 +0530, Bhaktipriya Shridhar wrote:
> > > The workqueue "workqueue" has multiple workitems which may require
> > > ordering. Hence, a dedicated ordered workqueue has been used.
> > > Since the workqueue is not being used on a memory reclaim path,
> > > WQ_MEM_RECLAIM has not been set.
> >
> > That is incorrect. The work queue is used by the HCD to handle
> > TDs, which are parts of basic IO. The HCD in turn is used by
> > usb-storage and uas, which are block drivers and those are obviously
> > used on the memory reclaim path.
>
> Hmm... I didn't know the whole USB stack could operate without
> allocating memory. Does usb stack have mempools and stuff all the way
> through?

No -- the USB stack does need to allocate memory in order to operate.
But it is careful to use GFP_NOIO or GFP_ATOMIC for allocations that
might be on the block-device path.

Alan Stern